检查头文件
AC_CHECK_HEADERS([headers])
例如:
AC_CHECK_HEADERS([unistd.h windows.h])
这个宏将在当前建造环境下检查unistd.h,windows.h是否存在。并将两个参数写入到配置头文件中。一般是config.h,你可以使用AC_CONFIG_HEADERS([headers])来指定。
AC_CONFIG_HEADERS([config.h])
如果存在就会出现在config.h中例如下面:
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Define to 1 if you have the <windows.h> header file. */
#define HAVE_WINDOWS_H 1
检查函数
AC_CHECK_FUNC (function, [action-if-found], [action-if-not-found])
AC_CHECK_FUNCS (function…, [action-if-found], [action-if-not-found])
检查函数是否存在,如果存在执行动作action-if-found,没有发现执行动作action-if-not-found。
如果你没给出action-if-found和action-if-not-found,在发现函数的时候回定义对应的变量,以HAVE_开头,函数的名称都转换成大写。例如:
AC_CHECK_FUNCS(perror gettimeofday clock_gettime memset socket getifaddrs freeifaddrs fork)
如果发现clock_gettime将会定义变量#define HAVE_CLOCK_GETTIME 1在对应的配置头文件中。
如果没发现将不会定义。但是也会有一个注释行/* #undef HAVE_CLOCK_GETTIME */
为configure增加选项
AC_ARG_WITH (package, help-string, [action-if-given], [action-if-not-given])
这个宏可以给configure增加–with-package这样模式的参数。很多软件都有可选项用来