You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

51 lines
1.2 KiB

.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