automake 中的构建选项

Posted

技术标签:

【中文标题】automake 中的构建选项【英文标题】:build options in automake 【发布时间】:2014-03-28 15:03:15 【问题描述】:

我从 Internet 下载了一个开放源代码。我用 automake 构建它。

我在编译日志中看到 gcc 中的以下选项

gcc -DPACKAGE_NAME=\"anydaemon\" -DPACKAGE_TARNAME=\"anydaemon\" -DPACKAGE_VERSION=\"2.0\" -DPACKAGE_STRING=\"anydaemon\ 2.0\" -DPACKAGE_BUGREPORT=\"any.person@anydomain.com\"

这些 gcc 选项是由 automake 从 config 自动生成的?

顺便说一句,configure.ac 开头包含以下行:

AC_INIT([anydaaemon], [2.0], [any.person@anydomain.com])

automake 是否从该行中提取上述 gcc 选项 PACKAGE_NAMEPACKAGE_VERSION

【问题讨论】:

【参考方案1】:

Automake 仅从 Makefile.am 生成 Makefile.in。其余的在configure 运行中完成。但是是的,configure 填充由configure.acMakefile.am 指定的参数。

换句话说,更改 configure.ac 不会改变任何事情,除非您重新生成配置脚本并重新运行它。

【讨论】:

添加以下可能是个好主意:在您生成功能正常的Makefile 后,它会跟踪configure.ac 并在您运行make 时自动重新生成configure。因此,除非您将Makefile 破坏到无法再运行make 的程度,否则没有理由运行上述任何步骤(autoconf、automake、./configure 等)。

以上是关于automake 中的构建选项的主要内容,如果未能解决你的问题,请参考以下文章

使用 automake 配置脚本在 64 位 Linux 上构建 32 位?

为啥 MSYS 无法识别 AM_INIT_AUTOMAKE 中的 tar-ustar 选项?

automake:编译器选项的顺序阻碍了 make

Automake/libtool 不构建共享库

在构建期间覆盖使用 automake/libtool 构建的共享库中的安装路径,以便在无法使用 DYLD_LIBRARY_PATH 时进行测试

Automake:如何在不安装的情况下构建共享库