summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorDaniel Thompson <daniel@redfelineninja.org.uk>2020-08-15 19:45:18 (GMT)
committerDaniel Thompson <daniel@redfelineninja.org.uk>2020-08-15 19:45:18 (GMT)
commit28961f1a54f15659f04453216847b48738ed6942 (patch)
treec7fe854432a9263981851c53eea4cb27c8c92811 /Makefile
parentcd97893d2c400d7682fb763f6fd21224608b87ff (diff)
Makefile: Fix the BOARDless targets
Currently boardless targets including softdevice, sudmodules and sim cannot be run unless a dummy value of BOARD is supplied. Fix this by distinguishing between conditional and unconditional expansions of the BOARD variable. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile30
1 files changed, 18 insertions, 12 deletions
diff --git a/Makefile b/Makefile
index c0f29d2..d8cae8e 100644
--- a/Makefile
+++ b/Makefile
@@ -2,14 +2,16 @@ export PYTHONPATH := $(PWD)/tools/nrfutil:$(PWD)/tools/intelhex:$(PYTHONPATH)
all : bootloader reloader micropython
+# If BOARD is undefined then set it up so that expanding it issues an
+# error. That ensures that rules that expand BOARD will be automatically
+# disabled (and give a useful error message) but it creates an additional
+# problem which is that we must never unconditionally expand BOARD.
+# We workaround this by using BOARD_SAFE for every unconditional
+# expansion.
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=)
+BOARD_SAFE = $(BOARD)
endif
+BOARD ?= $(error Please set BOARD=)
clean :
$(RM) -r \
@@ -17,12 +19,12 @@ clean :
reloader/build-$(BOARD) reloader/src/boards/$(BOARD)/bootloader.h \
micropython/mpy-cross/build \
micropython/ports/nrf/build-$(BOARD)-s132 \
- $(WASP_WATCH_PY)
+ wasp/boards/$(BOARD)/watch.py
submodules :
git submodule update --init --recursive
-bootloader: build-$(BOARD)
+bootloader: build-$(BOARD_SAFE)
$(RM) bootloader/_build-$(BOARD)_nrf52832//$(BOARD)_nrf52832_bootloader-*-nosd.hex
$(MAKE) -C bootloader/ BOARD=$(BOARD)_nrf52832 all genhex
python3 tools/hexmerge.py \
@@ -36,14 +38,18 @@ bootloader: build-$(BOARD)
--softdevice bootloader/lib/softdevice/s132_nrf52_6.1.1/s132_nrf52_6.1.1_softdevice.hex \
build-$(BOARD)/bootloader-daflasher.zip
-reloader: bootloader build-$(BOARD)
+reloader: bootloader build-$(BOARD_SAFE)
$(MAKE) -C reloader/ BOARD=$(BOARD)
mv reloader/build-$(BOARD)/reloader.zip build-$(BOARD)/
softdevice:
micropython/ports/nrf/drivers/bluetooth/download_ble_stack.sh
-micropython: $(WASP_WATCH_PY) build-$(BOARD)
+wasp/boards/$(BOARD_SAFE)/watch.py : wasp/boards/$(BOARD_SAFE)/watch.py.in
+ (cd wasp; ../tools/preprocess.py boards/$(BOARD)/watch.py.in > boards/$(BOARD)/watch.py) \
+ || ($(RM) wasp/boards/$(BOARD)/watch.py; false)
+
+micropython: build-$(BOARD_SAFE) wasp/boards/$(BOARD_SAFE)/watch.py
$(MAKE) -C micropython/mpy-cross
$(RM) micropython/ports/nrf/build-$(BOARD)-s132/frozen_content.c
$(MAKE) -C micropython/ports/nrf \
@@ -56,8 +62,8 @@ micropython: $(WASP_WATCH_PY) build-$(BOARD)
--application micropython/ports/nrf/build-$(BOARD)-s132/firmware.hex \
build-$(BOARD)/micropython.zip
-build-$(BOARD):
- mkdir -p $@
+build-$(BOARD_SAFE):
+ mkdir -p build-$(BOARD)
dfu:
python3 -m nordicsemi dfu serial --package micropython.zip --port /dev/ttyACM0