blob: 5c5cf84afaf06aa86b4f3e1b2b513eed285ca7df (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
DEBIAN_RELEASE := stretch
XILINX_TARBALL := Xilinx_ISE_DS_Lin_14.7_1015_1.tar
XILINX_LICENSE := Xilinx.lic
XILINX_PKGDIR := fs/$(basename ${XILINX_TARBALL})
BOOT_CONTAINER := cryptech-builder-boot
BOOT_IMAGE := cryptech-builder:boot
BASE_IMAGE := cryptech-builder:base
BASE_IMAGE_EXISTS := $(shell docker image ls -q ${BASE_IMAGE})
BOOT_IMAGE_EXISTS := $(shell docker image ls -q ${BOOT_IMAGE})
BOOT_CONTAINER_EXISTS := $(shell docker container ls -a --format='{{.Names}}' --filter='name=^/${BOOT_CONTAINER}$$')
ifneq (./,$(sort $(dir ${XILINX_TARBALL} ${XILINX_LICENSE})))
$(error XILINX_TARBALL and XILINX_LICENSE must be in this directory for bind mount)
endif
all:
ifeq (,${BASE_IMAGE_EXISTS})
docker container rm -f ${BOOT_CONTAINER} || true
ifeq (,${BOOT_IMAGE_EXISTS})
rm -rf fs
mkdir fs
sudo /usr/sbin/debootstrap --foreign ${DEBIAN_RELEASE} fs
sudo tar -C fs -c . | docker import - ${BOOT_IMAGE}
endif
sudo rm -rf fs
mkdir fs
tar -C fs -xf ${XILINX_TARBALL}
test -d ${XILINX_PKGDIR}
docker run -it --name ${BOOT_CONTAINER} \
--mount type=bind,source=$(abspath .),target=/cryptech-builder \
--env 'XILINX_PKGDIR=/cryptech-builder/${XILINX_PKGDIR}' \
--env 'XILINX_LICENSE=${XILINX_LICENSE}' \
${BOOT_IMAGE} \
/cryptech-builder/Builder
rm -rf fs
mogrify -verbose -format png *.xwd && rm -f *.xwd || true
docker commit ${BOOT_CONTAINER} ${BASE_IMAGE}
docker container rm -f ${BOOT_CONTAINER}
endif
docker build -t cryptech-builder .
clean:
git clean -dfx -e ${XILINX_TARBALL} -e ${XILINX_LICENSE}
docker container rm -f ${BOOT_CONTAINER} || true
sandblast: clean
docker image rm -f ${BOOT_IMAGE} || true
docker image rm -f ${BASE_IMAGE} || true
.PHONY: all clean sandblast
|