如何添加适用于所有makefile的额外标志变量(如CPPFLAGS)?目前,我们正在使用CPPFLAGS,但应该将其保留为用户变量,我想保留它。我不想使用AM_CPPFLAGS,因为我想为特定的Makefile.amS保留它。我想要的是GLOBAL_CPPFLAGS,我可以在configure.ac中设置并将其应用于所有内容。如果有一种方法可以明确地忽略该标志,那也很好。
我认为我需要做的是编写自己的make规则,但是如果不将它复制到每个Makefile.am中,我将如何在所有子文件夹中使用它?
答案 0 :(得分:4)
你没有使用CPPFLAGS
是正确的。那是user variable。我要做的是这样的事情:
在源目录的根目录中,创建一个名为common.am
的文件,并在其中定义您需要的内容:
## common.am
AM_CPPFLAGS = -DFOO
我知道你说你不想使用AM_CPPFLAGS
,但是听我说。在您的各个子目录中,include $(top_srcdir)/common.am
并根据需要扩展或覆盖AM_CPPFLAGS
:
## bar/Makefile.am
include $(top_srcdir)/common.am
AM_CPPFLAGS += -DBAR
如果您想覆盖,请使用=
代替+=
:
## baz/Makefile.am
include $(top_srcdir)/common.am
AM_CPPFLAGS = -DBAZ
答案 1 :(得分:1)
我认为您回答了自己的问题:您必须将新规则复制到每个makefile中。
答案 2 :(得分:0)
CPPFLAGS是您可能应该使用的机制。只需在configure.ac中连接你想要的标志:
GLOBAL_CPPFLAGS = “ - DSOMETHING”
...
CPPFLAGS =“$ CPPFLAGS $ GLOBAL_CPPFLAGS”
你应该被设置。