summaryrefslogtreecommitdiff
path: root/Makefile
blob: dd83a4bc419ed440946f1ae7fb74f53778ac845d (plain)
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
ESPTOOL = esptool.py
# TOOL can be 'mpfshell' or 'ampy'
TOOL = mpfshell
FIRMWARE = esp32-idf3-20191220-v1.12.bin
PORT = /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0
SHELL = /bin/sh
MPY := $(patsubst %.py,%.mpy,$(wildcard *.py))


.PHONY: erase flash all install clean repl help sanitize

all: $(MPY)

%.mpy: %.py  ## Compile all python files
	mpy-cross -march=xtensa -o $@ $<

install: $(MPY)  ## Copy all compiled python files to the ESP32
	if [ "${TOOL}" = "mpfshell" ]; then ${TOOL} -n -c "open ${PORT:/dev/%=%}; mput ${MPY}"; fi
	if [ "${TOOL}" = "ampy" ]; then ${TOOL} -p ${PORT} put *.mpy; fi

sanitize: main.py.example

%.py.example: %.py
	sed -n '/#### CONFIG ####/,/#### END ####/{/^#/p;d};p' $< > $@

clean:  ## Delete all compiled python files
	rm -f *.mpy

erase:  ## Erase the flash of the ESP32
	${ESPTOOL} --chip esp32 --port ${PORT} erase_flash

flash:  ## Download micropython firmware and flash to ESP32
	curl -sSLO https://micropython.org/resources/firmware/${FIRMWARE}
	${ESPTOOL} --chip esp32 --port ${PORT} --baud 460800 write_flash -z 0x1000 ${FIRMWARE}

repl: ## Start repl shell
	if [ "${TOOL}" = "mpfshell" ]; then ${TOOL} -n -o ${BOARD} -c repl; fi
	if [ "${TOOL}" != "mpfshell" ]; then screen /dev/${BOARD} ; fi

help:  ## Show this help
	grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'