使用 autotools 在替换文件中执行替换

Perform substitution in a substitution file with autotools

我试着环顾四周,似乎找不到正确的信息。我想在 AC_SUBST_FILE 使用的文件中替换 @srcdir@。这可能吗?

AC_OUTPUT 不允许您执行两个替换步骤,所以我认为这是不可能的。但是,您可以这样做:

my_substitution_file:

srcdir is %srcdir%

configure.ac:

AC_PROG_SED
file=my_substitution_file
AC_SUBST_FILE([file])
AC_CONFIG_FILES([my_file.in])
AC_OUTPUT

Makefile.am:

my_file: my_file.in Makefile
    $(AM_V_GEN)$(SED) -e s,%srcdir%,$(srcdir), <$< >$@

my_file.in.in:

Here is what my_substitution_file has to say: @file@

总而言之,这应该会生成一个名为 my_file 的文件,其内容为:

Here is what my_substitution_file has to say: srcdir is /path/to/your/source