CC = g++ CFLAGS = -Wall EXENAME = monad OBJS = $(EXENAME).o util.o monad_shared.o IDFILE = .monadid OPTIMIZE = off ifeq ($(strip $(OPTIMIZE)),on) CFLAGS += -O2 -DOPTIMIZE else ifeq ($(strip $(OPTIMIZE)),off) CFLAGS += -g -O0 else $(warning Invalid value specified for OPTIMIZE. Should be on or off) CFLAGS += -g -O0 endif all: $(EXENAME) $(IDFILE) $(IDFILE): echo -e 'This file is used for $(EXENAME) directory identification\n$(EXENAME) Build Date:' `date`> $(IDFILE) $(EXENAME): $(OBJS) $(IDFILE) $(CC) $(CFLAGS) $(OBJS) -o $@ .cpp.o: $(wildcard *.h) $(CC) $(CFLAGS) -c $(@:.o=.cpp) -o $@ .PHONY: clean clean: rm -f *.o $(EXENAME) $(wildcard $(EXENAME)$(EXENAME)*) $(IDFILE) .PHONY: clean.sh clean.sh: $(EXENAME) ./clean.sh