Chinaunix首页 | 论坛 | 博客
  • 博客访问: 90194
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 157
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-24 16:42
个人简介

已经工作许多年了。

文章分类

全部博文(21)

文章存档

2017年(10)

2015年(3)

2013年(8)

我的朋友

分类: C/C++

2015-12-04 17:40:11

Autoconf是生成configure的工具,这里包含几个工具:
1) autoscan 生成configure.scan
他可以通过扫描制定的目录生成建议的宏命令,文件名configure.scan,然后可以重命名
configure.ac得到autoconf需要的输入文件。
2) ifnames 分析源码中的条件如#if #ifndef等生成建议。
3) autoconf 生成最终需要的configure脚本文件。
4)   configure.ac(configure.in)中增加宏AM_INIT_AUTOMAKE,执行aclocal生成aclocal.m4
否则autoconf和automake报错。
5)编写Makefile.am。
6) autoreconf 可以重新运行aclocal,autoconf,autoheader,automake等生成最新的结果,
主要是当某些工具版本升级或者文件修改需要重新执行的情况,好处是可以分析哪些需要
重新执行哪些不需要。

autoconf(configure.ac)书写规则
Autoconf requirements AC_INIT(package, version, bug-report-address) information on the package
checks for programs
checks for libraries
checks for header files
checks for types
checks for structures
checks for compiler characteristics
checks for library functions
checks for system services AC_CONFIG_FILES([file...]) AC_OUTPUT
然后
1 initializing configure
AC_INIT (package, version, [bug-report], [tarname], [url])
参数意义分别是:包名,版本,bug邮件,tar名,主页URL
执行最终可以产生一下宏供后面使用
AC_PACKAGE_NAME, PACKAGE_NAME
    Exactly package.
AC_PACKAGE_TARNAME, PACKAGE_TARNAME
    Exactly tarname, possibly generated from package.
AC_PACKAGE_VERSION, PACKAGE_VERSION
    Exactly version.
AC_PACKAGE_STRING, PACKAGE_STRING
    Exactly ‘package version’.
AC_PACKAGE_BUGREPORT, PACKAGE_BUGREPORT
    Exactly bug-report, if one was provided. Typically an email address, or URL to a bug management web page.
AC_PACKAGE_URL, PACKAGE_URL
    Exactly url, if one was provided. If url was empty, but package begins with ‘GNU ’, then this defaults to ‘’, otherwise, no URL is assumed

Autoheader 生成config.h.in,作为configure脚本的输入最终生成config.h文件.

原文地址:
阅读(1429) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~