CXX = c++ CXXFLAGS = -g DEPEND = c++ -MM DEL = rm -rf LD = $(CXX) LDFLAGS = -lm SOURCES := $(wildcard *.cc) OBJECTS := $(SOURCES:.cc=.o) EXESRC := $(wildcard *.cpp) EXECUTABLES := $(EXESRC:.cpp=.exe) testTaskManager_OBJ := TaskManager.o testInvestor_OBJ := Stock.o Investor.o SellOrder.o BuyOrder.o Order.o StockMarket.o BuyStrategy.o testStockMarket_OBJ := Stock.o Investor.o SellOrder.o BuyOrder.o Order.o StockMarket.o BuyStrategy.o all: $(EXECUTABLES) testTaskManager.exe : testTaskManager.cpp $(testTaskManager_OBJ); ${LD} $(CXXFLAGS) $< $(testTaskManager_OBJ) $(LDFLAGS) -o $@ testInvestor.exe : testInvestor.cpp $(testInvestor_OBJ); ${LD} $(CXXFLAGS) $< $(testInvestor_OBJ) $(LDFLAGS) -o $@ testStockMarket.exe : testStockMarket.cpp $(testStockMarket_OBJ); ${LD} $(CXXFLAGS) $< $(testStockMarket_OBJ) $(LDFLAGS) -o $@ %.exe : %.cpp $(OBJECTS); ${LD} $(CXXFLAGS) $< $(OBJECTS) $(LDFLAGS) -o $@ %.o : %.cc; $(CXX) $(CXXFLAGS) -c $< -o $@ %.d : %.cc; $(DEPEND) $(CXXFLAGS) $< | grep -v /usr/include > $@ clean: ; $(DEL) *.d; $(DEL) *.o; $(DEL) *.exe clear: ; $(DEL) *~ include $(SOURCES:.cc=.d)