如何测试符号是否添加到Makefile中的CFLAGS?

时间:2013-12-26 07:30:50

标签: linux makefile

如果我在Makefile中添加以下一行:

CFLAGS += -DMY_SYMBOL

如何测试'MY_SYMBOL'是否在子目录Makefile中定义?似乎以下情况不起作用:

ifdef MY_SYMBOL
#do something
endif

感谢。

以下似乎也不起作用:

define symbol_in_cflags_check
@echo $(1)
@echo $(2)
ifeq ($(1), $(2))
SUBDIRS := music
endif
endef

RESULT := $(foreach SYMBOL, $(shell echo $(CFLAGS)), $(call symbol_in_cflags_check, $(SYMBOL), -DIN_MUSIC))

2 个答案:

答案 0 :(得分:2)

ifneq (,$(filter MY_SYMBOL,$(CFLAGS)))
# it is in CFLAGS, so do something
else
# it is NOT in CFLAGS, so do something else
endif

答案 1 :(得分:1)

如果它只是您想要的快速测试,请在子目录Makefile中添加一行,如

echo ${CFLAGS} | grep MY_SYMBOL && echo "yes, it's there" || echo "no, not there"

你应该在做make时看到结果。