-
Notifications
You must be signed in to change notification settings - Fork 3
/
Makefile
139 lines (106 loc) · 3.12 KB
/
Makefile
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
PORT ?= /dev/ttyACM0
IDF_PATH ?= $(shell cat .IDF_PATH 2>/dev/null || echo `pwd`/esp-idf)
IDF_TOOLS_PATH ?= $(shell cat .IDF_TOOLS_PATH 2>/dev/null || echo `pwd`/esp-idf-tools)
IDF_BRANCH ?= release/v5.3
#IDF_COMMIT ?= c57b352725ab36f007850d42578d2c7bc858ed47
IDF_EXPORT_QUIET ?= 1
IDF_GITHUB_ASSETS ?= dl.espressif.com/github_assets
MAKEFLAGS += --silent
SHELL := /usr/bin/env bash
export IDF_TOOLS_PATH
export IDF_GITHUB_ASSETS
# General targets
.PHONY: all
all: build flash
.PHONY: install
install: flash
# Preparation
.PHONY: prepare
prepare: submodules sdk
.PHONY: submodules
submodules:
git submodule update --init --recursive
.PHONY: sdk
sdk: main/kbelf_lib.c
rm -rf "$(IDF_PATH)"
rm -rf "$(IDF_TOOLS_PATH)"
git clone --recursive --branch "$(IDF_BRANCH)" https://github.com/espressif/esp-idf.git "$(IDF_PATH)" --depth=1 --shallow-submodules
#cd "$(IDF_PATH)"; git checkout "$(IDF_COMMIT)"
cd "$(IDF_PATH)"; git submodule update --init --recursive
cd "$(IDF_PATH)"; bash install.sh all
source "$(IDF_PATH)/export.sh" && idf.py --preview set-target esp32p4
.PHONY: menuconfig
menuconfig:
source "$(IDF_PATH)/export.sh" && idf.py menuconfig
# Cleaning
.PHONY: clean
clean:
rm -rf "build"
.PHONY: fullclean
fullclean:
source "$(IDF_PATH)/export.sh" && idf.py fullclean
# Building
main/kbelf_lib.c: tools/exported.txt tools/symbol_export.py
mkdir -p build
./tools/symbol_export.py \
--symbols tools/exported.txt \
--kbelf main/kbelf_lib.c \
--kbelf-path libbadge.so
badgesdk: $(shell find -name '*.h' -or -name '*.hpp')
rm -rf badgesdk
cp -r sdk-files badgesdk
mkdir -p badgesdk/include
cp -r components/badge-bsp/pub_include/* badgesdk/include/
cp -r components/badge-bsp/badgelib/include/* badgesdk/include/
cp -r components/pax_gfx/core/include/* badgesdk/include/
cp -r components/pax_gfx/gui/include/* badgesdk/include/
source "$(IDF_PATH)/export.sh" && \
./tools/symbol_export.py \
--symbols tools/exported.txt \
--assembler riscv32-esp-elf-gcc \
--lib badgesdk/ld/libbadge.so \
-F=-mabi=ilp32f -F=-march=rv32imafc
.PHONY: build
build: main/kbelf_lib.c
source "$(IDF_PATH)/export.sh" >/dev/null && idf.py build
.PHONY: image
image:
echo TODO
# Hardware
.PHONY: flash
flash: build
source "$(IDF_PATH)/export.sh" && \
idf.py flash -p $(PORT)
.PHONY: appfs
appfs:
source "$(IDF_PATH)/export.sh" && \
esptool.py \
-b 921600 --port $(PORT) \
write_flash --flash_mode dio --flash_freq 80m --flash_size 16MB \
0x110000 appfs.bin
.PHONY: erase
erase:
source "$(IDF_PATH)/export.sh" && idf.py erase-flash -p $(PORT)
.PHONY: monitor
monitor:
source "$(IDF_PATH)/export.sh" && idf.py monitor -p $(PORT)
.PHONY: openocd
openocd:
source "$(IDF_PATH)/export.sh" && idf.py openocd
.PHONY: gdb
gdb:
source "$(IDF_PATH)/export.sh" && idf.py gdb
# Tools
.PHONY: size
size:
source "$(IDF_PATH)/export.sh" && idf.py size
.PHONY: size-components
size-components:
source "$(IDF_PATH)/export.sh" && idf.py size-components
.PHONY: size-files
size-files:
source "$(IDF_PATH)/export.sh" && idf.py size-files
# Formatting
.PHONY: format
format:
find main/ -iname '*.h' -o -iname '*.c' -o -iname '*.cpp' | xargs clang-format -i