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

时间:2017-05-07 03:58:36

标签: makefile autotools automake

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

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

我了解以下方法:

  • export变量
  • include对常见${top_srcdir}/Makefile_cflags.am文件的声明。
  • MAKEFLAGS

递归制作不是一种选择,我会回避includeMAKEFLAGS陈述方法。

GNU手册似乎没有清楚地概述将编译器/链接器设置传播到子制作。

1 个答案:

答案 0 :(得分:2)

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

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

  

AC_SUBST(AM_CFLAGS)

然后对于每个子品牌,我将以下行添加到'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