CXX = g++ CXXFLAGS = -Wall -Wextra -std=c++17 -O2 -g LDFLAGS = TARGET = tri OBJDIR = obj .PHONY: all clean all: $(TARGET) clean: @echo "Cleaning" @rm -f $(TARGET) @rm -rf $(OBJDIR) $(OBJDIR)/%.o: %.cpp $(wildcard *.h) | $(OBJDIR) @echo "CXX $<" @$(CXX) $(CXXFLAGS) -c -o $@ $< $(TARGET): $(patsubst %.cpp,$(OBJDIR)/%.o,$(wildcard *.cpp)) | $(OBJDIR) @echo "LD -o $@" @$(CXX) -o $@ $^ $(LDFLAGS) $(OBJDIR): @mkdir -p $(OBJDIR)