#--*- Makefile -*--

# Implement standard 'make' targets to build projects using 'yotta'.

VIRTUALENV ?= ./virt

YOTTA ?= ${VIRTUALENV}/bin/yotta

TARGET_ARCHITECTURE ?= bbc-microbit-classic-gcc

PROJECT_NAME ?= $(notdir $(shell pwd | awk '{print tolower($$0)}'))

MAIN_TARGET ?= build/${TARGET_ARCHITECTURE}/source/${PROJECT_NAME}-combined.hex

SOURCES ?= $(shell find source/ -name '*.c*' -o -name '*.h*' | sort)

.PHONY: all init yotta clean distclean mostlyclean cleanAll

all: ${MAIN_TARGET}

.PHONY: display

VAR = MAIN_TARGET

display:
	@echo ${VAR}=${${VAR}}


${MAIN_TARGET}: ${SOURCES}
	${YOTTA} build

${YOTTA}:
	test -e ${VIRTUALENV} || \
		virtualenv --python=python3 ${VIRTUALENV}
	${VIRTUALENV}/bin/pip install yotta

init: ${YOTTA}
	( echo '\n\nyes'; yes '' ) | ${YOTTA} init; echo ''
	${YOTTA} target ${TARGET_ARCHITECTURE}
	${YOTTA} install lancaster-university/microbit

yotta: ${YOTTA}

clean:
	-${YOTTA} clean

mostlyclean: clean

distclean cleanAll: mostlyclean
	rm -rf ${VIRTUALENV}
