如何在Autoconf中包含.m4文件?

pet*_*ohn 24 autoconf

我从Autoconf Archive下载了一个宏,我想使用它.我需要在configure.ac文件中放置什么才能使用这个宏?

lda*_*v1s 33

您可能希望将AC_CONFIG_MACRO_DIR添加到configure.ac宏所在的目录:

AC_CONFIG_MACRO_DIR([path/to/macros])
Run Code Online (Sandbox Code Playgroud)

您还需要在此文件中的某处调用宏.

并且Makefile.am您可能需要设置ACLOCAL_AMFLAGS(如果您使用的是automake):

ACLOCAL_AMFLAGS         = -I path/to/macros
Run Code Online (Sandbox Code Playgroud)

然后调用autoreconf -fvi,你应该设置.


Chr*_*ris 11

我有同样的问题,找到答案比我想象的更难.它看起来像AC_CONFIG_MACRO_DIR我想要的,但如果你不使用libtoolize,它似乎AC_CONFIG_MACRO_DIR目前没用.

如果你正在使用automake,我认为上面的答案是正确的.

我没有使用automake,所以我找到的唯一方法就是使用m4_include宏来分别吸入每个.m4文件.我在这里找到了这种方法:

http://www.flameeyes.eu/autotools-mythbuster/autoconf/macros.html

希望这可以帮助.(考虑到autoconf已经存在了多长时间,我有点难以理解,没有内置的方法来指定.ac文件中的目录.看起来它会是一个非常常见的用例.哦,好吧.)


Wil*_*ell 7

作为Idav1s解决方案的替代方案(绝对正确),您可以将宏安装在aclocal可以找到它的位置(用于aclocal --print查看在哪里aclocal查找.m4文件).每种方法都有利有弊.如果您安装了这些.m4文件$(aclocal --print),则可以在所有项目中使用该宏而无需执行任何其他操作.主要缺点是,每个在项目上工作的开发人员都必须在他们的盒子上安装宏,这需要每个开发人员对autotools有一个合理的理解.