]> the.earth.li Git - esp8266-clock.git/blob - Makefile
Update Makefile to add additional configuration defines
[esp8266-clock.git] / Makefile
1 SDKDIR ?= /opt/esp8266-sdk
2
3 AR = xtensa-lx106-elf-ar
4 CC = xtensa-lx106-elf-gcc
5 LD = xtensa-lx106-elf-gcc
6 OBJCOPY = xtensa-lx106-elf-objcopy
7 OBJDUMP = xtensa-lx106-elf-objdump
8
9 LIBS = -lc -lhal -lphy -lpp -lnet80211 -llwip -lwpa -lmain
10
11 CFLAGS = -Wall -Os -fno-inline-functions -mlongcalls -DICACHE_FLASH -I. \
12          -I$(SDKDIR)/xtensa-lx106-elf/include
13 LDFLAGS = -nostdlib -Wl,--no-check-sections -Wl,--gc-sections -Wl,-static \
14           -u call_user_start \
15           -L$(SDKDIR)/xtensa-lx106-elf/lib
16
17 APP = clock
18 OBJS = user_main.o clock.o max7219.o ota.o spi.o
19
20 all: rom0.bin rom1.bin
21
22 %.bin: %.elf
23         esptool elf2image $^ --version 2 -o $@
24
25 %.elf: $(APP)_app.a
26         $(LD) -T$(basename $@).ld $(LDFLAGS) -Wl,--start-group $(LIBS) $^ -Wl,--end-group -lgcc -o $@
27         $(OBJDUMP) -h -j .data -j .rodata -j .bss -j .text -j .irom0.text $@
28
29 $(APP)_app.a: project_config.h $(OBJS)
30         $(AR) cru $@ $^
31
32 flash: rom0.bin rom1.bin
33         $(SDKDIR)/bin/esptool.py write_flash 0x2000 rom0.bin 0x42000 rom1.bin
34
35 project_config.h:
36         echo '#error "Edit this file to match your configuration."' > $@
37         echo '#define PROJECT "clock"' >> $@
38         echo '#define VER_MAJ 0' >> $@
39         echo '#define VER_MIN 1' >> $@
40         echo '#define CFG_WIFI_SSID "My Wifi"' >> $@
41         echo '#define CFG_WIFI_PASSWORD "password"' >> $@
42         echo '#define UPGRADE_HOST "upgrade-host.local"' >> $@
43         echo '#define UPGRADE_PATH "/esp8266/" PROJECT "/"' >> $@
44
45 clean:
46         rm -f $(OBJS) $(APP)_app.a rom0.elf rom1.elf rom0.bin rom1.bin
47
48 .PHONY: all clean