12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- XILINX_TARBALL := Xilinx_ISE_DS_Lin_14.7_1015_1.tar
- XILINX_LICENSE := Xilinx.lic
- BOOTSTRAP_IMAGE := cryptech-builder:bootstrap
- BOOTSTRAP_CONTAINER := cryptech-builder-bootstrap
- CRYPTECH_BASE_FILE := cryptech-builder-base-image.xz
- XILINX_PKGDIR := fs/$(basename ${XILINX_TARBALL})
- ifneq (./,$(sort $(dir ${XILINX_TARBALL} ${XILINX_LICENSE})))
- $(error XILINX_TARBALL and XILINX_LICENSE must be in this directory for bind mount)
- endif
- all: ${CRYPTECH_BASE_FILE}
- docker import ${CRYPTECH_BASE_FILE} cryptech-builder:base
- docker build -t cryptech-builder .
- ${CRYPTECH_BASE_FILE}: ${XILINX_TARBALL} ${XILINX_LICENSE} Builder Ratinox
- -docker container rm -f ${BOOTSTRAP_CONTAINER}
- -docker image rm -f ${BOOTSTRAP_IMAGE}
- rm -rf fs
- mkdir fs
- sudo /usr/sbin/debootstrap --foreign jessie fs
- sudo tar -C fs -c . | docker import - ${BOOTSTRAP_IMAGE}
- sudo rm -rf fs
- mkdir fs
- tar -C fs -xf ${XILINX_TARBALL}
- test -d ${XILINX_PKGDIR}
- docker run -it --name ${BOOTSTRAP_CONTAINER} \
- --mount type=bind,source=$(abspath .),target=/cryptech-builder \
- --env 'XILINX_PKGDIR=/cryptech-builder/${XILINX_PKGDIR}' \
- --env 'XILINX_LICENSE=${XILINX_LICENSE}' \
- ${BOOTSTRAP_IMAGE} \
- /cryptech-builder/Builder
- rm -rf fs
- -mogrify -verbose -format png *.xwd && rm *.xwd
- docker export ${BOOTSTRAP_CONTAINER} | xz -v >${CRYPTECH_BASE_FILE}.tmp
- docker container rm -f ${BOOTSTRAP_CONTAINER}
- docker image rm -f ${BOOTSTRAP_IMAGE}
- mv ${CRYPTECH_BASE_FILE}.tmp ${CRYPTECH_BASE_FILE}
- clean:
- git clean -dfx -e ${XILINX_TARBALL} -e ${XILINX_LICENSE}
- .PHONY: all clean
|