.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
|