我只是用一个简单的configure.ac
.
$abs_top_builddir
除非通过替换(即),否则我无法获得合理的值AC_CONFIG_FILES
。根据预设输出变量(autoconf),它们至少应该在config.status
(即AC_CONFIG_COMMANDS
)期间可用。他们不是。
潜入config.status
,我发现它@abs_top_builddir@
被设置为$ac_abs_top_builddir
。这看起来很奇怪,我认为这可能是一个错误。我已将其发送到 bug-autoconf以了解他们的想法。
故事的寓意:它应该在任何完成替换的地方都起作用。您也许可以使用$ac_abs_top_builddir
within config.status
,但我不会依赖它。
这是我使用的测试:
配置.ac:
AC_PREREQ([2.67])
AC_INIT([], [0], [foo@example.com])
AC_MSG_NOTICE([notice: ${abs_top_builddir}])
AC_MSG_NOTICE([notice+ac: ${abs_top_builddir}])
AC_CONFIG_COMMANDS_PRE([echo "pre+ac: ${ac_abs_top_builddir}"])
AC_CONFIG_COMMANDS_PRE([echo "pre: ${abs_top_builddir}"])
AC_CONFIG_COMMANDS_POST([echo "post+ac: ${ac_abs_top_builddir}"])
AC_CONFIG_COMMANDS_POST([echo "post: ${abs_top_builddir}"])
AC_CONFIG_COMMANDS([echo],
[echo "config.status+ac: ${ac_abs_top_builddir}"
echo "config.status: ${abs_top_builddir}"])
AC_CONFIG_FILES([test], [chmod +x test])
AC_OUTPUT
测试输入:
#!/bin/sh
# -*- sh -*-
# @configure_input@
echo "test: @abs_top_builddir@"
echo "test+ac: @ac_abs_top_builddir@"
运行它autoconf && ./configure && ./test
。