.PHONY: symbiyosys ghdl-formal all NOCACHE clean copy

# Support for make environment variable NOCACHE
ifeq (NOCACHE,$(lastword $(MAKECMDGOALS)))
    OPTIONS := --no-cache
    $(info INFO: build without cache)
    $(eval $(lastword$(MAKECMDGOALS)):dummy;@:)
endif

NOCACHE:
	@#


ifndef TAG
    TAG := latest
    $(info INFO: Using predefined tag 'latest')
else
    $(info INFO: Using user given tag '${TAG}')
endif


all: symbiyosys ghdl-formal

copy: ghdl-formal_${TAG}.tar.gz


.SECONDEXPANSION:
symbiyosys ghdl-formal: $$@.Dockerfile
	docker build ${OPTIONS} -t $@:${TAG} -f $@.Dockerfile .


ghdl-formal_${TAG}.tar.gz:
	mkdir -p artefacts
	docker run --rm -dit --name=ghdl-dummy ghdl-formal:${TAG} > /dev/null
	docker cp ghdl-dummy:/opt/. artefacts
	docker rm -f ghdl-dummy > /dev/null
	tar -C artefacts -czf $@ .
	shasum --algorithm 256 --UNIVERSAL $@ > $@.sha256


clean:
	rm -rf artefacts
	rm -f ghdl-formal_*.tar.gz