我想创建一个版本,该版本将导致configure构建项目的特定版本。
基本上我想创建一个带命令行选项的配置 ./configure --enable-FOO 其中使用编译器标志-DFOO和一些不同的编译器选项构建。
我该怎么做?
答案 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
。