From 4f2b735472eb921b5edd91c502e0a47d5e4d0cd2 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Tue, 11 Jun 2024 09:48:15 +0200 Subject: chore(build): Update --- build/c/makefile | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 build/c/makefile (limited to 'build/c/makefile') diff --git a/build/c/makefile b/build/c/makefile new file mode 100644 index 0000000..63ca24c --- /dev/null +++ b/build/c/makefile @@ -0,0 +1,66 @@ +PREFIX := /usr/local +BINPREFIX := $(DESTDIR)$(PREFIX)/bin +MANPREFIX := $(DESTDIR)$(PREFIX)/share/man/man1 + +BIN_NAME := %INIT_APPLICATION_NAME +# This version is set automatically on `cog bump --auto`; +BIN_VERSION := "v%INIT_APPLICATION_VERSION" # GUIDING VERSION STRING + +# The trailing slash is important +BUILD_DIR := ./target/ +BIN_PATH := $(BUILD_DIR)$(BIN_NAME) + + +SRC := $(wildcard src/*.c) +OBJ := $(SRC:.c=.o) +DEP := $(OBJ:.o=.d) + +LIBS := + +ALL_CFLAGS := -O3 -MMD -Wall -Wextra -Wno-unused-parameter $(CFLAGS) $(CPPFLAGS) +ALL_LDFLAGS := $(addprefix -l,$(LIBS)) -L $(LD_LIBRARY_PATH) $(LDFLAGS) + +default: all + +all: $(BIN_NAME) + +$(BIN_NAME): $(OBJ) + $(CC) $(addprefix $(BUILD_DIR),$(notdir $(OBJ))) -o $(addprefix $(BUILD_DIR),$(notdir $(BIN_NAME))) $(ALL_CFLAGS) $(ALL_LDFLAGS) + +$(OBJ): $(SRC) + mkdir --parents $(BUILD_DIR) + $(CC) -c $< -o $(addprefix $(BUILD_DIR),$(notdir $(OBJ))) $(ALL_CFLAGS) + +manual: + mkdir --parents $(BUILD_DIR)docs + pandoc "./docs/$(BIN_NAME).1.md" -s -t man > $(BUILD_DIR)docs/$(BIN_NAME).1 + +.PHONY : clean options install memory_leak_test +options: + @echo "PREFIX = $(PREFIX)" + @echo "BINPREFIX = $(BINPREFIX)" + @echo "MANPREFIX = $(MANPREFIX)" + @echo "" + @echo "BIN_NAME = $(BIN_NAME)" + @echo "BUILD_DIR = $(BUILD_DIR)" + @echo "BIN_PATH = $(BIN_PATH)" + @echo "" + @echo "SRC = $(SRC)" + @echo "OBJ = $(OBJ)" + @echo "DEP = $(DEP)" + @echo "" + @echo "LIBS = $(LIBS)" + @echo "" + @echo "ALL_CFLAGS = $(ALL_CFLAGS)" + @echo "ALL_LDFLAGS = $(ALL_LDFLAGS)" + @echo "" + +clean : + rm --recursive $(BUILD_DIR) + +install: $(BIN_NAME) manual + install -D $(BUILD_DIR)docs/$(BIN_NAME).1 $(MANPREFIX)/$(BIN_NAME); + install -D $(BUILD_DIR)$(BIN_NAME) $(BINPREFIX)/$(BIN_NAME); + +memory_leak_test: + sh ./scripts/valgrind_test.sh $(BIN_NAME) -- cgit 1.4.1