SHELL = /bin/sh .SUFFIXES: CC = avr-gcc STRIP = avr-strip CPPFLAGS = -DNDEBUG CFLAGS = -Os LDFLAGS += -nostdlib -nostartfiles -flto CPPFLAGS += -Iinclude CFLAGS += -std=gnu99 -MMD -MP CFLAGS += -Wall -Wextra -Wpedantic -Wno-pointer-arith SRC := $(wildcard src/*.c src/*/*.c src/*/*/*.c src/*/*/*/*.c src/*/*/*/*/*.c src/*/*/*/*/*/*.c src/*/*/*/*/*/*/*.c src/*/*/*/*/*/*/*/*.c) SRC += $(wildcard src/*.S src/*/*.S src/*/*/*.S src/*/*/*/*.S src/*/*/*/*/*.S src/*/*/*/*/*/*.S src/*/*/*/*/*/*/*.S src/*/*/*/*/*/*/*/*.S) OBJ := $(SRC:%=obj/%.o) .PHONY: all clean install-strip info 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) $(info [LD] $(CC) $@) @mkdir -p $(@D) @$(CC) -o $@ $^ $(LDFLAGS) $(LDLIBS) bin/a.hex: bin/a.out $(info [STRIP] $(STRIP) $@) @$(STRIP) -o $@ $< obj/%.o: % $(info [CC] $(CC) $@) @mkdir -p $(@D) @$(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $< -include $(OBJ:%.o=%.d)