From eb3fd68203fee7c63245c702914c2acd3332d65a Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Thu, 22 Sep 2022 11:29:07 -0700 Subject: Initial commit. --- Makefile | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..184f7c0 --- /dev/null +++ b/Makefile @@ -0,0 +1,50 @@ +BUILD := build + +override PACKAGES := fmt + +WARNINGS := -Wall -Werror +OPTIMIZE := -O3 -flto +DEBUG := -g + +CXX := g++ +CXXFLAGS := $(WARNINGS) $(OPTIMIZE) $(DEBUG) + +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)/procmodel +.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)/procmodel: $(OBJECTS) + @mkdir -p $(dir $@) + $(CXX) $(CXXFLAGS) -o $@ -Wl,--start-group $+ -Wl,--end-group $(LINK_FLAGS) + +$(BUILD)/%.bin: %.hex + @mkdir -p $(dir $@) + $(XXD) -r -p $< $@ -- cgit v1.2.3