diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..158ca72 --- /dev/null +++ b/Makefile @@ -0,0 +1,56 @@ +# pke-at + +PROJ=pke-at + +-include config.mk + +FLAGS_DEBUG = -O0 -g -DDEBUG +FLAGS_RELEASE_DEBUG = -O2 -g -DDEBUG +FLAGS_RELEASE = -O2 -s -DNDEBUG +BUILD_MODE_FLAGS = $(FLAGS_DEBUG) + +define cc-command + $(CC) -std=c2x -c -o $@ $(BUILD_MODE_FLAGS) $(CFLAGS) $(INCS) $< +endef + +define cxx-command + $(CXX) -std=c++23 -c -o $@ $(BUILD_MODE_FLAGS) $(CXXFLAGS) $(INCS) $< +endef + +.PHONY: default +default: options .WAIT bin/pke-at + +.PHONY: prepare +prepare: ## Set up the current directory to build + mkdir -p bin + mkdir -p obj + +.PHONY: options +options: prepare .WAIT + @echo "$(PROJ)" build options: + @echo "CFLAGS = $(CFLAGS)" + @echo "CXXFLAGS = $(CXXFLAGS)" + @echo "BUILD_MODE_FLAGS = $(BUILD_MODE_FLAGS)" + @echo "LDFLAGS = $(LDFLAGS)" + @echo "CC = $(CC)" + @echo "CXX = $(CXX)" + +obj/%.o : src/%.c | prepare + $(cc-command) +obj/%.o : src/%.cpp | prepare + $(cxx-command) + +bin/pke-at: ## Builds the pke-at executable +bin/pke-at: obj/pke-at.o + $(CXX) -v -std=c++23 $(BUILD_MODE_FLAGS) $(INCS) $^ $(LDFLAGS) $(CXXFLAGS) -o $@ + +.PHONY: clean +clean: + rm -rf bin + rm -rf obj + rm -rf *.plist + +.PHONY: help +help: ## Prints help for targets with comments + @cat $(MAKEFILE_LIST) | grep -E '^[a-zA-Z_-]+:.*?## .*$$' | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + |
