all: wibo CXXFLAGS = -Wall -g -m32 -std=c++2a -lstdc++ -MD BUILD_DIR := build CPP_FILES := $(wildcard *.cpp) O_FILES := $(foreach file,$(CPP_FILES),$(BUILD_DIR)/$(file:.cpp=.o)) DEP_FILES := $(O_FILES:.o=.d) $(BUILD_DIR): mkdir -p $(BUILD_DIR) $(BUILD_DIR)/%.o: %.cpp | $(BUILD_DIR) $(CXX) -c $(CXXFLAGS) $< -o $@ wibo: $(O_FILES) $(CXX) $(CXXFLAGS) $^ -o $@ clean: $(RM) -r $(BUILD_DIR) wibo .PHONY: all clean MAKEFLAGS += --no-builtin-rules -include $(DEP_FILES)