GNU 自动工具配置 autoreconf

GNU 自动工具配置 autoreconf

我在使用自动工具时有一个问题,特别是在通过运行生成配置脚本时

autoreconf -fi

我会收到这些警告:

libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac,
libtoolize: and rerunning libtoolize and aclocal.
libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
configure.ac:12: installing './compile'
configure.ac:15: installing './config.guess'
configure.ac:15: installing './config.sub'
configure.ac:6: installing './install-sh'
configure.ac:6: installing './missing'
Makefile.am: installing './INSTALL'
src/Makefile.am:5: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
src/Makefile.am: installing './depcomp'
src/filteropt/Makefile.am:3: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
src/memory/Makefile.am:3: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
src/pagemanager/Makefile.am:3: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
src/raster/Makefile.am:5: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
src/raster/blendSource/Makefile.am:3: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')

之后,我可以手动检查并将 INCLUDES 更改为 AM_CPPFLAGS 以及添加 -I m4 但我不应该能够更新配置文件以便我不会收到这些警告吗?

我应该在哪里进行这些编辑才能避免这些警告?

答案1

来自 autoreconf 的手册页:

默认情况下,它仅重制那些早于其源的文件。如果您安装新版本的 GNU 构建系统,您可以 make ('autoreconf' 通过为其提供 '--force' 选项来重新制作所有文件)。

所以看来只要运行autoreconf -fi它就应该自动更新那些配置文件

答案2

如您所知,libtoolize 挂起。有时将问题归咎于 autoreconf,但实际问题严格来说是 libtoolize。 autoreconf 运行 libtoolize,这时问题就出现了。但是,仅在命令行上运行 libtoolize 本身也说明了该问题。

网络上的各种事情都建议对configure.ac进行更改。

# configure.ac  (this does not help)
AC_CONFIG_AUX_DIR([.])

那是行不通的。

其他人建议您需要先创建 m4 目录。那没有帮助。

解决方法的方法是从 Makefile.am 中删除 ACLOCAL_AMFLAGS 行,并简单地容忍来自 libtoolize 的令人讨厌的语法。

# delete this from Makefile.am
ACLOCAL_AMFLAGS="-I m4"

如果您确实需要 Makefile.am 中的一些 ACLOCAL_AMFLAGS 行,那么,啊...,您遇到了我无法解决的问题。祝你好运。

相关内容