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:
24
Makefile
24
Makefile
@@ -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 $@ $<
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user