如何使用autotools启用configure的可选版本?

时间:2016-10-27 15:25:02

标签: autotools

我想创建一个版本,该版本将导致configure构建项目的特定版本。

基本上我想创建一个带命令行选项的配置 ./configure --enable-FOO 其中使用编译器标志-DFOO和一些不同的编译器选项构建。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您在这里提出两个不同的问题:第一,如何向--enable添加configure参数;第二,如何让这个论点以特定的方式影响构建。

使用AC_ARG_ENABLE添加参数。它采用功能名称,帮助字符串和一些可选操作。所以,例如:

AC_ARG_ENABLE(something, [enable the something feature])

(在现实生活中,您应该使用AS_HELP_STRING来构建帮助字符串。)

这会将--enable-something--disable-something添加到configure;并且,重要的是,添加了一个新的enable_something变量,可用于检查用户的操作。

使用AC_DEFINE定义传递给C编译器的宏。因此,您可以通过检查新变量来完成您想要的任务:

if test "$enable_something" = yes; then
  AC_DEFINE([SOMETHING], [1], [define to enable the something feature])
fi

这将导致-DSOMETHING=1传递给编译;或者将#define SOMETHING 1发送到config.h