user1914074
user1914074

Reputation: 19

conditional compilation flags in make

How to solve the following problem with 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

(which contains CPPFLAGS=-Dfoo) (the main Makefile is also in ../) Now I want to compile SRCS1 with foo defined and SRCS2 with foo not defined. I tried

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

but that adds -Ufoo to all files when compiled. Any ideas?

Upvotes: 1

Views: 408

Answers (1)

Beta
Beta

Reputation: 99084

You haven't shown us enough of the makefile(s) to give a complete answer, but I think this is what you're looking for:

$(OBJS2): CPPFLAGS += -Ufoo

Upvotes: 2

Related Questions