Makefile 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. XILINX_TARBALL := Xilinx_ISE_DS_Lin_14.7_1015_1.tar
  2. XILINX_LICENSE := Xilinx.lic
  3. BOOTSTRAP_IMAGE := cryptech-builder:bootstrap
  4. BOOTSTRAP_CONTAINER := cryptech-builder-bootstrap
  5. CRYPTECH_BASE_FILE := cryptech-builder-base-image.xz
  6. XILINX_PKGDIR := fs/$(basename ${XILINX_TARBALL})
  7. ifneq (./,$(sort $(dir ${XILINX_TARBALL} ${XILINX_LICENSE})))
  8. $(error XILINX_TARBALL and XILINX_LICENSE must be in this directory for bind mount)
  9. endif
  10. all: ${CRYPTECH_BASE_FILE}
  11. docker import ${CRYPTECH_BASE_FILE} cryptech-builder:base
  12. docker build -t cryptech-builder .
  13. ${CRYPTECH_BASE_FILE}: ${XILINX_TARBALL} ${XILINX_LICENSE} Builder Ratinox
  14. -docker container rm -f ${BOOTSTRAP_CONTAINER}
  15. -docker image rm -f ${BOOTSTRAP_IMAGE}
  16. rm -rf fs
  17. mkdir fs
  18. sudo /usr/sbin/debootstrap --foreign jessie fs
  19. sudo tar -C fs -c . | docker import - ${BOOTSTRAP_IMAGE}
  20. sudo rm -rf fs
  21. mkdir fs
  22. tar -C fs -xf ${XILINX_TARBALL}
  23. test -d ${XILINX_PKGDIR}
  24. docker run -it --name ${BOOTSTRAP_CONTAINER} \
  25. --mount type=bind,source=$(abspath .),target=/cryptech-builder \
  26. --env 'XILINX_PKGDIR=/cryptech-builder/${XILINX_PKGDIR}' \
  27. --env 'XILINX_LICENSE=${XILINX_LICENSE}' \
  28. ${BOOTSTRAP_IMAGE} \
  29. /cryptech-builder/Builder
  30. rm -rf fs
  31. -mogrify -verbose -format png *.xwd && rm *.xwd
  32. docker export ${BOOTSTRAP_CONTAINER} | xz -v >${CRYPTECH_BASE_FILE}.tmp
  33. docker container rm -f ${BOOTSTRAP_CONTAINER}
  34. docker image rm -f ${BOOTSTRAP_IMAGE}
  35. mv ${CRYPTECH_BASE_FILE}.tmp ${CRYPTECH_BASE_FILE}
  36. clean:
  37. git clean -dfx -e ${XILINX_TARBALL} -e ${XILINX_LICENSE}
  38. .PHONY: all clean