CC = g++ CFLAGS += -Wall TESTEXE := proxy # This order is necessary for security. Always include student code last! TESTOBJS := $(TESTEXE).o util.o unit_tests.o monad_shared.o $(TESTOBJS) 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 ifndef ALL_TARGET ALL_TARGET = all all: $(TESTEXE) endif $(TESTEXE): $(TESTOBJS) $(CC) $(TESTOBJS) -o $@ .cpp.o: $(wildcard *.h) $(CC) $(CFLAGS) -c $(@:.o=.cpp) -o $@ ifndef CLEAN_TARGET CLEAN_TARGET = clean .PHONY: clean clean: -rm -f *.o $(TESTEXE) endif