diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-06-11 09:48:15 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-06-11 09:48:15 +0200 |
commit | 4f2b735472eb921b5edd91c502e0a47d5e4d0cd2 (patch) | |
tree | 35aed5a8f6b650431071e7447565ab6795b790a6 /build/c/makefile | |
parent | fix(cog.toml): Update to the newest state (diff) | |
download | flake-templates-4f2b735472eb921b5edd91c502e0a47d5e4d0cd2.tar.gz flake-templates-4f2b735472eb921b5edd91c502e0a47d5e4d0cd2.zip |
chore(build): Update
Diffstat (limited to 'build/c/makefile')
-rw-r--r-- | build/c/makefile | 66 |
1 files changed, 66 insertions, 0 deletions
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) |