2012-03-24 15 views
1

我有autoconf的一个小问题,我知道,你可以使用configure.ac添加一些定义了configure.h,但有没有办法做这样的事情:Autoconf及的./configure变量

在我的头我有

#ifndef SIZE 
#define SIZE 4 
#endif 

现在我想有一个选项,如果我调用

./configure 

它创建生成文件,大小为4,但是,当有人做

./configure --block-size=num 

的大小设置为num,最好我想这样做没有config.h中,我只是想让他添加了一些Makefile文件,因此编译将

-DSIZE=num 
+2

另一种方法是记录用户可以运行'./configure CPPFLAGS = -DSIZE = 4'的事实。这不需要改变你的设置。 – adl 2012-03-24 22:59:01

回答

4
# configure.ac 
AC_ARG_WITH([blocksize], 
      AS_HELP_STRING([The desired blocksize [[default: 4]]]), 
      [blocksize="$withval"], [blocksize=4]) 
my_CPPFLAGS="-DSIZE=$blocksize" 
AC_SUBST([my_CPPFLAGS]) 
调用

非常简单。

# Makefile.am 
AM_CPPFLAGS = ${my_CPPFLAGS} 
+0

而不是my_CPPFLAGS,您可以在configure.ac(和AC_SUBST([AM_CPPFLAGS]))中分配AM_CPPFLAGS,并且不对Makefile.am进行任何修改 – 2012-03-24 23:28:10