如果我在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))
答案 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时看到结果。