NAME=edfa SHELL=cmd ARCH=arm-none-eabi CC=$(ARCH)-gcc OBJCOPY=$(ARCH)-objcopy SIZE=$(ARCH)-size ELF=$(NAME).elf BIN=$(NAME).bin TXT=$(NAME).txt MAP=$(NAME).map FNTIMG=$(wildcard font/*.pcx) BMPIMG=$(wildcard bmp/*.bmp) FNTSRC=$(FNTIMG:.pcx=.c) BMPSRC=$(BMPIMG:.bmp=.c) RESHDR=$(addprefix src-, $(addsuffix .c, $(wildcard res/*))) SRC=$(wildcard src/*.c lwip/core/*.c lwip/core/ipv4/*.c lwip/netif/*.c lwip/apps/sntp/*.c bmp/*.c) $(FNTSRC) $(BMPSRC) OBJ=$(SRC:.c=.o) DEP=$(SRC:.c=.d) INC=-Iinc -Ilwip/include CFLAGS=-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -gdwarf-2 -Wall -fno-strict-aliasing -std=gnu11 CFLAGS+=-DLC_INCLUDE=\"lc-addrlabels.h\" -DARM_MATH_CM4=1 -D__FPU_PRESENT=1 LDFLAGS=-T stm32f407.ld -Wl,-Map=$(MAP),--gc-sections -fwhole-program -static -lc -lm -lnosys ifeq ($(DEBUG), 1) CFLAGS += -O0 else CFLAGS += -DNDEBUG -Os CFLAGS += -flto -fno-fat-lto-objects endif .PHONY: all clean rev .SECONDARY: $(FNTSRC) $(BMPSRC) $(RESHDR) all: $(TXT) rev: @echo REV inc/svnvars.h @SubWCRev . inc/svnvars.tmpl inc/svnvars.h > nul src-res/%.c: res/% @echo RES $< @gawk -f util/bin2c.awk -v BINMODE=1 -v varname=res_$(basename $*) < $< > $@ %.c: %.pcx @echo FONT $< @"util/pcx2font3bpp" $< $(basename $(notdir $<)) > $@ %.c: %.bmp @echo BMP $< @gawk -f util/bmp2c.awk -v BINMODE=1 -v varname=bmp_$(basename $(notdir $*)) < $< > $@ %.o: %.c @echo CC $< @$(CC) $< -c -MMD $(CFLAGS) $(INC) -o $@ $(OBJ): | rev src/contents.o: $(RESHDR) $(ELF): $(OBJ) @echo LINK $@ @$(CC) $^ $(CFLAGS) $(LDFLAGS) -o $@ @echo SIZE $@ @$(SIZE) $@ $(BIN): $(ELF) @echo BIN $@ @$(OBJCOPY) -O binary -j .text -j .data $^ $@ # if necessary, add padding to make the size a multiple of 4 bytes @util/srec_cat $@ -bin -fill 0xFF -over $@ -bin -range-pad 4 -o $@ -bin # insert length and append MD5 @util/srec_cat $@ -bin -ex 0x1C 0x20 -len-l-e 0x1C 4 1 -md5 -max-addr $@ -bin -o $@ -bin $(TXT): $(BIN) @echo TXT $@ @gawk -f util/base64enc.awk -v BINMODE=1 < $< > $@ clean: @echo CLEAN @del /q $(subst /,\,$(ELF) $(BIN) $(TXT) $(MAP) $(OBJ) $(FNTSRC) $(BMPSRC) $(RESHDR) $(DEP) inc/svnvars.h) 2>nul -include $(DEP)