-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
83 lines (58 loc) · 2.41 KB
/
Makefile
File metadata and controls
83 lines (58 loc) · 2.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
SDK_BASE ?= ../esp-open-sdk/sdk
SDK_LIBDIR = lib
SDK_INCDIR = include
RBOOTBASE ?= $(PWD)/raburton-esp8266
ESPTOOL2 ?= $(RBOOTBASE)/esptool2/esptool2
RBOOT ?= $(RBOOTBASE)/rboot/firmware/rboot.bin
RBOOT_INCDIR ?= $(RBOOTBASE)/rboot
FW_SECTS = .text .data .rodata
FW_USER_ARGS = -quiet -bin -boot2
XTENSA_BINDIR ?= $(addprefix $(PWD)/,"../esp-open-sdk/xtensa-lx106-elf/bin")
ESPTOOL ?= ./esptool.py
ESPPORT ?= /dev/ttyUSB1
ESPBAUD ?= 115200
CC := $(addprefix $(XTENSA_BINDIR)/,xtensa-lx106-elf-gcc)
LD := $(addprefix $(XTENSA_BINDIR)/,xtensa-lx106-elf-gcc)
BUILD_DIR = build
FIRMW_DIR = firmware
SRC_DIR = user
SDK_LIBDIR := $(addprefix $(SDK_BASE)/,$(SDK_LIBDIR))
SDK_INCDIR := $(addprefix -I$(SDK_BASE)/,$(SDK_INCDIR))
LIBS = c gcc hal phy net80211 lwip wpa main pp
CFLAGS = -Os -g -O2 -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -D__ets__ -DICACHE_FLASH
LDFLAGS = -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static
LIBS := $(addprefix -l,$(LIBS))
.SECONDARY:
.PHONY: all clean
C_FILES = $(wildcard $(SRC_DIR)/*.c)
O_FILES = $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(C_FILES))
all: $(BUILD_DIR) $(FIRMW_DIR) $(FIRMW_DIR)/rom0.bin $(FIRMW_DIR)/rom1.bin rboot esptool2
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
@echo "CC $<"
@$(CC) -I$(SRC_DIR) $(SDK_INCDIR) -I$(RBOOT_INCDIR) $(CFLAGS) -o $@ -c $<
$(BUILD_DIR)/%.elf: $(O_FILES)
@echo "LD $(notdir $@)"
@$(LD) -L$(SDK_LIBDIR) -T$(notdir $(basename $@)).ld $(LDFLAGS) -Wl,--start-group $(LIBS) $^ -Wl,--end-group -o $@
$(FIRMW_DIR)/%.bin: $(BUILD_DIR)/%.elf
@echo "FW $(notdir $@)"
@$(ESPTOOL2) $(FW_USER_ARGS) $^ $@ $(FW_SECTS)
$(BUILD_DIR):
@mkdir -p $@
$(FIRMW_DIR):
@mkdir -p $@
clean:
@echo "RM $(BUILD_DIR) $(FIRMW_DIR)"
@rm -rf $(BUILD_DIR)
@rm -rf $(FIRMW_DIR)
$(ESPTOOL2):
make -C $(RBOOTBASE)/esptool2
$(RBOOT): $(ESPTOOL2)
make -C $(RBOOTBASE)/rboot ESPTOOL2=$(ESPTOOL2) XTENSA_BINDIR=$(XTENSA_BINDIR)
rboot: $(RBOOT)
esptool2: $(ESPTOOL2)
flash: $(RBOOT) $(FIRMW_DIR)/rom0.bin $(FIRMW_DIR)/rom1.bin
$(ESPTOOL) --port $(ESPPORT) --baud $(ESPBAUD) write_flash 0x00000 $(RBOOT) 0x02000 $(FIRMW_DIR)/rom0.bin
cloud: $(FIRMW_DIR)/rom0.bin $(FIRMW_DIR)/rom1.bin
scp $(FIRMW_DIR)/rom0.bin $(FIRMW_DIR)/rom1.bin endboss.org:www/esp8266/
localcloud: $(FIRMW_DIR)/rom0.bin $(FIRMW_DIR)/rom1.bin
cp $(FIRMW_DIR)/rom0.bin $(FIRMW_DIR)/rom1.bin /var/www/heeen.de/htdocs/esp8266/