CPP = g++
OPTS =       # any options, e.g., -O for optimize
DEBUG =      # empty now, but assign -g for debugging

executable: main.cpp a.o b.o c.o c.h
	${CPP} ${OPTS} ${DEBUG} -o executable main.cpp a.o b.o c.o

c.o: c.cpp c.h
	${CPP} ${OPTS} ${DEBUG} -c c.cpp

b.o: b.cpp b.h
	${CPP} ${OPTS} ${DEBUG} -c b.cpp

a.o: a.cpp a.h
	${CPP} ${OPTS} ${DEBUG} -c a.cpp

clean:
	rm -f executable *.o core
