TOP_DIR ?= $(realpath $(CURDIR)/../../..)
ZEPHYR_DIR ?= $(realpath $(CURDIR)/..)/zephyrproject
DOCKER ?= docker run --rm \
          -v $(TOP_DIR):$(TOP_DIR) \
          -w $(realpath $(CURDIR)) \
          -e ZEPHYR_BASE=$(ZEPHYR_DIR)/zephyr \
          $(DOCKER_ARGS) zephyrprojectrtos/ci
#BUILD_ARGS ?= -b qemu_x86 -DOVERLAY_CONFIG=overlay-e1000.conf
BUILD_ARGS ?= -b nucleo_f429zi
.PHONY: build

example:
	true

zephyr:
	test -d $(ZEPHYR_DIR) || ( mkdir -p $(ZEPHYR_DIR) ; $(DOCKER) west init $(ZEPHYR_DIR))
	$(DOCKER) sh -c 'cd $(ZEPHYR_DIR) && west update'

build:
	cp $(TOP_DIR)/mongoose.[c,h] src/
	$(DOCKER) west build $(BUILD_ARGS) -p auto $(realpath $(CURDIR))

run: DOCKER_ARGS ?= --cap-add=NET_ADMIN --device /dev/net/tun --net=host -it
run:
	$(DOCKER) west build -t run

clean:
	-$(DOCKER) west build -t clean

pristine:
	-$(DOCKER) west build -t pristine

purge: clean pristine
	rm -rf $(TOP_DIR)/.west $(ZEPHYR_DIR) build

flash debug: DOCKER_ARGS ?= --privileged -v /dev/bus/usb/:/dev/bus/usb -it
flash:
	$(DOCKER) west flash --build-dir $(realpath $(CURDIR))/build

debug:
	$(DOCKER) west debug --build-dir $(realpath $(CURDIR))/build
