|
| 1 | +#!/usr/bin/env bash |
| 2 | + |
| 3 | +# Get # of processors in environment variables. |
| 4 | +export NP=$(nproc) |
| 5 | +# Store current location as working directory. |
| 6 | +export WORK_DIR=${PWD} |
| 7 | + |
| 8 | +# Update packages fromt apt repos. |
| 9 | +sudo apt-get update |
| 10 | +sudo apt-get -y install build-essential gfortran wget less m4 git cmake |
| 11 | +sudo apt-get -y install openmpi-bin libopenmpi-dev |
| 12 | +sudo apt-get -y install libpetsc3.6 libpetsc3.6.2-dbg libpetsc3.6.2-dev |
| 13 | +sudo apt-get -y install libslepc3.6 libslepc3.6.1-dbg libslepc3.6.1-dev |
| 14 | +sudo apt-get -y install libparpack2-dev |
| 15 | +sudo apt-get -y install libboost-all-dev |
| 16 | +sudo apt-get -y install libeigen3-dev |
| 17 | + |
| 18 | +# Fetch/build libMesh. |
| 19 | +mkdir libmesh |
| 20 | +cd libmesh |
| 21 | +wget https://github.com/libMesh/libmesh/releases/download/v1.5.0/libmesh-1.5.0.tar.gz |
| 22 | +tar -xvf libmesh-1.5.0.tar.gz |
| 23 | +cd libmesh-1.5.0 |
| 24 | +mkdir build |
| 25 | +cd build |
| 26 | +export PETSC_DIR=/usr/lib/petscdir/3.6.2/x86_64-linux-gnu-real |
| 27 | +export SLEPC_DIR=/usr/lib/slepcdir/3.6.1/x86_64-linux-gnu-real |
| 28 | +export HDF5_DIR=/usr/lib/x86_64-linux-gnu/hdf5/openmpi |
| 29 | +../configure --prefix=/usr/local --with-methods="opt dbg" --disable-metaphysicl --disable-examples |
| 30 | +make -j ${NP} |
| 31 | +sudo make install |
| 32 | + |
| 33 | +# Organize libMesh include/ and lib/ for packaging. |
| 34 | +cd ${WORK_DIR} |
| 35 | +export PKG_DIR=libmesh-1.5.0-1 |
| 36 | +export INST_DIR=${PKG_DIR}/usr/local |
| 37 | +mkdir ${PKG_DIR} |
| 38 | +mkdir ${PKG_DIR}/usr |
| 39 | +mkdir ${PKG_DIR}/usr/local |
| 40 | +mkdir ${PKG_DIR}/usr/local/include |
| 41 | +mkdir ${PKG_DIR}/usr/local/lib |
| 42 | +cp -r /usr/local/include/* ${INST_DIR}/include |
| 43 | +cp -r /usr/local/lib/libmesh* ${INST_DIR}/lib |
| 44 | +cp -r /usr/local/lib/libnetcdf* ${INST_DIR}/lib |
| 45 | + |
| 46 | +# Copy in DEBIAN/control package configuration file. |
| 47 | +cp -r ${WORK_DIR}/DEBIAN ${PKG_DIR} |
| 48 | + |
| 49 | +# Create libMesh .deb package. |
| 50 | +dpkg-deb --build libmesh-1.5.0-1 |
0 commit comments