]> the.earth.li Git - esp8266-clock.git/blob - Makefile
Update Makefile to link 2 separate ROMs
[esp8266-clock.git] / Makefile
1 SDKDIR ?= /opt/esp8266-sdk
2
3 AR = $(SDKDIR)/bin/xtensa-lx106-elf-ar
4 CC = $(SDKDIR)/bin/xtensa-lx106-elf-gcc
5 LD = $(SDKDIR)/bin/xtensa-lx106-elf-gcc
6 OBJCOPY = $(SDKDIR)/bin/xtensa-lx106-elf-objcopy
7 OBJDUMP = $(SDKDIR)/bin/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 LDFLAGS = -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static
13
14 APP = clock
15 OBJS = user_main.o max7219.o spi.o clock.o
16
17 all: rom0.bin rom1.bin
18
19 %.bin: %.elf
20         PATH=$$PATH:$(SDKDIR)/bin esptool.py elf2image $^ --version 2 -o $@
21
22 %.elf: $(APP)_app.a
23         $(LD) -T$(basename $@).ld $(LDFLAGS) -Wl,--start-group $(LIBS) $^ -Wl,--end-group -lgcc -o $@
24         $(OBJDUMP) -h -j .data -j .rodata -j .bss -j .text -j .irom0.text $@
25
26 $(APP)_app.a: project_config.h $(OBJS)
27         $(AR) cru $@ $^
28
29 flash: rom0.bin rom1.bin
30         $(SDKDIR)/bin/esptool.py write_flash 0x2000 rom0.bin 0x42000 rom1.bin
31
32 project_config.h:
33         echo '#error "Edit this file to match your configuration."' > $@
34         echo '#define CFG_WIFI_SSID "My Wifi"' >> $@
35         echo '#define CFG_WIFI_PASSWORD "password"' >> $@
36
37 clean:
38         rm -f $(OBJS) $(APP)_app.a $(APP).elf rom0.bin rom1.bin
39
40 .PHONY: all clean