-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
94 lines (77 loc) · 2.13 KB
/
Copy pathMakefile
File metadata and controls
94 lines (77 loc) · 2.13 KB
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
_E ?= default.env
include $(_E)
export $(shell sed 's/=.*//' $(_E))
.PHONY: show-env
show-env:
env
all: docker-oss docker-network
.PHONY: clean-all
clean-all: clean-network
docker rmi $(shell docker images --filter=reference="hdl-code-questa-*:*" -q) || echo "" && \
docker image rm hdl-code-oss || echo "" && \
docker image rm hdl-code-base || echo ""
.PHONY: clean-network
clean-network:
docker network rm $(NETNAME) || echo ""
.PHONY: docker-network
docker-network:
docker network create -d macvlan \
--subnet=192.168.1.0/30 --gateway=192.168.1.1 \
--ip-range 192.168.1.0/30 \
$(NETNAME) || echo ""
.PHONY: docker-base
docker-base:
docker build -t hdl-code-base:latest -f Dockerfile.base .
.PHONY: docker-oss
docker-oss: docker-base
docker build -t hdl-code-oss:latest -f Dockerfile.oss .
.PHONY: docker-questa
docker-questa: docker-base
docker build -t hdl-code-questa-${QVER}:latest -f Dockerfile.questa ${QBLOB}-${QVER}
.PHONY: X11
X11:
touch $(XAUTH)
xauth nlist :0 | sed -e 's/^..../ffff/' | xauth -f $(XAUTH) nmerge -
DOCKER_RUN = docker run --rm -it \
$(NETWORK) $(NETNAME) \
--env="DISPLAY=${DISPLAY}" \
--env="XAUTHORITY=$(XAUTH)" \
--volume="$(XSOCK):$(XSOCK)" \
--volume="$(XAUTH):$(XAUTH)" \
--volume="${CODE_HOME}:/home/code" \
--volume="${CODE_PROJECT}:/data/project" \
-u `id -u ${USER}`:`id -g ${USER}`
DOCKER_MAKE = docker run --rm -it \
$(NETWORK) $(NETNAME) \
--env="DISPLAY=${DISPLAY}" \
--env="XAUTHORITY=$(XAUTH)" \
--volume="$(XSOCK):$(XSOCK)" \
--volume="$(XAUTH):$(XAUTH)" \
--volume="${CODE_PROJECT}:/data/project" \
--workdir="/data/project" \
-u `id -u ${USER}`:`id -g ${USER}`
DOCKER_VSCS = docker run --rm -it \
--network=host \
--volume="${VSCS_HOME}:/home/code" \
--volume="${CODE_PROJECT}:/data/project" \
-u `id -u ${USER}`:`id -g ${USER}`
.PHONY: run
run: X11
$(DOCKER_RUN) \
hdl-code-${IMG}:latest \
${RUN}
.PHONY: make
make: X11
$(DOCKER_MAKE) \
hdl-code-${IMG}:latest \
make ${TARGET}
.PHONY: vscs
vscs:
$(DOCKER_VSCS) \
hdl-code-${IMG}:latest \
code-server
.PHONY: vscs-dev
vscs-dev:
$(DOCKER_VSCS) \
hdl-code-${IMG}:latest \
/bin/bash