如何根据MAKEFLAG在makefile中设置变量的值?

时间:2011-10-10 10:37:33

标签: if-statement makefile gnu-make

我的makefile正在编译我的程序以进行调试。我的意思是它将-g -D DEBUG传递给编译器。我希望能够通过-nd传递 n ot d ebug或-p进行 p 生成从编译器中删除调试标志。要做到这一点,我需要一些方法将其置于make语法中:“如果MAKEFLAGS不是 nd 然后将CFLAGS设置为-g -D DEBUG,否则将其留空”

我该怎么做?

1 个答案:

答案 0 :(得分:1)

如果你关心的只是-nd,那就可以了:

ifeq (,$(findstring nd,$(MAKEFLAGS)))
FOO = -g -D DEBUG
endif

如果你也关心-p,那就不那么干净了:

FOO = -g -D DEBUG
ifneq (,$(findstring nd,$(MAKEFLAGS)))
FOO =
endif

ifneq (,$(findstring p,$(MAKEFLAGS)))
FOO =
endif