From d83c9b1a718d0ea6baf7adffb5a9fee4abc11aac Mon Sep 17 00:00:00 2001 From: Ned Bingham Date: Fri, 21 Jun 2024 20:02:39 +0000 Subject: [PATCH] fixing build --- Dockerfile | 36 ++++++++++++----------------------- ubuntu/build.sh | 49 +++++++++++++++++++++--------------------------- ubuntu/docker.sh | 7 +++++++ 3 files changed, 40 insertions(+), 52 deletions(-) mode change 100644 => 100755 ubuntu/build.sh create mode 100755 ubuntu/docker.sh diff --git a/Dockerfile b/Dockerfile index b7a29d2..20845c1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,16 +22,14 @@ RUN make install # install Trilinos WORKDIR /toolsrc # basic dependencies -RUN apt-get install -y gcc g++ gfortran make 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 libhwloc15 libopenmpi-dev openmpi-bin openmpi-common -# install python -RUN apt-get update --fix-missing; DEBIAN_FRONTEND=noninteractive apt-get install -y python3 pip -RUN apt-get remove -y cmake; pip install cmake --upgrade +RUN apt-get update --fix-missing; DEBIAN_FRONTEND=noninteractive apt-get install -y \ + sudo wget gcc g++ gfortran make bison flex libfl-dev libfftw3-dev libsuitesparse-dev libblas-dev liblapack-dev libtool \ + autoconf automake git \ + libhwloc15 libopenmpi-dev openmpi-bin openmpi-common \ + python3 python3-pip libpython3-all-dev +RUN wget https://github.com/Kitware/CMake/releases/download/v3.29.6/cmake-3.29.6-linux-x86_64.sh +RUN bash cmake-3.29.6-linux-x86_64.sh --prefix=/usr/local --exclude-subdir --skip-license -RUN apt-get install -y bison # cmake RUN git clone --depth=1 https://github.com/trilinos/Trilinos.git --branch trilinos-release-15-1-1 RUN git clone --depth=1 https://github.com/Xyce/Xyce.git --branch Release-7.8.0 @@ -69,7 +67,6 @@ RUN make install WORKDIR /toolsrc RUN git clone --recursive https://www.github.com/The-OpenROAD-Project/OpenROAD-flow-scripts.git WORKDIR OpenROAD-flow-scripts -RUN apt-get install -y sudo libpython3.11 RUN SUDO_USER="root" ./setup.sh RUN ./build_openroad.sh --local --install-path /opt/openroad --nice RUN mv dependencies /opt/or-tools @@ -77,9 +74,8 @@ RUN mv dependencies /opt/or-tools # install ACT WORKDIR /toolsrc RUN apt-get install -y libedit-dev zlib1g-dev m4 git gcc g++ make libboost-all-dev -RUN git clone https://www.github.com/asyncvlsi/actflow.git +RUN git clone --recursive https://www.github.com/asyncvlsi/actflow.git WORKDIR actflow -RUN git submodule update --init --recursive ENV ACT_HOME=/opt/cad ENV VLSI_TOOLS_SRC=/toolsrc/actflow WORKDIR actsim @@ -117,9 +113,8 @@ RUN apt-get install -y graphviz # install Haystack RUN echo "Haystack" WORKDIR /toolsrc -RUN git clone https://github.com/broccolimicro/haystack.git --branch v0.2.2 +RUN git clone --recursive https://github.com/broccolimicro/haystack.git --branch v0.2.2 WORKDIR haystack -RUN git submodule update --init --recursive WORKDIR lib RUN make WORKDIR ../bin @@ -175,18 +170,11 @@ RUN make install ADD share/* /opt/cad/share -# setup python venv -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python3.10-venv -RUN python3 -m venv /opt/python -RUN source /opt/python/bin/activate -ENV PATH="/opt/python/bin:$PATH" - # install floret -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y libqhull-dev zlib1g-dev python3.10-dev tup +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y libqhull-dev zlib1g-dev WORKDIR /toolsrc -RUN git clone https://github.com/broccolimicro/floret.git +RUN git clone --recursive https://github.com/broccolimicro/floret.git --branch v1.1.2 WORKDIR floret -RUN git submodule update --init --recursive RUN make RUN cp floret-linux /opt/cad/bin/floret @@ -195,7 +183,7 @@ FROM ubuntu:jammy SHELL ["/bin/bash", "-c"] RUN mkdir toolsrc -RUN apt-get update --fix-missing; DEBIAN_FRONTEND=noninteractive apt-get -y install wget make gcc g++ gfortran make cmake autoconf automake git libhwloc15 libopenmpi-dev openmpi-bin openmpi-common python3 pip bison libgtk-3-dev libcanberra-gtk3-module gtkwave tcsh m4 csh libx11-dev tcl-dev tk-dev libcairo2-dev mesa-common-dev libglu1-mesa-dev libncurses-dev libedit-dev zlib1g-dev m4 git gcc g++ make libboost-all-dev graphviz sudo vim flex libfl-dev libfftw3-dev libsuitesparse-dev libblas-dev liblapack-dev libtool; apt-get update --fix-missing +RUN apt-get update --fix-missing; DEBIAN_FRONTEND=noninteractive apt-get -y install wget make gcc g++ gfortran make cmake autoconf automake git libhwloc15 libopenmpi-dev openmpi-bin openmpi-common python3 python3-pip bison libgtk-3-dev libcanberra-gtk3-module gtkwave tcsh m4 csh libx11-dev tcl-dev tk-dev libcairo2-dev mesa-common-dev libglu1-mesa-dev libncurses-dev libedit-dev zlib1g-dev m4 git gcc g++ make libboost-all-dev graphviz sudo vim flex libfl-dev libfftw3-dev libsuitesparse-dev libblas-dev liblapack-dev libtool; apt-get update --fix-missing WORKDIR /toolsrc COPY --from=0 /toolsrc/OpenROAD-flow-scripts/etc/DependencyInstaller.sh /toolsrc/etc/DependencyInstaller.sh diff --git a/ubuntu/build.sh b/ubuntu/build.sh old mode 100644 new mode 100755 index e1aa07c..ca5a66e --- a/ubuntu/build.sh +++ b/ubuntu/build.sh @@ -3,7 +3,7 @@ SCRIPT_PATH="${BASH_SOURCE[0]}"; pushd `dirname ${SCRIPT_PATH}` > /dev/null SCRIPT_PATH=`pwd -P`; -popd > /dev/null +popd > /dev/null mkdir $SCRIPT_PATH/toolsrc mkdir $SCRIPT_PATH/cad @@ -11,11 +11,12 @@ mkdir $SCRIPT_PATH/cad # Xyce and Trilinos takes the longest to execute, in the interest of caching, this should go first. # install Trilinos apt-get update --fix-missing; DEBIAN_FRONTEND=noninteractive apt-get install -y \ - wget gcc g++ gfortran make bison flex libfl-dev libfftw3-dev libsuitesparse-dev libblas-dev liblapack-dev libtool \ + sudo wget gcc g++ gfortran make bison flex libfl-dev libfftw3-dev libsuitesparse-dev libblas-dev liblapack-dev libtool \ autoconf automake git \ libhwloc15 libopenmpi-dev openmpi-bin openmpi-common \ - python3 pip -apt-get remove -y cmake; pip install cmake --upgrade + python3 python3-pip libpython3-all-dev +wget https://github.com/Kitware/CMake/releases/download/v3.29.6/cmake-3.29.6-linux-x86_64.sh +bash cmake-3.29.6-linux-x86_64.sh --prefix=/usr/local --exclude-subdir --skip-license cd $SCRIPT_PATH/toolsrc git clone --depth=1 https://github.com/trilinos/Trilinos.git --branch trilinos-release-15-1-1 @@ -27,15 +28,15 @@ mkdir build cd build cmake \ -D PYTHON_EXECUTABLE=/usr/bin/python3 \ - -D CMAKE_C_COMPILER=mpicc \ - -D CMAKE_CXX_COMPILER=mpic++ \ - -D CMAKE_Fortran_COMPILER=mpif77 \ - -D CMAKE_INSTALL_PREFIX="$SCRIPT_PATH/trilinos" \ - -D TPL_AMD_INCLUDE_DIRS="/usr/include/suitesparse" \ - -D AMD_LIBRARY_DIRS="/usr/lib" \ - -D MPI_BASE_DIR="/usr" \ - -C $SCRIPT_PATH/toolsrc/Xyce/cmake/trilinos/trilinos-MPI-base.cmake \ - $SCRIPT_PATH/toolsrc/Trilinos + -D CMAKE_C_COMPILER=mpicc \ + -D CMAKE_CXX_COMPILER=mpic++ \ + -D CMAKE_Fortran_COMPILER=mpif77 \ + -D CMAKE_INSTALL_PREFIX="$SCRIPT_PATH/trilinos" \ + -D TPL_AMD_INCLUDE_DIRS="/usr/include/suitesparse" \ + -D AMD_LIBRARY_DIRS="/usr/lib" \ + -D MPI_BASE_DIR="/usr" \ + -C $SCRIPT_PATH/toolsrc/Xyce/cmake/trilinos/trilinos-MPI-base.cmake \ + $SCRIPT_PATH/toolsrc/Trilinos cmake --build . -j 40 -t install # install Xyce @@ -44,9 +45,9 @@ cd Xyce mkdir build cd build cmake \ - -D CMAKE_INSTALL_PREFIX=$SCRIPT_PATH/cad \ - -D Trilinos_ROOT=$SCRIPT_PATH/trilinos \ - $SCRIPT_PATH/toolsrc/Xyce + -D CMAKE_INSTALL_PREFIX=$SCRIPT_PATH/cad \ + -D Trilinos_ROOT=$SCRIPT_PATH/trilinos \ + $SCRIPT_PATH/toolsrc/Xyce cmake --build . -j 16 -t install make xycecinterface make install @@ -55,7 +56,6 @@ make install cd $SCRIPT_PATH/toolsrc git clone --recursive https://www.github.com/The-OpenROAD-Project/OpenROAD-flow-scripts.git cd OpenROAD-flow-scripts -apt-get install -y sudo libpython3.11 SUDO_USER="root" ./setup.sh ./build_openroad.sh --local --install-path $SCRIPT_PATH/openroad --nice mv dependencies $SCRIPT_PATH/or-tools @@ -89,9 +89,8 @@ cp prsim/prsim chan.py measure.py sim2vcd.py tlint/tlint spi2act/spi2act.py v2ac apt-get install -y graphviz # install Haystack -echo "building haystack" cd $SCRIPT_PATH/toolsrc -git clone --recursive https://github.com/nbingham1/haystack.git --branch v0.1.2 +git clone --recursive https://github.com/nbingham1/haystack.git --branch v0.2.2 cd haystack cd lib make @@ -116,7 +115,7 @@ GOPATH=$SCRIPT_PATH/go $SCRIPT_PATH/go/bin/go install golang.org/x/lint/golint@l # install gaw apt-get update --fix-missing; DEBIAN_FRONTEND=noninteractive apt-get install -y libgtk-3-dev libcanberra-gtk3-module cd $SCRIPT_PATH/toolsrc -git clone https://git.broccolimicro.io/Broccoli/waveview.git +git clone https://github.com/broccolimicro/waveview.git cd waveview ./configure --prefix=$SCRIPT_PATH/cad make @@ -148,16 +147,10 @@ make install ADD ../share/* $SCRIPT_PATH/cad/share -# setup python venv -DEBIAN_FRONTEND=noninteractive apt-get install -y python3.10-venv -python3 -m venv $SCRIPT_PATH/python -source $SCRIPT_PATH/python/bin/activate -export PATH="$SCRIPT_PATH/python/bin:$PATH" - # install floret -DEBIAN_FRONTEND=noninteractive apt-get install -y libqhull-dev zlib1g-dev python3.10-dev tup +DEBIAN_FRONTEND=noninteractive apt-get install -y libqhull-dev zlib1g-dev tup cd $SCRIPT_PATH/toolsrc -git clone --recursive https://github.com/broccolimicro/floret.git +git clone --recursive https://github.com/broccolimicro/floret.git --branch v1.1.2 cd floret make cp floret-linux $SCRIPT_PATH/cad/bin/floret diff --git a/ubuntu/docker.sh b/ubuntu/docker.sh new file mode 100755 index 0000000..297cd60 --- /dev/null +++ b/ubuntu/docker.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if [[ $1 == "start" ]]; then + docker run -i --rm -d -v $(pwd):/host --name "ubuntu" -e DISPLAY=$DISPLAY ubuntu:latest +else + docker exec -it "ubuntu" /bin/bash +fi