diff --git a/contrib/Makefile b/contrib/Makefile index 786a44c..a9cb88c 100644 --- a/contrib/Makefile +++ b/contrib/Makefile @@ -1,26 +1,45 @@ -all: - @echo "Build targets: " - @echo "build Build an image for building tools with Docker" - @echo "run Run a shell using the above image with Docker" - @echo "podman-pull Pull in the podman tkey builder" - @echo "podman-build Build an image with podman" - @echo "podman-run Run a shell using above image with podman" - @echo "podman-run-make Run the above image with podman and build the FPGA bitstream" -build: - docker build -t tkey-builder . +# image produced by build-image targets +BUILDIMAGE=tkey-builder-local + +# default image used when running a container +IMAGE=ghcr.io/tillitis/tkey-builder:1 + +all: + @echo "Targets:" + @echo "run Run a shell using image '$(IMAGE)' (Podman)" + @echo "run-make Build the FPGA bitstream using image '$(IMAGE)' (Podman)" + @echo "run-make-no-clean Like run-make but without cleaning first, useful for iterative firmware dev" + @echo "run-make-clean_fw Like run-make but cleans only firmware" + @echo "pull Pull down the image '$(IMAGE)' (Podman)" + @echo "build-image Build a toolchain image named '$(BUILDIMAGE)' (Podman)" + @echo " A newly built image can be used like: make IMAGE=$(BUILDIMAGE) run" + @echo "docker-run Run a shell using image '$(IMAGE)' (Docker)" + @echo "docker-build-image Build a toolchain image named '$(BUILDIMAGE)' (Docker)" run: - docker run --rm --mount type=bind,source="`pwd`/../",target=/build -w /build -it tkey-builder /usr/bin/bash + ./podman-run $(IMAGE) / /usr/bin/bash -podman-pull: - podman pull ghcr.io/tillitis/tkey-builder:1 +docker-run: + docker run --rm --mount type=bind,source="`pwd`/../",target=/build -w /build -it $(IMAGE) /usr/bin/bash -podman-build: - podman build -t tkey-builder . +run-make: + ./podman-run-make $(IMAGE) clean application_fpga.bin -podman-run: - podman run --rm --mount type=bind,source="`pwd`/../",target=/build -w /build -it tkey-builder /usr/bin/bash +run-make-testfw: + ./podman-run-make $(IMAGE) clean application_fpga_testfw.bin -podman-run-make: - podman run --rm --mount type=bind,source="`pwd`/../hw/application_fpga",target=/build -w /build -it tkey-builder make +run-make-no-clean: + ./podman-run-make $(IMAGE) application_fpga.bin + +run-make-clean_fw: + ./podman-run-make $(IMAGE) clean_fw application_fpga.bin + +pull: + podman pull $(IMAGE) + +build-image: + podman build -t $(BUILDIMAGE) . + +docker-build-image: + docker build -t $(BUILDIMAGE) .