blob: 089a42ebca988f57cfbf355ca1eedad24f2056fd (
plain)
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
|
#!/bin/sh
set -e
cd "$(dirname $0)"
. ./utils.sh
# To build latest GHDL from sources, uncomment the following block
# and replace --from=ghdl/pkg:buster-mcode below with --from=tmp
#docker build -t tmp - <<-EOF
#FROM ghdl/build:buster-mcode
#RUN apt-get update -qq && DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \
# ca-certificates curl && update-ca-certificates \
# && mkdir -p ghdl && cd ghdl \
# && curl -fsSL "$GHDL_URL" | tar xzf - --strip-components=1 \
# && ./configure --enable-libghdl --enable-synth \
# && make all \
# && make DESTDIR=/opt/ghdl install
#EOF
#--
do_plugin () {
gstart "[Build] ghdl/synth:beta" "$ANSI_MAGENTA"
docker build -t ghdl/synth:beta . -f- <<-EOF
FROM ghdl/cache:yosys-gnat AS build
COPY --from=ghdl/pkg:buster-mcode / /opt/ghdl
COPY . /ghdlsynth
RUN cp -vr /opt/ghdl/* /usr/local \
&& cd /ghdlsynth \
&& make \
&& cp ghdl.so /opt/ghdl/lib/ghdl_yosys.so
FROM ghdl/cache:yosys-gnat
COPY --from=build /opt/ghdl /usr/local
RUN yosys-config --exec mkdir -p --datdir/plugins \
&& yosys-config --exec ln -s /usr/local/lib/ghdl_yosys.so --datdir/plugins/ghdl.so
EOF
gend
}
#---
do_formal () {
gstart "[Build] ghdl/synth:formal" "$ANSI_MAGENTA"
docker build -t ghdl/synth:formal --build-arg IMAGE='ghdl/synth:beta' . -f- <<-EOF
$(curl -fsSL https://github.com/ghdl/docker/raw/master/synth_formal.dockerfile)
EOF
gend "formal"
}
#---
do_test () {
printf "${ANSI_MAGENTA}[Test] testsuite ${ANSI_NOCOLOR}\n"
docker run --rm -t -e CI -v /$(pwd)://src -w //src -e YOSYS='yosys -m ghdl' ghdl/synth:formal bash -c "$(cat <<EOF
./testsuite/testsuite.sh
EOF
)"
}
#---
case $1 in
plugin)
do_plugin
;;
formal)
do_plugin
do_formal
;;
test)
do_test
;;
*)
do_plugin
do_formal
do_test
esac
|