C - make中的条件编译标志



make如何解决以下问题?

SRCS1 = a.c b,c
SRCS2 = d.c e.c
SRCS= $(SRCS1) $(SRCS2)
OBJS1 = $(subst .c,.o,$(SRCS1))
OBJS2 = $(subst .c,.o,$(SRCS2))
OBJS = $(OBJS1) $(OBJS2)
include ../Makeconf

(包含CPPFLAGS=-Dfoo)(主Makefile也在../中)现在我想编译SRCS1, foo定义和SRCS2, foo没有定义。我试着

ifneq (,$(findstring $(OBJS2),$(OBJS)))
CPPFLAGS += -Ufoo
endif

,但是在编译时将-Ufoo添加到所有文件中。什么好主意吗?

您还没有向我们展示足够的makefile(s)来给出一个完整的答案,但我认为这是您正在寻找的:

$(OBJS2): CPPFLAGS += -Ufoo

最新更新