在每个子目录中使用相同的cflag



我在每个多个子目录中都有一个带有makefile.am的项目。

您如何从该parent makefile.am到其他子目录的makefile.am(submake(?

如何传播AM_CFLAGS变量设置?

我知道以下方法:

  • export变量
  • include向普通 ${top_srcdir}/Makefile_cflags.am文件语句。
  • MAKEFLAGS

递归制造不是一个选择,我避开了includeMAKEFLAGS语句方法。

GNU手册似乎并未清楚地概述将编译器/链接器设置为子制作的概述。

事实证明,这是autoconf/configure.ac解决方案。GNU称其为outputting a variable

CFLAGS从父 Makefile传播到每个子击败(subdirectories' Makefile), I added the following lines to configure.ac`:

ac_subst(am_cflags(

然后,对于每个子手机,我将以下行添加到"导入"该变量:

am_cppflags = @am_cppflags @

然后执行autogen.sh以重建configure.inMakefile.inMakefile。然后执行configure,然后传播AM_CFLAGS

也是AM_CPPFLAGSAM_CXXFLAGSAM_LDFLAGS的有用解决方案。

此处给出的AC_SUBST的更多详细信息:https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/settingting-tingting-putput-varput-variables.html>

最新更新