SOURCES := $(wildcard *.cc) OBJECTS := $(SOURCES:.cc=.o) EXESRC := $(wildcard *.cpp) EXECUTABLES := $(EXESRC:.cpp=.exe) DEPS := $(SOURCES:.cc=.d) all: deps $(EXECUTABLES) deps: $(DEPS) %.exe : %.cpp $(OBJECTS); ${LD} $(CXXFLAGS) $< $(OBJECTS) $(LDFLAGS) -o $@ %.o : %.cc; $(CXX) $(CXXFLAGS) -c $< -o $@ %.d : %.cc; $(DEPEND) $(CXXFLAGS) $< > $@ %.d : %.cpp; $(DEPEND) $(CXXFLAGS) $< -MF $@ -MT $(<:.cpp=.exe) clean: ; $(DEL) *.d; $(DEL) *.o; $(DEL) *.exe include $(SOURCES:.cc=.d) include $(EXESRC:.cpp=.d)