diff options
author | Alejandro Colomar <alx@kernel.org> | 2023-05-20 21:00:49 +0200 |
---|---|---|
committer | Alejandro Colomar <alx@kernel.org> | 2023-05-20 21:03:07 +0200 |
commit | 01a8bd6af7db5b51ab82adfa235da968eb2d8e97 (patch) | |
tree | 43792434a85990dbb72f32d4a6b2f283345eeacd | |
parent | c203ed16e2cda8e0c4fa9006c0a98cd9f0bb782a (diff) |
Makefile: Create a preprocessed file, and allow appending flags
Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r-- | Makefile | 43 |
1 files changed, 32 insertions, 11 deletions
@@ -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 $@ $< |