単純なでいくつかのテストを行いましたconfigure.ac
。
$abs_top_builddir
置換(つまり)を介さない限り、私は賢明な値を得ることができませんでしたAC_CONFIG_FILES
。プリセット出力変数(autoconf)によると、それらは少なくともconfig.status
(すなわちAC_CONFIG_COMMANDS
)の間に利用可能である必要があります。ではない。
に飛び込むと、それがの値に設定されてconfig.status
いることがわかりました。これは奇妙に思えますが、バグかもしれないと思います。私はそれをbug-autoconfに送って、彼らの考えを確認しました。@abs_top_builddir@
$ac_abs_top_builddir
話の教訓:置換が行われる場所ならどこでも機能するはずです。$ac_abs_top_builddir
内で使用できるかもしれませんconfig.status
が、私はそれに依存しません。
これが私が使用したテストです:
configure.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
test.in:
#!/bin/sh
# -*- sh -*-
# @configure_input@
echo "test: @abs_top_builddir@"
echo "test+ac: @ac_abs_top_builddir@"
で実行しautoconf && ./configure && ./test
ます。