在每个子目录 (sub-make) 的 Makefile.am 上使用相同的 CFLAGS

Using same CFLAGS on Makefile.am in each subdirectories (sub-make)

我有一个项目在每个子目录中都有一个 Makefile.am。

如何将 AM_CFLAGS 变量设置从父 Makefile.am 传播到其他子目录的 Makefile.am(子目录)?

我知道以下方法:

递归 make 不是一个选项,我回避 includeMAKEFLAGS 语句方法。

GNU 手册似乎没有明确概述将 compiler/linker 设置传播到子制作。

原来这是一个 autoconf/configure.ac 的解决方案。 GNU 称之为 outputting a variable.

CFLAGS 从父 Makefile 传播到每个子目录(子目录' Makefile), I added the following lines toconfigure.ac`:

AC_SUBST(AM_CFLAGS)

然后对于每个子 make,我将以下行添加到 'import' 该变量:

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/Setting-Output-Variables.html