aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2019-02-17 04:51:03 +0000
committerRob Austein <sra@hactrn.net>2019-02-17 04:51:03 +0000
commit0820895f73dfc41f37bb63365290815c861013cf (patch)
tree1b3a2f87f328aadddd20bd6564891476a1ccb73b /Makefile
parent462f33573500393d29111b78d1aa621f9beb8493 (diff)
Parameterize and clean up, now that basic hack seems to work.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile61
1 files changed, 36 insertions, 25 deletions
diff --git a/Makefile b/Makefile
index 8ebb87b..2573890 100644
--- a/Makefile
+++ b/Makefile
@@ -1,32 +1,43 @@
-all: stage0.stamp stage1.stamp stage2.stamp stage3.stamp
+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})
-stage0.stamp:
- mkdir -p fs/cryptech-builder
+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 -xf Xilinx_ISE_DS_Lin_14.7_1015_1.tar
- sudo tar -C fs -c . | docker import - cryptech-builder:stage0
+ sudo tar -C fs -c . | docker import - ${BOOTSTRAP_IMAGE}
sudo rm -rf fs
- touch $@
-
-stage1.stamp: stage0.stamp Builder Ratinox
- docker run -it --name cryptech-builder-stage1 \
+ 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 \
- cryptech-builder:stage0 \
+ --env 'XILINX_PKGDIR=/cryptech-builder/${XILINX_PKGDIR}' \
+ --env 'XILINX_LICENSE=${XILINX_LICENSE}' \
+ ${BOOTSTRAP_IMAGE} \
/cryptech-builder/Builder
- docker export cryptech-builder-stage1 | \
- xz -v >cryptech-builder-stage1.xz
- docker container rm cryptech-builder-stage1
- touch $@
-
-stage2.stamp: stage1.stamp
- docker rmi cryptech-builder:stage0
- docker import cryptech-builder-stage1.xz cryptech-builder:stage2
-# rm cryptech-builder-stage1.xz
- touch $@
-
-stage3.stamp: stage2.stamp Dockerfile
- docker build -t cryptech-builder .
- touch $@
+ 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:
- rm -f *.stamp Xvfb_screen* cryptech-builder-stage1.xz
+ git clean -dfx -e ${XILINX_TARBALL} -e ${XILINX_LICENSE}
+
+.PHONY: all clean