From 01a8bd6af7db5b51ab82adfa235da968eb2d8e97 Mon Sep 17 00:00:00 2001 From: Alejandro Colomar Date: Sat, 20 May 2023 21:00:49 +0200 Subject: Makefile: Create a preprocessed file, and allow appending flags Signed-off-by: Alejandro Colomar --- Makefile | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index eacfd63..ff498ce 100644 --- a/Makefile +++ b/Makefile @@ -11,18 +11,34 @@ builddir := tmp LIBUNIT_PREFIX := /opt/local/unit -LIBUNIT_CFLAGS := -isystem$(LIBUNIT_PREFIX)/include -LIBUNIT_LIBS := -L$(LIBUNIT_PREFIX)/lib -lunit +LIBUNIT_CPPFLAGS := -isystem$(LIBUNIT_PREFIX)/include +LIBUNIT_LIBS := -L$(LIBUNIT_PREFIX)/lib -lunit -CFLAGS := -Wall -Wextra -Werror -std=gnu2x -O3 $(LIBUNIT_CFLAGS) -ASFLAGS := -LDFLAGS := -LIBS := $(LIBUNIT_LIBS) -lpthread -lc -lgcc +DEFAULT_CPPFLAGS := $(LIBUNIT_CPPFLAGS) +EXTRA_CPPFLAGS := +CPPFLAGS := $(DEFAULT_CPPFLAGS) $(EXTRA_CPPFLAGS) -AR := ar -AS := as -CC := cc -LD := $(CC) $(CFLAGS) +DEFAULT_CFLAGS := -Wall -Wextra -Werror -std=gnu2x -O3 +EXTRA_CFLAGS := +CFLAGS := $(DEFAULT_CFLAGS) $(EXTRA_CFLAGS) + +DEFAULT_ASFLAGS := +EXTRA_ASFLAGS := +ASFLAGS := $(DEFAULT_ASFLAGS) $(EXTRA_ASFLAGS) + +DEFAULT_LDFLAGS := +EXTRA_LDFLAGS := +LDFLAGS := $(DEFAULT_LDFLAGS) $(EXTRA_LDFLAGS) + +DEFAULT_LIBS := $(LIBUNIT_LIBS) -lpthread -lc -lgcc +EXTRA_LIBS := +LIBS := $(DEFAULT_LIBS) $(EXTRA_LIBS) + +AR := ar +AS := as +CC := cc +CPP := $(CC) -E $(CFLAGS) +LD := $(CC) $(CFLAGS) FIND := find @@ -34,6 +50,7 @@ SORT := sort SRCDIR := $(srcdir)/src SRC := $(shell $(FIND) $(SRCDIR) -type f | $(GREP) '\.c$$' | $(SORT)) +I := $(patsubst $(srcdir)/%.c,$(builddir)/%.i,$(SRC)) ASM := $(patsubst $(srcdir)/%.c,$(builddir)/%.s,$(SRC)) OBJ := $(patsubst %.s,%.o,$(ASM)) BIN := $(builddir)/unit_c_app @@ -49,7 +66,11 @@ all: $(BIN) .SECONDEXPANSION: -$(ASM): $(builddir)/%.s: $(srcdir)/%.c Makefile | $$(@D)/ +$(I): $(builddir)/%.i: $(srcdir)/%.c Makefile | $$(@D)/ + $(info CPP $@) + $(CPP) $(CPPFLAGS) -o $@ $< + +$(ASM): %.s: %.i Makefile | $$(@D)/ $(info CC $@) $(CC) -S $(CFLAGS) -o $@ $< -- cgit v1.2.3