我在每个多个子目录中都有一个带有makefile.am的项目。
您如何从该parent makefile.am到其他子目录的makefile.am(submake(?
如何传播AM_CFLAGS
变量设置?
我知道以下方法:
-
export
变量 -
include
向普通${top_srcdir}/Makefile_cflags.am
文件语句。 -
MAKEFLAGS
递归制造不是一个选择,我避开了include
和MAKEFLAGS
语句方法。
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.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/settingting-tingting-putput-varput-variables.html>