aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: e344666fac05fe6f9fbc96ca9a2502098ee41f4f (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
XILINX_TARBALL		:= Xilinx_ISE_DS_Lin_14.7_1015_1.tar
XILINX_LICENSE		:= Xilinx.lic
XILINX_PKGDIR		:= fs/$(basename ${XILINX_TARBALL})

BOOTSTRAP_IMAGE		:= cryptech-builder:bootstrap
BOOTSTRAP_CONTAINER	:= cryptech-builder-bootstrap
BASE_IMAGE		:= cryptech-builder:base

ifneq (./,$(sort $(dir ${XILINX_TARBALL} ${XILINX_LICENSE})))
$(error XILINX_TARBALL and XILINX_LICENSE must be in this directory for bind mount)
endif

# all: $(if $(shell docker image ls -q ${NAME}:${VERS}),,Dockerfile ${DEB})

all:
ifeq (,$(shell docker image ls -q ${BASE_IMAGE}))
	-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 ${BOOTSTRAP_CONTAINER} ${BASE_IMAGE}
	docker container rm -f ${BOOTSTRAP_CONTAINER}
endif
	docker build -t cryptech-builder .

clean:
	git clean -dfx -e ${XILINX_TARBALL} -e ${XILINX_LICENSE}
	-docker container rm -f ${BOOTSTRAP_CONTAINER}

.PHONY: all clean