使用autotools生成特定于应用程序的* .conf文件

时间:2011-09-28 11:28:34

标签: autotools

我是新手使用autotools,请原谅我,如果这听起来有点基本,但谷歌搜索没有显示太多。

如何使用autotools生成自定义conf文件。

看作基于m4的配置包含必要的宏并生成所需的文件。

有些狩猎和阅读似乎暗示我可以做类似的事情 添加:

  

AC_CONFIG_FILES([appname.conf])

到我的configure.am。

然后创建一个appname.conf.in文件。

我不清楚的是我如何填充自定义宏,即

LOG_DIR=@log_dir@
CACHE_DIR=@cache_dir@

因此,当configure运行时,它会生成

LOG_DIR=/var/log
CACHE_DIR=/mycachedir

等...

1 个答案:

答案 0 :(得分:2)

您似乎缺少的信息是AC_SUBST,它会设置替换。

E.g。在configure.ac中:

TEST_SUB="hello world"
AC_SUBST(TEST_SUB)

AC_CONFIG_FILES(test.conf)

在test.conf.in中:

TEST_VAR=@TEST_SUB@

提供test.conf:

TEST_VAR=hello world

(如果你好奇的话,看看自动生成的Makefile.in文件,看看它是如何使用这种机制的。AM_CONDITIONAL变成两件事,每件一件,其中一件通过替换获得评论