ifndef MAKE
MAKE := make
endif

ifndef CONFIG
CONFIG := release
endif

ifndef TOOLCHAIN
TOOLCHAIN := CMakeToolchains/arm-none-eabi-m4.cmake
endif

ifndef GENERATOR
GENERATOR := "MinGW Makefiles"
endif

$(info Using build configuration: $(CONFIG))

.DEFAULT_GOAL := all

CMK_CMD = cmake -DCMAKE_MAKE_PROGRAM="$(MAKE)" -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN) -DCMAKE_BUILD_TYPE=$(CONFIG) -G $(GENERATOR) -B _build-$(CONFIG)

.PHONY: cmk
cmk:
	$(CMK_CMD)

_build-$(CONFIG):
	$(CMK_CMD)

.PHONY: cmk-clean
cmk-clean:
	cmake -E remove_directory _build-$(CONFIG)

all: | _build-$(CONFIG)
	cmake --build _build-$(CONFIG) -- -j4

Makefile: ; @:

%: | _build-$(CONFIG)
	"$(MAKE)" -C _build-$(CONFIG) $@

# .PHONY: install
# install:
	# openocd -f board/st_nucleo_f4.cfg "-c program _build-$(CONFIG)/shasta-platform.elf verify reset exit"
