From 82cc71261d3d32012d33d3bebe56ca5e3b0bcdbd Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Sun, 2 Oct 2022 15:32:49 -0700 Subject: Initial commit. --- Makefile | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..863826d --- /dev/null +++ b/Makefile @@ -0,0 +1,52 @@ +BUILD := build + +override PACKAGES := fmt + +WARNINGS := -Wall -Werror +OPTIMIZE := -Og -flto +DEBUG := -g + +CXX := g++ +CXXFLAGS := $(WARNINGS) $(OPTIMIZE) $(DEBUG) + +SED := sed + +XXD := xxd + +override CXXFLAGS += -std=c++20 + +override COMPILE_FLAGS := -MMD -MP -I. +override LINK_FLAGS := + +ifneq "$(strip $(PACKAGES))" "" + override COMPILE_FLAGS += $(shell pkg-config --cflags $(PACKAGES)) + override LINK_FLAGS += -Wl,--start-group $(shell pkg-config --libs $(PACKAGES)) -Wl,--end-group +endif + +default: $(BUILD)/minigolf +.PHONY: default + +clean: + rm -rf $(BUILD) +.PHONY: clean + +.SUFFIXES: + +override SOURCES := $(shell find -\( -name build -prune -\) -o -\( -name \*.cpp -print -\)) + +override OBJECTS := $(addprefix $(BUILD)/, $(addsuffix .o, $(basename $(SOURCES)))) +override DEPENDS := $(addprefix $(BUILD)/, $(addsuffix .d, $(basename $(SOURCES)))) + +-include $(DEPENDS) + +$(BUILD)/%.o: %.cpp + @mkdir -p $(dir $@) + $(CXX) $(CXXFLAGS) $(COMPILE_FLAGS) -c -o $@ $< + +$(BUILD)/minigolf: $(OBJECTS) + @mkdir -p $(dir $@) + $(CXX) $(CXXFLAGS) -o $@ -Wl,--start-group $+ -Wl,--end-group $(LINK_FLAGS) + +$(BUILD)/%.bin: %.hex + @mkdir -p $(dir $@) + $(SED) -e "s/\\s*#.*//" $< | $(XXD) -r -p > $@ -- cgit v1.2.3