Files
avr-test/Makefile

45 lines
1.1 KiB
Makefile

SHELL = /bin/sh
.SUFFIXES:
CC = avr-gcc
STRIP = avr-strip
CPPFLAGS = -DNDEBUG
CFLAGS = -Os
CPPFLAGS += -Iinclude
CFLAGS += -mmcu=avr128da28 -std=gnu99 -MMD -MP
LDFLAGS += -mmcu=avr128da28 -Wall -Wextra -Wpedantic -Wno-pointer-arith
LDFLAGS += -nostdlib -nostartfiles -flto
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)