Makefile.in中,我看到了变量定义,其中在两个@符号之间包含了外部变量名称

# @configure_input@

package = @PACKAGE_NAME@


这些外部变量来自哪里?另外,我在GNU手册中找不到在两个@符号之间完全包含变量的含义是什么?它特定于Makefile.in吗?

谢谢。

最佳答案

这是一个autoconf的事情。

./configure完成运行后,将生成并执行一个名为config.status的文件,该文件是一个shell脚本,具有变量替换的最终值(用AC_SUBST声明的任何内容)。

AC_CONFIG_FILES中声明的所有内容均由config.status处理,通常是将foo.in转换为foo

当automake将Makefile.am处理为Makefile.in时,任何AC_SUBST变量都会自动可用(使用类似FOO = @FOO@的声明),除非通过调用AM_SUBST_NOTMAKE来抑制它。

07-24 09:44
查看更多