我已经从Autoconf Archive下载了一个宏,我想使用它。我有什么要放在我的configure.ac文件来使用这个宏?如何在Autoconf中包含.m4文件?
回答
您可能要AC_CONFIG_MACRO_DIR添加到configure.ac
到目录所在的宏:
AC_CONFIG_MACRO_DIR([path/to/macros])
你需要调用这个文件也是宏观地方。
和Makefile.am
你可能会需要建立ACLOCAL_AMFLAGS(如果你是用automake):
ACLOCAL_AMFLAGS = -I path/to/macros
然后调用autoreconf -fvi
,你应该设置。
作为替代Idav1s的解决方案(这是绝对正确的),您可以安装宏的位置在那里aclocal
会发现它(使用aclocal --print
上看到aclocal
正在寻找.m4
文件)。每种方法都有优点和缺点。如果您在$(aclocal --print)
中安装.m4
文件,则可以在所有项目中使用该宏,而无需执行其他任何操作。主要的缺点是,每个在项目上工作的开发人员都必须在他们的盒子上安装宏,这就要求每个开发人员对自动工具有合理的理解。
我有这个完全相同的问题,很难找到比我想象的答案。它看起来像我想要的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文件中指定一个目录,看起来这将是一个非常常见的用例哦。)
我也有这个问题,只是修复它。我的环境是:CentOS 6.4,M4 1.4.17,autoconf 2.69,libtool 2.4,automake 1.14
以下是我使用的步骤。
add m4 as AC_CONFIG_MACRO_DIR to your configure.ac
rm aclocal.m4 if it exists
mkdir m4 if it does not exist
# copy some dummy files into the folder
# or some versions of autoconf won't work
autoreconf -i --install
是不是不够的,只是保存m4宏在特定的目录,然后运行autoreconf
与-I
选项:
autoreconf -i -I/path/to/your/m4/file
还是我误解你,你想把它永久整合,没有运行autoreconf
的人担心下载m4文件?
- 1. 如何在autoconf/m4中转义文本?
- 2. 在m4中,如何包含名称中包含环境变量的文件?
- 3. 如何把逻辑或autoconf的M4 AS_IF
- 4. autoconf,如何从AC_CONFIG_SRCDIR文件包含文件
- 5. 使用autoconf/automake时,如何指定包含文件路径?
- 6. autotools:如何在configure.ac中包含我自己的m4宏
- 7. 如何为m4文件添加全局用户指定的autoconf模块目录?
- 8. autoconf/configure在哪里寻找包含文件
- 9. 如何正确更新m4,autoconf,automake和libtool? Mac OSX
- 10. Autoconf - 在AC_INIT参数列表中使用来自m4/revision.m4的宏
- 11. 如何在codeigniter中包含文件
- 12. 如何在wing-IDE中包含文件
- 13. 如何在rails中包含manifest.json文件?
- 14. 如何在Prolog中包含.pl文件?
- 15. 如何在codeigniter中包含css文件
- 16. 如何在Bootstrap中包含文件* .php?
- 17. 如何在Codeigniter中包含文件?
- 18. 如何在xslt中包含javaScript文件
- 19. 如何在Eclipse中包含JavaScript文件
- 20. 如何在jsp中包含js文件
- 21. 如何在rails中包含html文件?
- 22. 如何在Android.mk文件中包含appcompat_v7
- 23. 如何在课堂中包含文件?
- 24. 如何在HTML中包含JavaScript文件?
- 25. 如何在Mako中包含CSS文件?
- 26. 如何在asp.net中包含文件include?
- 27. 如何在DrScheme中包含文件?
- 28. 如何在html中包含html文件
- 29. 如何在ivy.xml中包含文件?
- 30. 如何在NSBundle中包含zip文件?
“如果你不使用libtoolize,目前看起来'AC_CONFIG_MACRO_DIR'没有用。”为什么?我还没有找到任何建议MACRO_DIR和libtoolize之间有关联的文档。 – 2016-10-22 23:23:26
@underscore_d已经有一段时间了,所以我不太确定,但我认为这是通过实验发现的。 – Chris 2016-10-24 16:55:52
运行libtoolize将在AC_CONFIG_MACRO_DIR指定的目录中创建符号链接,前提是您不要使用m4_include作为某些事情,因为libtoolize无法遵循这些包含(请参阅我的Q/A:http://unix.stackexchange.com/questions/ 340633 /实行-夹杂物的,另一个文件 - 到 - 一个流读取从 - 标准输入 – 2017-01-28 19:45:12