CXX := g++ CXXFLAGS := -Wall -Wextra -std=c++11 -g -O2 LDFLAGS := TARGET := ai OBJDIR := .objs CXX_SOURCES := $(wildcard *.cpp) OBJ_FILES := $(patsubst %.cpp,$(OBJDIR)/%.o,$(CXX_SOURCES)) DEP_FILES := $(patsubst %.cpp,$(OBJDIR)/%.d,$(CXX_SOURCES)) .PHONY: all clean all: $(TARGET) clean: rm -f $(TARGET) rm -rf $(OBJDIR) $(TARGET): $(OBJ_FILES) termio/libtermio.a @echo LD $@ @$(CXX) $(CXXFLAGS) -o $@ $^ termio/libtermio.a $(LDFLAGS) $(OBJDIR)/%.o: %.cpp @mkdir -p $(dir $@) @echo CXX $< @$(CXX) $(CXXFLAGS) -c -o $@ $< $(OBJDIR)/%.d: %.cpp @mkdir -p $(dir $@) @echo DEP $< @$(CXX) -MT $(OBJDIR)/$*.o -MM $(CXXFLAGS) $< >$@ -include $(DEP_FILES)