aboutsummaryrefslogtreecommitdiffstats
path: root/makefile
diff options
context:
space:
mode:
authorFabrice <fabrice@schaub-dev.xyz>2026-03-25 11:12:30 +0100
committerFabrice <fabrice@schaub-dev.xyz>2026-03-25 11:12:30 +0100
commita62e16bf2639b5db99aa382d089d83b13ecf71c9 (patch)
treee20656cc5026db7883fdda8b1f7721a4de679630 /makefile
parent9495cf1aea0cf790a37594c8f593d00b5c35c35c (diff)
fix makefile
Diffstat (limited to 'makefile')
-rw-r--r--makefile60
1 files changed, 36 insertions, 24 deletions
diff --git a/makefile b/makefile
index d37b1b8..0572630 100644
--- a/makefile
+++ b/makefile
@@ -1,5 +1,7 @@
.SUFFIXES:
+.SILENT:
+# Build configuration options
CM_OPT_CC_FLAGS ?=
CM_OPT_PANIC_NAME ?= panic_impl
CM_OPT_RELEASE ?= 1
@@ -9,56 +11,66 @@ CM_OPT_ENABLE_SSE2 ?= 0
CM_OPT_STANDALONE ?= 1
CC ?= gcc
+PRINTF ?= printf
+RM_FLAGS = -f
+# Project root directory
CM_DIR ?= $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
-CM_SOURCE := $(CM_DIR)/cheesemap.c
-CM_OBJECT := $(CM_SOURCE:.c=.o)
-CM_DEPEND := $(CM_SOURCE:.c=.d)
+# Target: cm (cheesemap.o)
+cm = $(CM_DIR)/cheesemap.o
+cm_SOURCE = $(CM_DIR)/cheesemap.c
+cm_DEPEND = $(cm_SOURCE:.c=.d)
-CM_DEMO_SOURCE := $(CM_DIR)/cm-demo.c
-CM_DEMO := $(CM_DEMO_SOURCE:.c=)
-CM_DEMO_DEPEND := $(CM_DEMO_SOURCE:.c=.d)
-
-CM_CC_FLAGS := -std=gnu11 \
+cm_CFLAGS = -std=gnu11 \
-Wall -Wextra -Werror \
-MMD -MP -I$(CM_DIR)
-CM_CC_FLAGS += $(CM_OPT_CC_FLAGS)
-CM_CC_FLAGS += -DCM_OPT_PANIC_NAME='$(CM_OPT_PANIC_NAME)'
+cm_CFLAGS += $(CM_OPT_CC_FLAGS)
+cm_CFLAGS += -DCM_OPT_PANIC_NAME='$(CM_OPT_PANIC_NAME)'
ifeq ($(CM_OPT_RELEASE),1)
- CM_CC_FLAGS += -O2 -fno-stack-protector
+ cm_CFLAGS += -O2 -fno-stack-protector
else
- CM_CC_FLAGS += -g3
+ cm_CFLAGS += -g3
endif
ifeq ($(CM_OPT_ENABLE_UBSAN),1)
- CM_CC_FLAGS += -fsanitize=undefined
+ cm_CFLAGS += -fsanitize=undefined
endif
ifeq ($(CM_OPT_ENABLE_ASAN),1)
- CM_CC_FLAGS += -fsanitize=address
+ cm_CFLAGS += -fsanitize=address
endif
ifeq ($(CM_OPT_ENABLE_SSE2),1)
- CM_CC_FLAGS += -DCM_OPT_ENABLE_SSE2=1 -msse2
+ cm_CFLAGS += -DCM_OPT_ENABLE_SSE2=1 -msse2
endif
+# Target: cm_demo
+cm_demo = $(CM_DIR)/cm-demo
+cm_demo_SOURCE = $(CM_DIR)/cm-demo.c
+cm_demo_DEPEND = $(cm_demo_SOURCE:.c=.d)
+cm_demo_CFLAGS = $(cm_CFLAGS)
+
+-include $(cm_DEPEND) $(cm_demo_DEPEND)
+
ifeq ($(CM_OPT_STANDALONE),1)
.PHONY: all
-all: $(CM_OBJECT) $(CM_DEMO)
+all: $(cm) $(cm_demo)
endif
-$(CM_OBJECT): $(CM_SOURCE)
- $(CC) $(CM_CC_FLAGS) -c $< -o $@
+$(cm): $(cm_SOURCE)
+ @$(PRINTF) " CC %s\n" "$(notdir $@)"
+ $(CC) $(cm_CFLAGS) -c $< -o $@
-$(CM_DEMO): $(CM_DEMO_SOURCE) $(CM_OBJECT)
- $(CC) $(CM_CC_FLAGS) $(CM_DEMO_SOURCE) $(CM_OBJECT) -o $@
+$(cm_demo): $(cm_demo_SOURCE) $(cm)
+ @$(PRINTF) " CC %s\n" "$(notdir $@)"
+ $(CC) $(cm_demo_CFLAGS) $^ -o $@
.PHONY: clean
clean::
- $(RM) $(CM_OBJECT) $(CM_DEPEND)
- $(RM) $(CM_DEMO) $(CM_DEMO_DEPEND)
-
--include $(CM_DEPEND) $(CM_DEMO_DEPEND)
+ @$(PRINTF) " RM %s\n" "$(notdir $(cm))"
+ $(RM) $(RM_FLAGS) $(cm) $(cm_DEPEND)
+ @$(PRINTF) " RM %s\n" "$(notdir $(cm_demo))"
+ $(RM) $(RM_FLAGS) $(cm_demo) $(cm_demo_DEPEND)