AC_INIT (unique-file-in-source-dir)
configure
在目录中检查这些文件是否存在以确定该目录是否包含源代码。人们可能偶尔会用`--srcdir'给出错误的目录;这是一种安全性检查AC_PREREQ (version)
确保使用的是足够新的Autoconf版本。如果用于创建configure
的Autoconf的版本比version 要早,就在标准错误输出打印一条错误消息并不会创建configure
。
例如:AC_PREREQ(1.8)
如果你的`configure.in'依赖于在不同Autoconf版本中改变了的、不明显的行为,本宏就是有用的。如果它仅仅是需要近来增加的宏,那么AC_PREREQ
就不太有用,这是因为程序autoconf
已经告诉了用户那些宏没有被找到。如果`configure.in'是由一个在提供AC_PREREQ
之前的更旧的 Autoconf版本处理的,也会发生同样的事。
AC_CYGWIN
检查Cygwin环境。如果存在,就把shell变量CYGWIN
设置成`yes'。如果不存在,就把CYGWIN
设置成空字符串。
检查MingW32编译环境。如果存在,就把shell变量MINGW32
设置成`yes'。如果不存在,就把MINGW32
设置成空。
AC_MSG_NOTICE
输出提示信息
AC_CANONICAL_SYSTEM
在调用了AC_CANONICAL_SYSTEM
之后,下列输出变量包含了系统类型信息。在调用了之后,
系统类型变量
build
, host
, target
build
, host
, target
- 规范系统名称;
- 如果使用了
config.guess
,就是用户指定的名称或者规范名称;
build_alias
, host_alias
, target_alias
build_cpu
, build_vendor
, build_os
host_cpu
, host_vendor
, host_os
target_cpu
, target_vendor
, target_os
为方便而提供的规范名称的独立部分。
AC_CANONICAL_HOST
只设置了上列host
变量。
AC_CANONICAL_TARGET
只设置了上列target
变量。
AC_ARG_ENABLE (feature, help-string [, action-if-given [, action-if-not-given]])
configure
,就运行shell命令action-if-given。如果两个选项都没有给出,就运行shell命令 action-if-not-given。名称feature表示可选的用户级功能。它应该仅仅由字母、数字和破折号(dashes)组成。
shell命令可以通过访问shell变量enableval
来得到选项的参数,该变量的值实际上就是把shell变量 enable_feature
的值中所有的`-'字符替换成`_'而得到的。如果你愿意,可以使用变量enable_feature
。help-string参数类似于 AC_ARG_WITH
中相应的参数(参见与外部软件一起工作)。
CC
,就查找gcc
,如果没有找到,就使用cc
。把输出变量CC
设置为找到的编译器的名字。
如果要使用GNU C编译器,把shell变量GCC
设置为`yes',否则就设置成空。如果还没有设置输出变量 CFLAGS
,就为GNU C编译器把CFLAGS
设置成`-g -O2'(在GCC不接受`-g' 的系统中就设置成`-O2'),为其他编译器把CFLAGS
设置成`-g'。
如果被使用的C编译器并不生成可以在configure
运行的系统上运行的可执行文件,就把shell变量 cross_compiling
设置成`yes',否则设置成`no'。换句话说,它检查创建系统类型是否与主机系统类型不同(目标系统与本测试无关)。关于对交叉编译的支持,参见手工配置。
PATH
之中。如果找到了,就把变量 variable设置成value-if-found,否则就在给出了value-if-not-found的时候把variable设置成它。即使首先在搜索路径中找到reject(一个绝对文件名),本宏也会忽略它;在那种情况下,用找到的prog-to-check-for,不同于reject的绝对文件名来设置variable。如果variable已经被设置了,就什么也不作。为variable调用AC_SUBST
。
类似于AC_CHECK_PROG
,但在找到prog-to-check-for的时候,把variable设置成prog-to-check-for的完整路径。
AC_CONFIG_HEADERS([config.h])
http://www.cnblogs.com/xialm/articles/188213.html