add reproducible script
[dev-env-setup.git] / hdl-tools-yosys
1 #!/bin/bash
2 if [ "$EUID" -ne 0 ]
3 then echo "Please run as root using 'sudo bash'"
4 exit
5 fi
6
7 # this is a bit of a cheat, by relying on debian to pull in all the
8 # build dependencies. saves time researching how to get and list them
9 # by hand.
10 apt-get update -y
11 apt-get build-dep yosys -y
12 apt-get remove yosys -y
13 apt-get build-dep ghdl -y # this is sort-of what ghdl-install does, hmmm
14
15 mkdir -p /home/$SUDO_USER/src
16 cd /home/$SUDO_USER/src
17 mkdir -p hdl_tools
18 cd hdl_tools
19
20 git clone https://github.com/YosysHQ/yosys.git
21 git clone https://github.com/YosysHQ/SymbiYosys.git sby
22 git clone https://github.com/SRI-CSL/yices2.git
23 git clone https://github.com/Z3Prover/z3.git
24 # XXX see ghdl-install this is really best done with that
25 git clone https://github.com/ghdl/ghdl
26 git clone https://github.com/ghdl/ghdl-yosys-plugin
27
28 # yosys 0.13 has been found to be stable...
29 cd yosys
30 git checkout yosys-0.13
31 make config-clang
32 make -j$(nproc)
33 make install
34
35 # ... but things are in the middle of a transition so use this version of ghdl
36 cd ../ghdl
37 git checkout 263c843ed49f59cb4cc3038bafcac2b9238ebad4
38 ./configure --with-llvm-config
39 make
40 make install
41
42 # ...with this specific version of the yosys-ghdl-plugin
43 cd ../ghdl-yosys-plugin
44 git checkout c9b05e481423c55ffcbb856fd5296701f670808c
45 make
46 make install
47
48 # symbiyosys should be fine though
49
50 cd ../sby
51 make install
52
53 cd ../yices2
54 autoconf
55 ./configure
56 make -j$(nproc)
57 make install
58
59 cd ../z3
60 python scripts/mk_make.py
61 cd build
62 make -j$(nproc)
63 make install
64
65 cd /home/$SUDO_USER/src/hdl_tools
66 chown -R $SUDO_USER .
67 chgrp -R $SUDO_USER .