| .PHONY: symbiyosys ghdl-formal riscv-gcc gatemate 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 riscv-gcc gatemate | |
| 
 | |
| copy: copy-ghdl copy-riscv | |
| copy-ghdl: ghdl-formal_${TAG}.tar.gz | |
| copy-riscv: riscv-gcc_${TAG}.tar.gz | |
| 
 | |
| 
 | |
| packages/gatemate-toolchain.tar.gz: | |
| 	curl https://colognechip.com/downloads/cc-toolchain-linux.tar.gz --output $@ | |
| 
 | |
| gatemate: packages/gatemate-toolchain.tar.gz | |
| 
 | |
| .SECONDEXPANSION: | |
| symbiyosys ghdl-formal riscv-gcc gatemate: $$@.Dockerfile | |
| 	docker build ${OPTIONS} -t $@:${TAG} -f $@.Dockerfile . | |
| 
 | |
| 
 | |
| %_${TAG}.tar.gz: | |
| 	mkdir -p artefacts | |
| 	docker run --rm -dit --name=$*-dummy $*:${TAG} > /dev/null | |
| 	docker cp $*-dummy:/opt/. artefacts | |
| 	docker rm -f $*-dummy > /dev/null | |
| 	tar -C artefacts -czf $@ . | |
| 	shasum --algorithm 256 --UNIVERSAL $@ > $@.sha256 | |
| 
 | |
| 
 | |
| clean: | |
| 	rm -rf artefacts | |
| 	rm -f *.tar.* | |
| 	rm -f packages/gatemate-toolchain.tar.gz
 |