#!/bin/sh -f
export SCRIPT_PATH=$PWD
mkdir -p temp
cd temp
export START_PWD=$PWD
echo "Installing dependencies."
apt update -y
apt upgrade -y
apt install -y vim htop build-essential git cmake autoconf automake flex bison texinfo libx11-dev libxaw7-dev libreadline-dev m4 \
tcl-dev tk-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev tcsh csh libx11-dev libcairo2-dev libncurses-dev \
python3 python3-pip libgsl-dev libgtk-3-dev clang gawk libffi-dev graphviz xdot pkg-config python3 libboost-system-dev \
libboost-python-dev libboost-filesystem-dev zlib1g-dev gengetopt help2man groff pod2pdf libtool octave liboctave-dev epstool transfig paraview \
libhdf5-dev libvtk7-dev libboost-all-dev libcgal-dev libtinyxml-dev qtbase5-dev libvtk7-qt-dev libopenmpi-dev \
xterm graphicsmagick ghostscript libtinyxml-dev libhdf5-serial-dev libcgal-dev vtk7 \
cython3 build-essential cython3 python3-numpy python3-matplotlib python3-scipy python3-h5py meld
apt install -y tigervnc-common tigervnc-viewer python3-pip gnome-system-tools ffmpeg
apt-get -y install gcc g++ gfortran make cmake bison flex libfl-dev libfftw3-dev libsuitesparse-dev libblas-dev liblapack-dev libtool autoconf automake git
echo "## Install Verilator"
git clone
https://github.com/verilator/verilator
unset VERILATOR_ROOT
cd verilator
git pull # Make sure git repository is up-to-date
git checkout v4.202
autoconf # Create ./configure script
./configure # Configure and create Makefile
make -j$(nproc) # Build Verilator itself
sudo make install
cd $START_PWD
echo "## Installing tools"
echo "# Installing ngspice"
wget -O ngspice-34.tar.gz
https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/34/ngspice-34.tar.gz
tar zxvf ngspice-34.tar.gz
cd ngspice-34
mkdir release
cd release
../configure --with-x --enable-xspice --enable-cider --enable-openmp --with-readlines=yes --disable-debug
make -j$(nproc)
sudo make install
cd $START_PWD
cd ngspice-34
mkdir build-lib
cd build-lib
../configure --with-x --enable-xspice --enable-cider --enable-openmp --disable-debug --with-ngshared
make -j$(nproc)
sudo make install
cd $START_PWD
echo "# Installing ngspice complete."
echo "# Installing magic"
git clone
https://github.com/RTimothyEdwards/magic.git
cd magic
./configure
make -j$(nproc)
sudo make install
cd $START_PWD
echo "# Installing klayout"
wget
https://www.klayout.org/downloads/Ubuntu-20/klayout_0.27.1-1_amd64.deb
dpkg -i ./klayout_0.27.1-1_amd64.deb
apt-get install -f -y
echo "# Installing netgen"
git clone
https://github.com/RTimothyEdwards/netgen.git
cd netgen
./configure
make -j$(nproc)
sudo make install
cd $START_PWD
echo "# Installing xcircuit"
wget
http://opencircuitdesign.com/xcircuit/archive/xcircuit-3.10.30.tgz
tar zxvf xcircuit-3.10.30.tgz
cd xcircuit-3.10.30
./configure && make -j$(nproc) && sudo make install
cd $START_PWD
echo "# Install Yoss"
git clone
https://github.com/YosysHQ/yosys.git
cd yosys
make config-gcc
make -j$(nproc)
sudo make install
cd $START_PWD
echo "# Install graywolf"
git clone
https://github.com/rubund/graywolf.git
cd graywolf
mkdir build
cd build
cmake ..
make -j$(nproc)
sudo make install
cd $START_PWD
echo "# Installing qrouter"
git clone
https://github.com/RTimothyEdwards/qrouter.git
cd qrouter
./configure
make -j$(nproc)
sudo make install
echo "# Installing qflow"
git clone
https://github.com/RTimothyEdwards/qflow.git
cd qflow
./configure
make -j$(nproc)
sudo make install
cd $START_PWD
echo "# Installing gaw3"
git clone
https://github.com/StefanSchippers/xschem-gaw.git
cd xschem-gaw
./configure
make -j$(nproc)
sudo make install
cd $START_PWD
echo "# Installing xschem"
git clone
https://github.com/StefanSchippers/xschem.git
cd xschem
./configure
make -j$(nproc)
sudo make install
cd $START_PWD
#echo "## Installing EMS"
## git clone --recursive
https://github.com/thliebig/openEMS-Project.git
## cd openEMS-Project
## sudo ./update_openEMS.sh ~/opt/openEMS --with-hyp2mat --with-CTB --with-MPI
#echo "$PWD"
#
#git clone
https://github.com/thliebig/openEMS-Project.git
#cd openEMS-Project
#git submodule init
#git submodule update
#
#export OPENEMS=/opt/openems
#sudo ./update_openEMS.sh $OPENEMS
#cd CSXCAD/python; python3 setup.py build_ext -I$OPENEMS/include -L$OPENEMS/lib -R$OPENEMS/lib; sudo python3 setup.py install; cd ../..
#cd openEMS/python; python3 setup.py build_ext -I$OPENEMS/include -L$OPENEMS/lib -R$OPENEMS/lib; sudo python3 setup.py install; cd ../..
echo "## Installing Xyce"
wget
https://github.com/trilinos/Trilinos/archive/refs/tags/trilinos-release-12-12-1.tar.gz -O trilinos-release-12-12-1.tar.gz
tar zxvf trilinos-release-12-12-1.tar.gz
cd trilinos-release-12-12-1
mkdir parallel_build
cd parallel_build
cp $SCRIPT_PATH/cmake_init.sh
chmod +x cmake_init.sh
./cmake_init.sh
make -j$(nproc)
sudo make install
cd $START_PWD
git clone
https://github.com/Xyce/Xyce.git
cd Xyce
./bootstrap
mkdir build_dir
cd build_dir
../configure CXXFLAGS="-O3" ARCHDIR="/opt/trilinos" CPPFLAGS="-I/usr/include/suitesparse" --enable-mpi CXX=mpicxx CC=mpicc F77=mpif77 --enable-stokhos --enable-amesos2 --prefix=/usr/local
make -j$(nproc)
sudo make install