我有一个最小的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
没有任何参数。
答案 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。)