fix: GNU Make predefines variables

This causes issues leading to the various flags and variables being set
to unexpected values.
This commit is contained in:
2025-12-22 14:46:46 +01:00
parent 4701e047e5
commit 6ca3c1fcac

View File

@@ -2,13 +2,12 @@ SHELL = /bin/sh
.SUFFIXES: .SUFFIXES:
CC = avr-gcc CC = avr-gcc
RM = rm -vf
STRIP = avr-strip STRIP = avr-strip
CPPFLAGS ?= -DNDEBUG CPPFLAGS = -DNDEBUG
CFLAGS ?= -Os CFLAGS = -Os
LDFLAGS ?= -nostdlib -nostartfiles -flto
LDFLAGS += -nostdlib -nostartfiles -flto
CPPFLAGS += -Iinclude CPPFLAGS += -Iinclude
CFLAGS += -std=gnu99 -MMD -MP CFLAGS += -std=gnu99 -MMD -MP
CFLAGS += -Wall -Wextra -Wpedantic -Wno-pointer-arith CFLAGS += -Wall -Wextra -Wpedantic -Wno-pointer-arith
@@ -18,20 +17,27 @@ SRC += $(wildcard src/*.S src/*/*.S src/*/*/*.S src/*/*/*/*.S src/*/*/*/*/*.S sr
OBJ := $(SRC:%=obj/%.o) OBJ := $(SRC:%=obj/%.o)
all: bin/a.out .PHONY: all clean install-strip info
clean:; @-$(RM) -r bin/ obj/ all: info bin/a.out
clean:; @-$(RM) -rv bin/ obj/
info:
$(info CC: $(CC))
$(info CFLAGS: $(CFLAGS))
$(info CPPFLAGS: $(CPPFLAGS))
$(info LDFLAGS: $(LDFLAGS))
$(info LDLIBS: $(LDLIBS))
bin/a.out: $(OBJ) bin/a.out: $(OBJ)
$(info [LD] $@) $(info [LD] $(CC) $@)
@mkdir -p $(@D) @mkdir -p $(@D)
@$(CC) -o $@ $^ $(LDFLAGS) $(LDLIBS) @$(CC) -o $@ $^ $(LDFLAGS) $(LDLIBS)
bin/a.hex: bin/a.out bin/a.hex: bin/a.out
$(info [STRIP] $@) $(info [STRIP] $(STRIP) $@)
@$(STRIP) -o $@ $< @$(STRIP) -o $@ $<
obj/%.o: % obj/%.o: %
$(info [CC] $@) $(info [CC] $(CC) $@)
@mkdir -p $(@D) @mkdir -p $(@D)
@$(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $< @$(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<