autoreconf忽略AC_CONFIG_MACRO_DIR

时间:2016-10-19 00:03:27

标签: autotools autoconf

我有一个最小的configure.ac文件:

AC_INIT([phmf], [0.1])
AM_INIT_AUTOMAKE
AC_OUTPUT([Makefile])

使用最新的autoconf版本2.69(2012 btw)我收到以下警告:

$ autoreconf -iv
autoreconf: running: aclocal -I m4
aclocal-1.15: warning: couldn't open directory 'm4': No such file or directory

这让我想到了目录' m4'正在寻找,因为它是autoreconf的默认行为。所以我尝试通过添加以下宏来覆盖默认值:

AC_CONFIG_MACRO_DIR([.])

但这没用 - 我仍然得到同样的警告。这是一个错误还是我必须做其他事情以防止包括目录' m4'对于aclocal

编辑:我的项目中确实没有任何m4脚本。我也同意我不想将宏目录设置到我项目的根目录。因此,更合适的配置是:

AC_CONFIG_MACRO_DIR()

因为我不想包含任何内容,即被叫命令应该只是

aclocal

没有任何参数。

2 个答案:

答案 0 :(得分:1)

如果您的aclocal标记包含-I m4,那么您的AC_CONFIG_MACRO_DIR很可能应该阅读

 AC_CONFIG_MACRO_DIR([m4])

通过将其设置为当前目录,我希望你的事情变得更糟而不是更好。

您有{root}/m4目录吗? (其中{root}是您的存储库的根目录)?如果没有,那么这可能是问题所在。

尝试制作“m4”目录。它应该放在项目的“根目录”中(与configure.ac(或configure.in)文件相同的目录)。

答案 1 :(得分:1)

这是一个警告,你不应该对它做任何事情,除非你打算使用-Werror进行automake(这可能是一个坏主意。)

问题在于,由于aclocal的设计,你不能用m4覆盖.的默认值(无论如何它都是一个自动问题,而不是autoconf。)