我在每个子目录中都有一个包含Makefile.am的项目。
如何将AM_CFLAGS
变量设置从父Makefile.am传播到其他子目录' Makefile.am(sub-make)?
我了解以下方法:
export
变量include
对常见${top_srcdir}/Makefile_cflags.am
文件的声明。MAKEFLAGS
递归制作不是一种选择,我会回避include
和MAKEFLAGS
陈述方法。
GNU手册似乎没有清楚地概述将编译器/链接器设置传播到子制作。
答案 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.in
,Makefile.in
和Makefile
。然后执行configure
并传播AM_CFLAGS
然后那里。
同样是AM_CPPFLAGS
,AM_CXXFLAGS
和AM_LDFLAGS
的有用解决方案。
此处提供的AC_SUBST
的更多详细信息:https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Setting-Output-Variables.html