From cc1a198a156bb2e827c82c9c8e6830ae23632fd2 Mon Sep 17 00:00:00 2001 From: Ned Bingham Date: Sun, 18 Sep 2022 07:48:56 -0400 Subject: [PATCH] first commit, most tools set up --- Dockerfile | 77 ++++++++++++++++++++++++++++++++++++++++++++ trilinos/reconfigure | 42 ++++++++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 Dockerfile create mode 100755 trilinos/reconfigure diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7f54fee --- /dev/null +++ b/Dockerfile @@ -0,0 +1,77 @@ +from ubuntu:latest + +RUN apt-get update + +RUN mkdir toolsrc +RUN mkdir /opt/cad + +# Xyce and Trilinos takes the longest to execute, in the interest of caching, this should go first. +# install Trilinos +WORKDIR /toolsrc +# basic dependencies +RUN apt-get install -y gcc g++ gfortran make cmake flex libfl-dev libfftw3-dev libsuitesparse-dev libblas-dev liblapack-dev libtool +# building from git repo dependencies +RUN apt-get install -y autoconf automake git +# parallel dependencies +RUN apt-get install -y libopenmpi-dev openmpi-bin + +RUN git clone https://github.com/trilinos/Trilinos.git +WORKDIR Trilinos +RUN git checkout tags/trilinos-release-12-12-1 +RUN mkdir build +RUN mkdir /opt/trilinos +WORKDIR build +ADD trilinos/reconfigure . +RUN ./reconfigure +RUN make +RUN make install + +# install Xyce +WORKDIR /toolsrc +RUN apt-get install -y bison +RUN git clone https://github.com/Xyce/Xyce.git +WORKDIR Xyce +RUN ./bootstrap +RUN mkdir build +WORKDIR build +RUN ../configure ARCHDIR=/opt/trilinos --enable-mpi --disable-verbose_linear --disable-verbose_nonlinear --disable-verbose_time --enable-shared --enable-xyce-shareable CC=mpicc CXX=mpicxx F77=mpifort CXXFLAGS="-O1 -fno-inline -std=c++11 -I/usr/lib/x86_64-linux-gnu/openmpi/include" +RUN make +RUN make install + +# install ACT +WORKDIR /toolsrc +RUN apt-get install -y libedit-dev zlib1g-dev m4 git gcc g++ make +RUN git clone https://github.com/asyncvlsi/act.git +WORKDIR act +ENV ACT_HOME=/opt/cad +ENV VLSI_TOOLS_SRC=/toolsrc/act +RUN ./configure $ACT_HOME +RUN ./build +RUN make install + +# install Haystack +WORKDIR /toolsrc +RUN git clone https://github.com/nbingham1/haystack.git +WORKDIR haystack +RUN git submodule update --init --recursive +WORKDIR lib +RUN make +WORKDIR ../bin +RUN make +RUN cp hseplot/plot /opt/cad/bin +RUN cp hsesim/hsesim /opt/cad/bin +RUN cp hseenc/hseenc /opt/cad/bin + +# install prspice +WORKDIR /toolsrc +RUN git clone https://github.com/nbingham1/prspice.git +WORKDIR prspice +RUN git checkout xyce +RUN make +RUN cp prdbase prspice /opt/cad/bin + +# install ACT-06 +#WORKDIR /toolsrc +#RUN git clone https://github.com/nbingham1/act-06.git +#WORKDIR act-06 +#RUN make diff --git a/trilinos/reconfigure b/trilinos/reconfigure new file mode 100755 index 0000000..fbd6fb8 --- /dev/null +++ b/trilinos/reconfigure @@ -0,0 +1,42 @@ +#!/bin/sh +SRCDIR=/toolsrc/Trilinos +ARCHDIR=/opt/trilinos +FLAGS="-O3 -fPIC" +cmake \ +-G "Unix Makefiles" \ +-DCMAKE_C_COMPILER=mpicc \ +-DCMAKE_CXX_COMPILER=mpicxx \ +-DCMAKE_Fortran_COMPILER=mpifort \ +-DCMAKE_CXX_FLAGS="$FLAGS" \ +-DCMAKE_C_FLAGS="$FLAGS" \ +-DCMAKE_Fortran_FLAGS="$FLAGS" \ +-DCMAKE_INSTALL_PREFIX=$ARCHDIR \ +-DCMAKE_MAKE_PROGRAM="make" \ +-DTPL_ENABLE_MPI=ON \ +-DMPI_BASE_DIR=/usr \ +-DTrilinos_ENABLE_NOX=ON \ + -DNOX_ENABLE_LOCA=ON \ +-DTrilinos_ENABLE_Epetra=ON \ +-DTrilinos_ENABLE_EpetraExt=ON \ + -DEpetraExt_BUILD_BTF=ON \ + -DEpetraExt_BUILD_EXPERIMENTAL=ON \ + -DEpetraExt_BUILD_GRAPH_REORDERINGS=ON \ +-DTrilinos_ENABLE_TrilinosCouplings=ON \ +-DTrilinos_ENABLE_Ifpack=ON \ +-DTrilinos_ENABLE_Isorropia=ON \ +-DTrilinos_ENABLE_AztecOO=ON \ +-DTrilinos_ENABLE_Belos=ON \ +-DTrilinos_ENABLE_Teuchos=ON \ + -DTeuchos_ENABLE_COMPLEX=ON \ +-DTrilinos_ENABLE_Amesos=ON \ + -DAmesos_ENABLE_KLU=ON \ +-DTrilinos_ENABLE_Sacado=ON \ +-DTrilinos_ENABLE_Kokkos=OFF \ +-DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES=OFF \ +-DTrilinos_ENABLE_CXX11=ON \ +-DTPL_ENABLE_AMD=ON \ +-DAMD_LIBRARY_DIRS="/usr/lib" \ +-DTPL_AMD_INCLUDE_DIRS="/usr/include/suitesparse" \ +-DTPL_ENABLE_BLAS=ON \ +-DTPL_ENABLE_LAPACK=ON \ +$SRCDIR