CC = g++ INCDIRS = $(patsubst cs202%,-Ics202%,$(wildcard cs202*)) -I. INCLIBS = $(patsubst cs202%,-Lcs202%,$(wildcard cs202*)) CARGS = $(INCDIRS) -Wall -g CLIBS = -lncurses -lm $(patsubst %,-l%,$(wildcard cs202*)) OBJS = main.o common.o $(patsubst %.c,%.o,$(wildcard cs202*/*.c)) $(patsubst %.cpp,%.o,$(wildcard cs202*/*.cpp)) TARGET = 202games %.o: %.c $(CC) -c $(CARGS) -o $@ $< $(TARGET): $(OBJS) for s in cs202*; do make -C $$s; done $(CC) $(CARGS) $(INCLIBS) -o $@ $^ $(CLIBS) clean: for s in cs202*; do make -C $$s clean; done rm -f $(TARGET) $(OBJS)