1
0
Fork 0
wasp-os/Makefile
Daniel Thompson 58fb5d630b Makefile: Clean up empty redirected file on failure
If the preprocessor fails for any reason then an empty or partially
processed watch.py file is created which will satisfy the dependency
checks in any later invocation of make which can silently break the
build. Cleaning up on failure prevents this from happening.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-08-02 12:10:47 +01:00

85 lines
2.6 KiB
Makefile

export PYTHONPATH := $(PWD)/tools/nrfutil:$(PWD)/tools/intelhex:$(PYTHONPATH)
all : bootloader reloader micropython
ifdef BOARD
WASP_WATCH_PY = wasp/boards/$(BOARD)/watch.py
$(WASP_WATCH_PY) : $(WASP_WATCH_PY).in
(cd wasp; ../tools/preprocess.py ../$(WASP_WATCH_PY).in > ../$(WASP_WATCH_PY)) \
|| ($(RM) $(WASP_WATCH_PY); false)
else
BOARD ?= $(error Please set BOARD=)
endif
clean :
$(RM) -r \
bootloader/_build-$(BOARD)_nrf52832 \
reloader/build-$(BOARD) reloader/src/boards/$(BOARD)/bootloader.h \
micropython/mpy-cross/build \
micropython/ports/nrf/build-$(BOARD)-s132 \
$(WASP_WATCH_PY)
submodules :
git submodule update --init --recursive
bootloader:
$(RM) bootloader/_build-$(BOARD)_nrf52832//$(BOARD)_nrf52832_bootloader-*-nosd.hex
$(MAKE) -C bootloader/ BOARD=$(BOARD)_nrf52832 all genhex
python3 tools/hexmerge.py \
bootloader/_build-$(BOARD)_nrf52832/$(BOARD)_nrf52832_bootloader-*-nosd.hex \
bootloader/lib/softdevice/s132_nrf52_6.1.1/s132_nrf52_6.1.1_softdevice.hex \
-o bootloader.hex
python3 tools/hex2c.py bootloader.hex > \
reloader/src/boards/$(BOARD)/bootloader.h
python3 -m nordicsemi dfu genpkg \
--bootloader bootloader/_build-$(BOARD)_nrf52832//$(BOARD)_nrf52832_bootloader-*-nosd.hex \
--softdevice bootloader/lib/softdevice/s132_nrf52_6.1.1/s132_nrf52_6.1.1_softdevice.hex \
bootloader-daflasher.zip
reloader: bootloader
$(MAKE) -C reloader/ BOARD=$(BOARD)
mv reloader/build-$(BOARD)/reloader.zip .
softdevice:
micropython/ports/nrf/drivers/bluetooth/download_ble_stack.sh
micropython: $(WASP_WATCH_PY)
$(MAKE) -C micropython/mpy-cross
$(RM) micropython/ports/nrf/build-$(BOARD)-s132/frozen_content.c
$(MAKE) -C micropython/ports/nrf \
BOARD=$(BOARD) SD=s132 \
MICROPY_VFS_LFS2=1 \
FROZEN_MANIFEST=$(PWD)/wasp/boards/$(BOARD)/manifest.py \
USER_C_MODULES=$(PWD)/wasp/modules
python3 -m nordicsemi dfu genpkg \
--dev-type 0x0052 \
--application micropython/ports/nrf/build-$(BOARD)-s132/firmware.hex \
micropython.zip
dfu:
python3 -m nordicsemi dfu serial --package micropython.zip --port /dev/ttyACM0
flash:
pyocd erase -t nrf52 --mass
pyocd flash -t nrf52 bootloader.hex
debug:
arm-none-eabi-gdb \
bootloader/_build-$(BOARD)_nrf52832/$(BOARD)_nrf52832_bootloader-*-nosd.out \
-ex "target extended-remote /dev/ttyACM0" \
-ex "monitor swdp_scan" \
-ex "attach 1" \
-ex "load"
docs:
$(RM) -rf docs/build/html/*
$(MAKE) -C docs html
touch docs/build/html/.nojekyll
sim:
PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=.:wasp/boards/simulator:wasp \
python3 -i wasp/boards/simulator/main.py
.PHONY: bootloader reloader docs micropython