From: Timo Heister Date: Sun, 22 Aug 2021 22:17:04 +0000 (-0400) Subject: merge from master X-Git-Tag: v9.3.1-r2~1 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a481ab2d295350229a31311d2dfeb04a0c11dc5e;p=candi.git merge from master --- diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bbd98fb..a280609 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,7 +21,7 @@ jobs: run: | echo 'DEAL_II_CONFOPTS="-D CMAKE_BUILD_TYPE=Debug"' >> candi.cfg ./candi.sh -j 2 --packages="once:p4est dealii" - cd ~/deal.ii-candi/tmp/build/deal.II-* && cat detailed.log && make test + cd ~/dealii-candi/tmp/build/deal.II-* && cat detailed.log && make test ubuntu20-blas: name: ubuntu 20.04 @@ -41,7 +41,7 @@ jobs: run: | # use our cmake version, as the runner has 3.19 installed, which is too new for deal.II ./candi.sh -j 2 --packages="once:cmake once:openblas once:p4est dealii" - cd ~/deal.ii-candi/tmp/build/deal.II-* && cat detailed.log && make test + cd ~/dealii-candi/tmp/build/deal.II-* && cat detailed.log && make test osx-minimal: name: OSX clang @@ -52,9 +52,10 @@ jobs: - name: setup run: | # force cmake version: - pip install cmake==3.18.4 + pip install cmake==3.20.5 echo "/Library/Frameworks/Python.framework/Versions/2.7/bin" >> $GITHUB_PATH brew install openmpi + brew reinstall gcc@9 - name: info run: | mpicxx -v @@ -63,30 +64,49 @@ jobs: run: | echo 'DEAL_II_CONFOPTS="-D CMAKE_BUILD_TYPE=Debug"' >> candi.cfg ./candi.sh -j 2 --packages="dealii" - cd ~/deal.ii-candi/tmp/build/deal.II-* && cat detailed.log && make test + cd ~/dealii-candi/tmp/build/deal.II-* && cat detailed.log && make test - osx-gcc: - name: OSX gcc + macos-gcc: + name: macos-gcc runs-on: [macos-latest] steps: - uses: actions/checkout@v2 - name: setup run: | - # force cmake version: - pip install cmake==3.18.4 + # Force cmake version 3.20.5 + pip install cmake==3.20.5 echo "/Library/Frameworks/Python.framework/Versions/2.7/bin" >> $GITHUB_PATH + + # Update packages + brew update + brew upgrade + + # Install openmpi brew install openmpi + + # Reinstall gcc + brew reinstall gcc@9 + - name: info run: | - export OMPI_CXX=g++-9 - mpicxx -v + # Export the compilers + export OMPI_CXX=g++-9; export OMPI_CC=gcc-9; export OMPI_FC=gfortran-9 + + # Show compilers and cmake versions + mpicc --version + mpicxx --version + mpif90 --version + mpif77 --version cmake --version + - name: build run: | - export OMPI_CXX=g++-9 - export OMPI_CC=gcc-9 - export OMPI_FC=gfortran-9 + # Export the compilers + export OMPI_CXX=g++-9; export OMPI_CC=gcc-9; export OMPI_FC=gfortran-9 + + # Compile dealii in DEBUG mode only echo 'DEAL_II_CONFOPTS="-D CMAKE_BUILD_TYPE=Debug"' >> candi.cfg + ./candi.sh -j 2 --packages="once:p4est once:petsc dealii" - cd ~/deal.ii-candi/tmp/build/deal.II-* && cat detailed.log && make test + cd ~/dealii-candi/tmp/build/deal.II-* && cat detailed.log && make test diff --git a/.gitignore b/.gitignore index a16527f..4d1798b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,21 @@ +# eclipse +/.cproject +/.project +qtcreator/ + +# visual studio code +/.vscode + +# temporary and backup files *~ -/src/ -/deal.II-toolchain-build/ -/deal.II-toolchain-unpack/ -*.DS_Store +*# +*.swp + +# MacOS self-generated files +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db diff --git a/AUTHORS b/AUTHORS index 50025fb..4f5e1a8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,8 +1,30 @@ +=================================================================== candi (compile&install) for deal.II - Uwe Koecher - Bruno Turcksin - Timo Heister +The most recent contributors to candi are: + + Uwe Köcher + Timo Heister + Fabian Castelli + + +The list of all contributors (in the order of their last commit): + +Uwe Köcher +Fabian Castelli +Timo Heister +ohcfe +Reza Rastak +fvanmaele +Wolfgang Bangerth +Daniel Arndt +Max Rudolph +Curt Corum +Lukas van de Wiel +Rene Gassmoeller +Bruno Turcksin +tcclevenger +Xiaoyu WEI =================================================================== diff --git a/README.md b/README.md index 46c1b8a..d93bdab 100644 --- a/README.md +++ b/README.md @@ -25,18 +25,18 @@ Follow the instructions on the screen ### Examples -#### Install deal.II on RHEL 7, CentOS 7 or Fedora 26,27,28: +#### Install deal.II on RHEL 7, CentOS 7 or Fedora: ```bash module load mpi/openmpi-`uname -i` ./candi.sh ``` -#### Install deal.II on ubuntu 12.04, 14.xx, 15.xx, 16.xx, 17.xx: +#### Install deal.II on Ubuntu (16.04), 18.04, 20.xx: ```bash ./candi.sh ``` -#### Install deal.II on macOS (10.11), 10.12, 10.13: +#### Install deal.II on macOS (experimental): ```bash ./candi.sh ``` @@ -45,10 +45,12 @@ Follow the instructions on the screen Since the Creators Update in fall 2017 (Windows 10 (1709)) the Windows Subsystem for Linux (WSL) is an official part. -For an detailed instruction how to install WSL and a recent Ubuntu distribution -on Windows 10 you can follow the Microsoft Documentation. +For a detailed instruction how to install WSL, the new WSL 2 and a recent +Ubuntu distribution on Windows 10 you can follow the +[Microsoft Documentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10). -Within the ubuntu terminal application clone this repository and run candi +Within the Ubuntu terminal application, upgrade Ubuntu first, then +clone this repository and run candi ```bash sudo apt-get update @@ -91,13 +93,16 @@ Advanced Configuration You can get a list of all command line options by running ```bash ./candi.sh -h + ./candi.sh --help ``` You can combine the command line options given below. -#### Prefix path: ``[-p=]``, ``[--prefix=]`` +#### Prefix path: ``[-p ]``, ``[-p=]``, ``[--prefix=]`` ```bash - ./candi.sh --prefix=Your/Prefix/Path + ./candi.sh -p "/path/to/install/dir" + ./candi.sh -p="/path/to/install/dir" + ./candi.sh --prefix="/path/to/install/dir" ``` #### Multiple build processes: ``[-j]``, ``[-j ]``, ``[--jobs=]`` @@ -114,6 +119,7 @@ You can combine the command line options given below. #### Specific platform: ``[-pf=]``, ``[--platform=]`` ```bash ./candi.sh -pf=./deal.II-toolchain/platforms/... + ./candi.sh --platform=./deal.II-toolchain/platforms/... ``` If your platform is not detected automatically you can specify it with this @@ -124,6 +130,8 @@ see [deal.II-toolchain/platforms](deal.II-toolchain/platforms). #### User interaction: ``[-y]``, ``[--yes]``, ``[--assume-yes]`` ```bash ./candi.sh -y + ./candi.sh --yes + ./candi.sh --assume-yes ``` With this option you skip the user interaction. This might be useful if you @@ -161,9 +169,8 @@ There are several options within the configuration file, for example: NATIVE_OPTIMIZATIONS={ON|OFF} ``` -* Enable the build of the deal.II examples and documentation +* Enable the build of the deal.II examples ```bash - BUILD_DOCUMENTATION={ON|OFF} BUILD_EXAMPLES={ON|OFF} ``` diff --git a/candi.cfg b/candi.cfg index 5ff47bc..e15979b 100644 --- a/candi.cfg +++ b/candi.cfg @@ -61,6 +61,7 @@ PACKAGES="load:dealii-prepare" #PACKAGES="${PACKAGES} once:boost" #PACKAGES="${PACKAGES} once:numdiff" #PACKAGES="${PACKAGES} once:openblas" +#PACKAGES="${PACKAGES} once:scalapack" # These packages are not dependencies but are tools used for deal.II development: #PACKAGES="${PACKAGES} once:astyle" @@ -71,7 +72,9 @@ PACKAGES="load:dealii-prepare" #PACKAGES="${PACKAGES} once:arpack-ng" #PACKAGES="${PACKAGES} once:assimp" #PACKAGES="${PACKAGES} once:ginkgo" +#PACKAGES="${PACKAGES} once:gmsh" #PACKAGES="${PACKAGES} once:gsl" +#PACKAGES="${PACKAGES} once:mumps" PACKAGES="${PACKAGES} once:opencascade" PACKAGES="${PACKAGES} once:parmetis" #PACKAGES="${PACKAGES} once:sundials" @@ -87,7 +90,7 @@ PACKAGES="${PACKAGES} dealii" ######################################################################### -# Install the following deal.II version: +# Install the following deal.II version (choose master v9.3.0 ...) DEAL_II_VERSION=v9.3.1 ######################################################################### @@ -97,6 +100,11 @@ TRILINOS_MAJOR_VERSION=AUTO #TRILINOS_MAJOR_VERSION=12 #TRILINOS_MAJOR_VERSION=11 +# If enabled, Trilinos is configured with complex number support in +# Teuchos and Tpetra. This takes a long time to compile and requires a +# lot of RAM. It is also likely not something you will need. +TRILINOS_WITH_COMPLEX=OFF + ######################################################################### # Option {ON|OFF}: Do you want to use MKL? diff --git a/candi.sh b/candi.sh index 7658a24..d032851 100755 --- a/candi.sh +++ b/candi.sh @@ -39,10 +39,10 @@ TIC_GLOBAL="$(${DATE_CMD} +%s)" ################################################################################ # Parse command line input parameters -PREFIX=~/deal.ii-candi +PREFIX=~/dealii-candi JOBS=1 CMD_PACKAGES="" -SKIP_READ=false +USER_INTERACTION=ON while [ -n "$1" ]; do param="$1" @@ -71,8 +71,6 @@ while [ -n "$1" ]; do ;; -p=*|--prefix=*) PREFIX="${param#*=}" - # replace '~' by $HOME - PREFIX=${PREFIX/#~\//$HOME\/} ;; ##################################### @@ -106,18 +104,21 @@ while [ -n "$1" ]; do ##################################### # Assume yes to prompts -y|--yes|--assume-yes) - SKIP_READ=true + USER_INTERACTION=OFF ;; *) - echo "invalid command line option. See -h for more information." + echo "invalid command line option <$param>. See -h for more information." exit 1 esac shift done -# replace '~' by $HOME: +# Check the input argument of the install path and (if used) replace the tilde +# character '~' by the users home directory ${HOME}. Afterwards clear the +# PREFIX input variable. PREFIX_PATH=${PREFIX/#~\//$HOME\/} +unset PREFIX RE='^[0-9]+$' if [[ ! "${JOBS}" =~ ${RE} || ${JOBS}<1 ]] ; then @@ -171,7 +172,7 @@ cecho() { } cls() { - if [ ${SKIP_READ} = false ]; then + if [ ${USER_INTERACTION} = ON ]; then # clear screen COL=$1; shift echo -e "${COL}$@\033c" @@ -599,44 +600,51 @@ guess_platform() { echo cygwin elif [ -x /usr/bin/sw_vers ]; then - local MACOSVER=$(sw_vers -productVersion) - case ${MACOSVER} in - 10.11*) echo elcapitan;; - 10.12*) echo sierra;; - 10.13*) echo highsierra;; - 10.14*) echo mojave;; - 10.15*) echo catalina;; - esac - - elif [ ! -z "$CRAYOS_VERSION" ]; then + local MACOS_PRODUCT_NAME=$(sw_vers -productName) + local MACOS_VERSION=$(sw_vers -productVersion) + + if [ "${MACOS_PRODUCT_NAME}" == "macOS" ]; then + echo macos + + else + case ${MACOS_VERSION} in + 10.11*) echo macos_elcapitan;; + 10.12*) echo macos_sierra;; + 10.13*) echo macos_highsierra;; + 10.14*) echo macos_mojave;; + 10.15*) echo macos_catalina;; + 11.4*) echo macos_bigsur;; + 11.5*) echo macos_bigsur;; + esac + fi + + elif [ ! -z "${CRAYOS_VERSION}" ]; then echo cray elif [ -f /etc/os-release ]; then local OS_ID=$(grep -oP '(?<=^ID=).+' /etc/os-release | tr -d '"') - local OS_VERSIONID=$(grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"') - local OS_MAJOR_VER=$(grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"' | grep -oE '[0-9]+' | head -n 1) + local OS_VERSION_ID=$(grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"') + local OS_MAJOR_VERSION=$(grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"' | grep -oE '[0-9]+' | head -n 1) local OS_NAME=$(grep -oP '(?<=^NAME=).+' /etc/os-release | tr -d '"') local OS_PRETTY_NAME=$(grep -oP '(?<=^PRETTY_NAME=).+' /etc/os-release | tr -d '"') - if [ "$OS_ID" == "fedora" ]; then - echo fedora${OS_VERSIONID} + if [ "${OS_ID}" == "fedora" ]; then + echo fedora - elif [ "$OS_ID" == "centos" ]; then - echo centos${OS_VERSIONID} + elif [ "${OS_ID}" == "centos" ]; then + echo centos${OS_VERSION_ID} - elif [ "$OS_ID" == "rhel" ]; then - echo rhel${OS_MAJOR_VER} + elif [ "${OS_ID}" == "rhel" ]; then + echo rhel${OS_MAJOR_VERSION} elif [ "$OS_ID" == "debian" ]; then - echo debian${OS_MAJOR_VER} + echo debian elif [ "$OS_ID" == "ubuntu" ]; then - echo ubuntu${OS_MAJOR_VER} + echo ubuntu - elif [ "$OS_ID" == "opensuse" ]; then - if [ "${OS_NAME}" == "openSUSE Leap" ]; then - echo opensuse15 - fi + elif [ "${OS_NAME}" == "openSUSE Leap" ]; then + echo opensuse15 elif [ "${PRETTY_NAME}" == "Arch Linux" ]; then echo arch @@ -812,14 +820,6 @@ if [ -z "${LDSUFFIX}" ]; then exit 1 fi -# Source default PACKAGES variables, if none were given so far -if [ -z "${PACKAGES}" ]; then - DEFAULT_PACKAGES=${PROJECT}/packages/default.packages - if [ -e ${DEFAULT_PACKAGES} ]; then - source ${DEFAULT_PACKAGES} - fi -fi - # Source PLATFORM variables if set up correctly if [ -z ${PLATFORM} ]; then cecho ${BAD} "Please contact the authors, if you have not changed candi!" @@ -841,9 +841,10 @@ echo awk '/^##/ {exit} {$1=""; print}' <${PLATFORM} echo -# Let the user confirm now, that the PLATFORM is set up correctly -echo "-------------------------------------------------------------------------------" -if [ ${SKIP_READ} = false ]; then +# If interaction is enabled, let the user confirm, that the platform is set up +# correctly +if [ ${USER_INTERACTION} = ON ]; then + echo "--------------------------------------------------------------------------------" cecho ${GOOD} "Please make sure you've read the instructions above and your system" cecho ${GOOD} "is ready for installing ${PROJECT}." cecho ${BAD} "If not, please abort the installer by pressing + !" @@ -905,84 +906,86 @@ fi ############################################################################ # Compiler variables check -echo "Compiler Variables:" -# Firstly test, if compiler variables are set, -# and if not try to set the default mpi-compiler suite -# finally test, if compiler variables are useful. +# Firstly test, if compiler variables are set, and if not try to set the +# default mpi-compiler suite finally test, if compiler variables are useful. -echo "-------------------------------------------------------------------------------" +echo "--------------------------------------------------------------------------------" +cecho ${INFO} "Compiler Variables:" +echo # CC test -if [ ! -n "$CC" ]; then +if [ ! -n "${CC}" ]; then if builtin command -v mpicc > /dev/null; then - cecho ${WARN} "CC variable not set, but default mpicc found." + cecho ${WARN} "CC variable not set, but default mpicc found." export CC=mpicc fi fi -if [ -n "$CC" ]; then - cecho ${INFO} "CC = $(which $CC)" +if [ -n "${CC}" ]; then + cecho ${INFO} "CC = $(which ${CC})" else - cecho ${BAD} "CC variable not set. Please set it with $ export CC = <(MPI) C compiler>" + cecho ${BAD} "CC variable not set. Please set it with \$export CC = <(MPI) C compiler>" fi # CXX test -if [ ! -n "$CXX" ]; then +if [ ! -n "${CXX}" ]; then if builtin command -v mpicxx > /dev/null; then cecho ${WARN} "CXX variable not set, but default mpicxx found." export CXX=mpicxx fi fi -if [ -n "$CXX" ]; then - cecho ${INFO} "CXX = $(which $CXX)" +if [ -n "${CXX}" ]; then + cecho ${INFO} "CXX = $(which ${CXX})" else - cecho ${BAD} "CXX variable not set. Please set it with $ export CXX = <(MPI) C++ compiler>" + cecho ${BAD} "CXX variable not set. Please set it with \$export CXX = <(MPI) C++ compiler>" fi # FC test -if [ ! -n "$FC" ]; then +if [ ! -n "${FC}" ]; then if builtin command -v mpif90 > /dev/null; then - cecho ${WARN} "FC variable not set, but default mpif90 found." + cecho ${WARN} "FC variable not set, but default mpif90 found." export FC=mpif90 fi fi -if [ -n "$FC" ]; then - cecho ${INFO} "FC = $(which $FC)" +if [ -n "${FC}" ]; then + cecho ${INFO} "FC = $(which ${FC})" else - cecho ${BAD} "FC variable not set. Please set it with $ export FC = <(MPI) Fortran 90 compiler>" + cecho ${BAD} "FC variable not set. Please set it with \$export FC = <(MPI) F90 compiler>" fi # FF test -if [ ! -n "$FF" ]; then +if [ ! -n "${FF}" ]; then if builtin command -v mpif77 > /dev/null; then - cecho ${WARN} "FF variable not set, but default mpif77 found." + cecho ${WARN} "FF variable not set, but default mpif77 found." export FF=mpif77 fi fi -if [ -n "$FF" ]; then - cecho ${INFO} "FF = $(which $FF)" +if [ -n "${FF}" ]; then + cecho ${INFO} "FF = $(which ${FF})" else - cecho ${BAD} "FF variable not set. Please set it with $ export FF = <(MPI) Fortran 77 compiler>" + cecho ${BAD} "FF variable not set. Please set it with \$export FF = <(MPI) F77 compiler>" fi + echo # Final test for compiler variables -if [ -z "$CC" ] || [ -z "$CXX" ] || [ -z "$FC" ] || [ -z "$FF" ]; then +if [ -z "${CC}" ] || [ -z "${CXX}" ] || [ -z "${FC}" ] || [ -z "${FF}" ]; then cecho ${WARN} "One or multiple compiler variables (CC,CXX,FC,FF) are not set." - cecho ${INFO} "Please read your platform information above carefully," - cecho ${INFO} " how you get those compilers installed and set up!" - cecho ${INFO} "Usually the values should be: mpicc, mpicxx, mpif90 and mpif77." - cecho ${WARN} "It is strongly recommended to set them to guarantee the same compilers for all dependencies." + cecho ${INFO} "Please read your platform information above carefully, how you get those" + cecho ${INFO} "compilers installed and set up! Usually the values should be:" + cecho ${INFO} "CC=mpicc, CXX=mpicxx, FC=mpif90, FF=mpif77" + cecho ${WARN} "It is strongly recommended to set them to guarantee the same compilers for all" + cecho ${WARN} "dependencies." echo fi ################################################################################ -# Force the user to accept the current output -echo "-------------------------------------------------------------------------------" -if [ ${SKIP_READ} = false ]; then +# If interaction is enabled, force the user to accept the current output +if [ ${USER_INTERACTION} = ON ]; then + echo "--------------------------------------------------------------------------------" cecho ${GOOD} "Once ready, hit enter to continue!" read fi @@ -1030,7 +1033,9 @@ cat > ${CONFIGURATION_PATH}/enable.sh <<"EOF" # find path of script: pushd . >/dev/null -P="${BASH_SOURCE[0]}";cd `dirname $P`;P=`pwd`; +P="${BASH_SOURCE[0]:-${(%):-%x}}"; +P=`dirname ${P}`; +P=`cd ${P};pwd`; popd >/dev/null for f in $P/* diff --git a/deal.II-toolchain/packages/adolc.package b/deal.II-toolchain/packages/adolc.package index 91920f2..29f0cb3 100644 --- a/deal.II-toolchain/packages/adolc.package +++ b/deal.II-toolchain/packages/adolc.package @@ -1,27 +1,33 @@ -# use development version? -CANDI_ADOLC_FROM_GIT=1 - -if [ -n "$CANDI_ADOLC_FROM_GIT" ]; then - # download git repository - VERSION=master - EXTRACTSTO=ADOL-C-master - - NAME=ADOL-C.git - PACKING=git - SOURCE=https://github.com/coin-or/ +################################################################################ +## ADOLC ## +################################################################################ + +# By default load the tarball. +# To load the git repository define a variable CANDI_ADOLC_LOAD_TARBALL=OFF. +if [ -z ${CANDI_ADOLC_LOAD_TARBALL} ]; then + CANDI_ADOLC_LOAD_TARBALL=ON +fi -else +if [ ${CANDI_ADOLC_LOAD_TARBALL} = ON ]; then # download release tarball - VERSION=2.7.2 + CHECKSUM=701e0856baae91b98397960d5e0a87a549988de9d4002d0e9a56fa08f5455f6e + CHECKSUM="${CHECKSUM} 372c86eaa8b11f83825b2d9e0719b5ce3cb7066d" + CHECKSUM="${CHECKSUM} ea05bd8e0d6c92d474204876fdcad04d" + NAME=${VERSION} - EXTRACTSTO=ADOL-C-releases-${VERSION} SOURCE=https://github.com/coin-or/ADOL-C/archive/releases/ - CHECKSUM=ea05bd8e0d6c92d474204876fdcad04d + EXTRACTSTO=ADOL-C-releases-${VERSION} PACKING=.tar.gz +else + # download git repository + VERSION=master + NAME=ADOL-C.git + SOURCE=https://github.com/coin-or/ + EXTRACTSTO=ADOL-C-master + PACKING=git fi -unset CANDI_ADOLC_FROM_GIT - +unset CANDI_ADOLC_LOAD_TARBALL BUILDCHAIN=autotools @@ -37,7 +43,7 @@ package_specific_register () { package_specific_conf () { # Generate configuration file CONFIG_FILE=${CONFIGURATION_PATH}/adolc-${VERSION} - rm -f $CONFIG_FILE + rm -f ${CONFIG_FILE} echo " export ADOLC_DIR=${INSTALL_PATH} " >> $CONFIG_FILE diff --git a/deal.II-toolchain/packages/arpack-ng.package b/deal.II-toolchain/packages/arpack-ng.package index fc6bcdb..6e40ef7 100644 --- a/deal.II-toolchain/packages/arpack-ng.package +++ b/deal.II-toolchain/packages/arpack-ng.package @@ -1,3 +1,7 @@ +################################################################################ +## ARPACK-NG ## +################################################################################ + VERSION=3.8.0 NAME=arpack-ng.git EXTRACTSTO=arpack-ng-${VERSION} @@ -9,21 +13,20 @@ BUILDDIR=${BUILD_PATH}/arpack-ng-${VERSION} INSTALL_PATH=${INSTALL_PATH}/arpack-ng-${VERSION} CONFOPTS="\ - -D CMAKE_INSTALL_LIBDIR=$INSTALL_PATH/lib \ - -D EXAMPLES=OFF \ - -D MPI=ON \ - -D BUILD_SHARED_LIBS=ON" + -D CMAKE_INSTALL_LIBDIR=${INSTALL_PATH}/lib \ + -D EXAMPLES:BOOL=OFF \ + -D MPI:BOOL=ON \ + -D BUILD_SHARED_LIBS:BOOL=ON" -package_specific_register () { - export ARPACK_DIR=${INSTALL_PATH} +package_specific_register() { + export ARPACK_DIR=${INSTALL_PATH} } -package_specific_conf () { - # Generate configuration file - CONFIG_FILE=${CONFIGURATION_PATH}/${NAME} - rm -f $CONFIG_FILE - echo " +package_specific_conf() { + # Generate configuration file + CONFIG_FILE=${CONFIGURATION_PATH}/${NAME} + rm -f $CONFIG_FILE + echo " export ARPACK_DIR=${INSTALL_PATH} -" >> $CONFIG_FILE +" >>$CONFIG_FILE } - diff --git a/deal.II-toolchain/packages/cmake.package b/deal.II-toolchain/packages/cmake.package index 6fe31ae..9788cde 100644 --- a/deal.II-toolchain/packages/cmake.package +++ b/deal.II-toolchain/packages/cmake.package @@ -1,30 +1,27 @@ -MAJOR=3.16 -MINOR=3 +MAJOR=3.20 +MINOR=5 VERSION=${MAJOR}.${MINOR} -# We try to determine if we have a linux platform to use tarball install -# instead of configure/make due to possible missing autotools on some -# HPC clusters. We need to do this, because tarball install on MacOS or -# other platforms is not maintainable by the candi authors. +if [ -z ${CANDI_CMAKE_LOAD_TARBALL} ]; then + CANDI_CMAKE_LOAD_TARBALL=ON +fi if [ -z "${PLATFORM_OSTYPE}" ]; then cecho ${WARN} "WARNING: could not determine your Operating System Type (assuming linux)" PLATFORM_OSTYPE=linux fi -if [ ${PLATFORM_OSTYPE} == "linux" ]; then +if [ ${CANDI_CMAKE_LOAD_TARBALL} = ON ] && [ ${PLATFORM_OSTYPE} == "linux" ]; then # tarball install - NAME=cmake-${VERSION}-Linux-x86_64 + NAME=cmake-${VERSION}-linux-x86_64 PACKING=.tar.gz - # CHECKSUM=55e30dd01698e9409b576008fd22394c # 3.11.2 - CHECKSUM=8f3dd8952ae9d532ae340c7d0f4cd1d7 # 3.16.3 + CHECKSUM=3adc4d6ab87b8d3b46fb5fe98612dd84 # 3.20.5 tarball linux BUILDCHAIN=ignore else # configure/make/install NAME=cmake-${VERSION} PACKING=.tar.gz - # CHECKSUM=d2d554c05fc07cfae7846d2aa205f12a # 3.11.2 - CHECKSUM=9e6fa59704d3a52812e279996b5b01c7 # 3.16.3 + CHECKSUM=137311bbe83d9a32469f99ac2792a2bc # 3.20.5 src if builtin command -v cmake > /dev/null; then # configure/make with cmake (older or newer version already installed) @@ -35,6 +32,8 @@ else fi fi +unset CANDI_CMAKE_LOAD_TARBALL + SOURCE=https://cmake.org/files/v${MAJOR}/ INSTALL_PATH=${INSTALL_PATH}/${NAME} diff --git a/deal.II-toolchain/packages/dealii-prepare.package b/deal.II-toolchain/packages/dealii-prepare.package index e03bcff..645c6c2 100644 --- a/deal.II-toolchain/packages/dealii-prepare.package +++ b/deal.II-toolchain/packages/dealii-prepare.package @@ -22,8 +22,11 @@ if [ ! -z "${PACKAGES_OFF}" ]; then cecho ${WARN} "deal.II: forcing package skip for: ${PACKAGES_OFF}" cecho ${INFO} "This is coming from your personal DEAL_II_CONFOPTS settings!" echo - cecho ${GOOD} "Please confirm this behaviour by pressing enter..." - read + + if [ ${USER_INTERACTION} = ON ]; then + cecho ${GOOD} "Please confirm this behaviour by pressing enter..." + read + fi fi # Check if we hit cmake-3.10+ and deal.II v8.5.1 configure error (MPI / FindMPI) diff --git a/deal.II-toolchain/packages/dealii.package b/deal.II-toolchain/packages/dealii.package index 3f490db..ccbd9a0 100644 --- a/deal.II-toolchain/packages/dealii.package +++ b/deal.II-toolchain/packages/dealii.package @@ -85,17 +85,24 @@ fi ################################################################################ # Add additional packages, if present -# arpack +######################################## +# ARPACK +if [[ ${PACKAGES_OFF} =~ 'arpack-ng' ]]; then + if [ ! -z "${ARPACK_DIR}" ]; then + cecho ${INFO} "deal.II: unset ARPACK_DIR due to forced DEAL_II_WITH_ARPACK:BOOL=OFF option" + unset ARPACK_DIR + fi +fi + if [ ! -z "${ARPACK_DIR}" ]; then cecho ${INFO} "deal.II: configuration with ARPACK" # We use a recent enough version of arpack, so PARPACK can be enabled # even though it is disabled by default, see # https://github.com/dealii/dealii/blob/master/cmake/modules/FindARPACK.cmake - CONFOPTS="\ - ${CONFOPTS} \ - -D DEAL_II_WITH_ARPACK:BOOL=ON \ - -D DEAL_II_ARPACK_WITH_PARPACK=ON \ - -D ARPACK_DIR=${ARPACK_DIR}" + CONFOPTS="${CONFOPTS} \ + -D DEAL_II_WITH_ARPACK:BOOL=ON \ + -D DEAL_II_ARPACK_WITH_PARPACK:BOOL=ON \ + -D ARPACK_DIR=${ARPACK_DIR}" fi # metis @@ -124,10 +131,9 @@ if [ ! -z "${MUMPS_DIR}" ]; then -D MUMPS_DIR=${MUMPS_DIR}" fi -# p4est +######################################## +# P4EST if [[ ${PACKAGES_OFF} =~ 'p4est' ]]; then - # Disable p4est for deal.II, if a special DEAL_II_CONFOPTS together with - # the dealii-prepare loop forces p4est to be off if [ ! -z "${P4EST_DIR}" ]; then cecho ${INFO} "deal.II: unset P4EST_DIR due to forced DEAL_II_WITH_P4EST:BOOL=OFF option" unset P4EST_DIR @@ -136,10 +142,9 @@ fi if [ ! -z "${P4EST_DIR}" ]; then cecho ${INFO} "deal.II: configuration with P4EST" - CONFOPTS="\ - ${CONFOPTS} \ - -D DEAL_II_WITH_P4EST:BOOL=ON \ - -D P4EST_DIR=${P4EST_DIR}" + CONFOPTS="${CONFOPTS} \ + -D DEAL_II_WITH_P4EST:BOOL=ON \ + -D P4EST_DIR=${P4EST_DIR}" fi # hdf5 @@ -212,10 +217,9 @@ if [ ! -z "${SLEPC_DIR}" ]; then -D SLEPC_DIR=${SLEPC_DIR}" fi -# opencascade +######################################## +# OPENCASCADE if [[ ${PACKAGES_OFF} =~ 'opencascade' ]]; then - # Disable OPENCASCADE for deal.II, if a special DEAL_II_CONFOPTS together with - # the dealii-prepare loop forces opencascade to be off if [ ! -z "${OPENCASCADE_DIR}" ]; then cecho ${INFO} "deal.II: unset OPENCASCADE_DIR due to forced DEAL_II_WITH_OPENCASCADE:BOOL=OFF option" unset OPENCASCADE_DIR @@ -224,9 +228,9 @@ fi if [ ! -z "${OPENCASCADE_DIR}" ]; then cecho ${INFO} "deal.II: configuration with OPENCASCADE" - CONFOPTS="\ - ${CONFOPTS} \ - -D DEAL_II_WITH_OPENCASCADE:BOOL=ON" + CONFOPTS="${CONFOPTS} \ + -D DEAL_II_WITH_OPENCASCADE:BOOL=ON \ + -D OPENCASCADE_DIR=${OPENCASCADE_DIR}" fi ######################################## @@ -260,16 +264,93 @@ if [ ! -z "${SYMENGINE_DIR}" ]; then -D DEAL_II_WITH_SYMENGINE:BOOL=ON" fi -################################################################################ +######################################## +# GINKGO +if [[ ${PACKAGES_OFF} =~ 'ginkgo' ]]; then + if [ ! -z "${GINKGO_DIR}" ]; then + cecho ${INFO} "deal.II: unset GINKGO_DIR due to forced DEAL_II_WITH_GINKGO:BOOL=OFF option" + unset GINKGO_DIR + fi +fi +if [ ! -z "${GINKGO_DIR}" ]; then + cecho ${INFO} "deal.II: configuration with GINKGO" + CONFOPTS="${CONFOPTS} \ + -D DEAL_II_WITH_GINKGO:BOOL=ON \ + -D GINKGO_DIR=${GINKGO_DIR}" +fi + +######################################## +# SYMENGINE +if [[ ${PACKAGES_OFF} =~ 'symengine' ]]; then + if [ ! -z "${SYMENGINE_DIR}" ]; then + cecho ${INFO} "deal.II: unset SYMENGINE_DIR due to forced DEAL_II_WITH_SYMENGINE:BOOL=OFF option" + unset SYMENGINE_DIR + fi +fi + +if [ ! -z "${SYMENGINE_DIR}" ]; then + cecho ${INFO} "deal.II: configuration with SYMENGINE" + CONFOPTS="${CONFOPTS} \ + -D DEAL_II_WITH_SYMENGINE:BOOL=ON \ + -D SYMENGINE_DIR=${SYMENGINE_DIR}" +fi + +######################################## +# GMSH +if [[ ${PACKAGES_OFF} =~ 'gmsh' ]]; then + if [ ! -z "${GMSH_DIR}" ]; then + cecho ${INFO} "deal.II: unset GMSH_DIR due to forced DEAL_II_WITH_GMSH:BOOL=OFF option" + unset GMSH_DIR + fi +fi + +if [ ! -z "${GMSH_DIR}" ]; then + cecho ${INFO} "deal.II: configuration with GMSH" + CONFOPTS="${CONFOPTS} \ + -D DEAL_II_WITH_GMSH:BOOL=ON \ + -D GMSH_DIR=${GMSH_DIR}" +fi + +######################################## +# ADOLC +if [[ ${PACKAGES_OFF} =~ 'adolc' ]]; then + if [ ! -z "${ADOLC_DIR}" ]; then + cecho ${INFO} "deal.II: unset ADOLC_DIR due to forced DEAL_II_WITH_ADOLC:BOOL=OFF option" + unset ADOLC_DIR + fi +fi + +if [ ! -z "${ADOLC_DIR}" ]; then + cecho ${INFO} "deal.II: configuration with ADOLC" + CONFOPTS="${CONFOPTS} \ + -D DEAL_II_WITH_ADOLC:BOOL=ON \ + -D ADOLC_DIR=${ADOLC_DIR}" +fi + +######################################## +# SUNDIALS +if [[ ${PACKAGES_OFF} =~ 'sundials' ]]; then + if [ ! -z "${SUNDIALS_DIR}" ]; then + cecho ${INFO} "deal.II: unset SUNDIALS_DIR due to forced DEAL_II_WITH_SUNDIALS:BOOL=OFF option" + unset SUNDIALS_DIR + fi +fi + +if [ ! -z "${SUNDIALS_DIR}" ]; then + cecho ${INFO} "deal.II: configuration with SUNDIALS" + CONFOPTS="${CONFOPTS} \ + -D DEAL_II_WITH_SUNDIALS:BOOL=ON \ + -D SUNDIALS_DIR=${SUNDIALS_DIR}" +fi + +################################################################################ package_specific_install() { if [ ${RUN_DEAL_II_TESTS} = ON ]; then make test 2>&1 | tee candi_test.log fi } - - package_specific_conf() { ############################################################################ # Generate modulefile diff --git a/deal.II-toolchain/packages/default.packages b/deal.II-toolchain/packages/default.packages deleted file mode 100644 index 7e62724..0000000 --- a/deal.II-toolchain/packages/default.packages +++ /dev/null @@ -1,12 +0,0 @@ -PACKAGES=( -load:dealii-prepare -once:opencascade -once:parmetis -once:superlu_dist -once:hdf5 -once:p4est -once:trilinos -once:petsc -once:slepc -dealii -) diff --git a/deal.II-toolchain/packages/gmsh.package b/deal.II-toolchain/packages/gmsh.package index 0765582..68d6471 100644 --- a/deal.II-toolchain/packages/gmsh.package +++ b/deal.II-toolchain/packages/gmsh.package @@ -1,39 +1,63 @@ -# see http://gmsh.info/src/ -VERSION=3.0.6 -CHECKSUM=78bbfdd695b29cfef18a99f93226afc5 +################################################################################ +## GMSH ## +################################################################################ -#VERSION=2.16.0 -#CHECKSUM=762c10f159dab4b042e3140b1c348427 +# By default load the tarball. +# To load the git repository define a variable CANDI_GMSH_LOAD_TARBALL=OFF. +if [ -z ${CANDI_GMSH_LOAD_TARBALL} ]; then + CANDI_GMSH_LOAD_TARBALL=ON +fi -NAME=gmsh-${VERSION}-source -PACKING=.tgz -SOURCE=http://gmsh.info/src/ -EXTRACTSTO=gmsh-${VERSION}-source +if [ ${CANDI_GMSH_LOAD_TARBALL} = ON ]; then + # see http://gmsh.info/src/ + + # 2021/04/28 + VERSION=4.8.4 + CHECKSUM=760dbdc072eaa3c82d066c5ba3b06eacdd3304eb2a97373fe4ada9509f0b6ace + CHECKSUM="${CHECKSUM} 465d965d40049c00dab65a196115fe56e1d9d147" + CHECKSUM="${CHECKSUM} 1e7212dfb1319d745ffb477a7a3ff124" + + # VERSION=3.0.6 + # CHECKSUM=78bbfdd695b29cfef18a99f93226afc5 + + # VERSION=2.16.0 + # CHECKSUM=762c10f159dab4b042e3140b1c348427 + + NAME=gmsh-${VERSION}-source + PACKING=.tgz + EXTRACTSTO=gmsh-${VERSION}-source + SOURCE=http://gmsh.info/src/ +else + VERSION=gmsh_4_8_4 + NAME=gmsh.git + PACKING=git + EXTRACTSTO=${VERSION} + SOURCE=https://gitlab.onelab.info/gmsh/ +fi +unset CANDI_GMSH_LOAD_TARBALL BUILDCHAIN=cmake BUILDDIR=${BUILD_PATH}/${EXTRACTSTO} INSTALL_PATH=${INSTALL_PATH}/gmsh-${VERSION} -# Disable slepc because gmsh is not setting the relative path for the -# .so correctly. - -CONFOPTS=" -D ENABLE_MPI=OFF \ - -D CMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE \ - -D ENABLE_PETSC=OFF \ - -D ENABLE_SLEPC=OFF \ - -D CMAKE_BUILD_TYPE=Release" +CONFOPTS="\ + -D ENABLE_MPI:BOOL=OFF \ + -D CMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=ON \ + -D ENABLE_PETSC:BOOL=OFF \ + -D CMAKE_BUILD_TYPE=Release" -# options we might consider setting: +# Manually-specified variables were not used by the project (v4.8.3+): +# -D ENABLE_SLEPC:BOOL=OFF +# Options we might consider setting: # -D ENABLE_METIS=OFF # -D ENABLE_FLTK=OFF # -D ENABLE_OCC=OFF # -D ENABLE_COMPRESSED_IO=O -# the following two sadly don't install the .so correctly: +# The following two sadly don't install the .so correctly: # -D ENABLE_BUILD_SHARED=ON # -D ENABLE_BUILD_DYNAMIC=ON - package_specific_register () { export GMSH_DIR=${INSTALL_PATH} export PATH=${INSTALL_PATH}/bin:$PATH diff --git a/deal.II-toolchain/packages/mumps.package b/deal.II-toolchain/packages/mumps.package new file mode 100644 index 0000000..dd73efc --- /dev/null +++ b/deal.II-toolchain/packages/mumps.package @@ -0,0 +1,85 @@ +################################################################################ +## MUMPS ## +################################################################################ + +VERSION=5.4.0.5 +EXTRACTSTO=mumps-${VERSION} + +NAME=v${VERSION} +PACKING=.tar.gz + +SOURCE=https://github.com/scivision/mumps/archive/ +CHECKSUM=0cd3bd9ad9860f7c0092cd561931a36e + +BUILDCHAIN=cmake + +BUILDDIR=${BUILD_PATH}/mumps-${VERSION} +INSTALL_PATH=${INSTALL_PATH}/mumps-${VERSION} + +# Set compilers & compiler options +if [ ! -z "${CC}" ]; then + CONFOPTS="${CONFOPTS} \ + -D CMAKE_C_COMPILER=${CC}" +fi + +if [ ! -z "${CXX}" ]; then + CONFOPTS="${CONFOPTS} \ + -D CMAKE_CXX_COMPILER=${CXX}" +fi + +if [ ! -z "${FC}" ]; then + CONFOPTS="${CONFOPTS} \ + -D CMAKE_Fortran_COMPILER=${FC}" +fi + +CONFOPTS="${CONFOPTS} \ + -D CMAKE_C_FLAGS:STRING='-fPIC -g -O3' \ + -D CMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON" + +if [ ${MKL} = ON ]; then + # When MKL is provided, MUMPS will search for the required packages by itself. + # Therefore we only need to set MKLROOT. + CONFOPTS="${CONFOPTS} \ + -D MKLROOT=${MKL_DIR}" +else + if [ ! -z "${BLAS_DIR}" ]; then + CONFOPTS="${CONFOPTS} \ + -D pc_blas_LIBRARY_DIRS=${BLAS_DIR}/lib " + fi + + if [ ! -z "${LAPACK_DIR}" ]; then + CONFOPTS="${CONFOPTS} \ + -D pc_lapack_LIBRARY_DIRS=${LAPACK_DIR}/lib" + fi + + if [ ! -z "${SCALAPACK_DIR}" ]; then + CONFOPTS="${CONFOPTS} \ + -D pc_scalapack_LIBRARY_DIRS=${SCALAPACK_DIR}/lib" + else + # auto build missing packages + CONFOPTS="${CONFOPTS} -D autobuild=true" + fi +fi + +# Set metis directories +if [ ! -z "${METIS_DIR}" ]; then + CONFOPTS="${CONFOPTS} \ + -D metis=true \ + -D METIS_LIBRARY=${METIS_DIR}/lib/libmetis.so \ + -D METIS_INCLUDE_DIR=${METIS_DIR}/include \ + -D PARMETIS_LIBRARY=${PARMETIS_DIR}/lib/libparmetis.so " +fi + + +package_specific_register () { + export MUMPS_DIR=${INSTALL_PATH} +} + +package_specific_conf () { + # Generate configuration file + CONFIG_FILE=${CONFIGURATION_PATH}/${EXTRACTSTO} + rm -f $CONFIG_FILE + echo " +export MUMPS_DIR=${INSTALL_PATH} +" >> $CONFIG_FILE +} diff --git a/deal.II-toolchain/packages/opencascade.package b/deal.II-toolchain/packages/opencascade.package index 595efb6..eae3068 100644 --- a/deal.II-toolchain/packages/opencascade.package +++ b/deal.II-toolchain/packages/opencascade.package @@ -1,54 +1,61 @@ -# NOTE: uncomment the following line to use the git repository -# and not a release tarball: -#CANDI_OPENCASCADE_FROM_GIT=1 +################################################################################ +## OPENCASCADE ## +################################################################################ -if [ -n "$CANDI_OPENCASCADE_FROM_GIT" ]; then +# By default load the tarball. +# To load the git repository define a variable CANDI_OPENCASCADE_LOAD_TARBALL=OFF. +if [ -z ${CANDI_OPENCASCADE_LOAD_TARBALL} ]; then + CANDI_OPENCASCADE_LOAD_TARBALL=ON +fi + +if [ ${CANDI_OPENCASCADE_LOAD_TARBALL} = ON ]; then + # download release tarball + VERSION=0.18.3 + CHECKSUM=c553d6a7bf52f790abc3b6bb7a1e91a65947e92a426bb1a88a11960c31f0966c + CHECKSUM="${CHECKSUM} 452c8e26a469e8b0ba6cdd800848a0b406648b1b" + CHECKSUM="${CHECKSUM} 1686393c8493bbbb2f3f242330b33cba" + + # VERSION=0.18.2 + # CHECKSUM=6dfd68e459e2c62387579888a867281f + + # VERSION=0.18.1 + # CHECKSUM=2a7597f4243ee1f03245aeeb02d00956 + + # VERSION=0.17 + # CHECKSUM=f1a89395c4b0d199bea3db62b85f818d + + NAME=OCE-${VERSION} + SOURCE=https://github.com/tpaviot/oce/archive/ + EXTRACTSTO=oce-OCE-${VERSION} + PACKING=.tar.gz +else # download git repository (huge download) - # if possible, try to download a release tarball (see below) - + # checkout specific release version - # VERSION=OCE-0.18.2 - # checkout current development version (master) VERSION=master - - if [ "${VERSION}" = "master" ]; then - EXTRACTSTO=OCE-master - fi - + #VERSION=OCE-0.18.3 + #VERSION=OCE-0.18.2 + # set up git repository NAME=oce.git PACKING=git + EXTRACTSTO=OCE-${VERSION} SOURCE=https://github.com/tpaviot/ - -else - # download release tarball - - #VERSION=0.17 - #CHECKSUM=f1a89395c4b0d199bea3db62b85f818d - #VERSION=0.18.1 - #CHECKSUM=2a7597f4243ee1f03245aeeb02d00956 - VERSION=0.18.2 - CHECKSUM=6dfd68e459e2c62387579888a867281f - - NAME=OCE-${VERSION} - PACKING=.tar.gz - SOURCE=https://github.com/tpaviot/oce/archive/ - EXTRACTSTO=oce-OCE-${VERSION} fi -unset CANDI_OPENCASCADE_FROM_GIT +unset CANDI_OPENCASCADE_LOAD_TARBALL BUILDCHAIN=cmake BUILDDIR=${BUILD_PATH}/${EXTRACTSTO} INSTALL_PATH=${INSTALL_PATH}/${EXTRACTSTO} -CONFOPTS="-D OCE_INSTALL_PREFIX=${INSTALL_PATH} \ - -D OCE_VISUALISATION=OFF \ - -D OCE_DISABLE_TKSERVICE_FONT=ON \ - -D OCE_DATAEXCHANGE=ON \ - -D OCE_OCAF=OFF \ - -D OCE_DISABLE_X11=ON \ -" +CONFOPTS="\ + -D OCE_INSTALL_PREFIX=${INSTALL_PATH} \ + -D OCE_VISUALISATION:BOOL=OFF \ + -D OCE_DISABLE_TKSERVICE_FONT:BOOL=ON \ + -D OCE_DATAEXCHANGE:BOOL=ON \ + -D OCE_OCAF:BOOL=OFF \ + -D OCE_DISABLE_X11:BOOL=ON" package_specific_patch () { cd ${UNPACK_PATH}/${EXTRACTSTO} diff --git a/deal.II-toolchain/packages/p4est.package b/deal.II-toolchain/packages/p4est.package index e357a60..3cba833 100644 --- a/deal.II-toolchain/packages/p4est.package +++ b/deal.II-toolchain/packages/p4est.package @@ -1,3 +1,7 @@ +################################################################################ +## P4EST ## +################################################################################ + #VERSION=1.1;CHECKSUM=37ba7f4410958cfb38a2140339dbf64f #VERSION=2.0;CHECKSUM=1b7440a78a28ebf713361acfea70ee78 @@ -6,16 +10,17 @@ CHECKSUM=1549cbeba29bee2c35e7cc50a90a04961da5f23b6eada9c8047f511b90a8e438 CHECKSUM="${CHECKSUM} 28cbaf51a335c8cc8e78bb38bbb99251ba7ebf80" CHECKSUM="${CHECKSUM} 6943949a6678589ebf1686ee7bad7ea1" -NAME=p4est-$VERSION +NAME=p4est-${VERSION} +PACKING=.tar.gz EXTRACTSTO=p4est-${VERSION} SOURCE=https://p4est.github.io/release/ -PACKING=.tar.gz + BUILDCHAIN=custom INSTALL_PATH=${INSTALL_PATH}/${NAME} -package_specific_setup () { - function bdie () { +package_specific_setup() { + function bdie() { echo "Error: $@" exit 1 } @@ -30,93 +35,93 @@ package_specific_setup () { if [ -z "${ZLIB_INCLUDE}" ]; then ZLIB_INCLUDE=${ZLIB_DIR}/include fi - CFLAGS="$CFLAGS -I${ZLIB_INCLUDE}" + CFLAGS="${CFLAGS} -I${ZLIB_INCLUDE}" fi - if test -z "$CFLAGS" -a -z "$P4EST_CFLAGS_FAST" ; then + if test -z "${CFLAGS}" -a -z "${P4EST_CFLAGS_FAST}"; then export CFLAGS_FAST="-O2" else - export CFLAGS_FAST="$CFLAGS $P4EST_CFLAGS_FAST" + export CFLAGS_FAST="${CFLAGS} ${P4EST_CFLAGS_FAST}" fi - echo "CFLAGS_FAST: $CFLAGS_FAST" - - if test -z "$CFLAGS" -a -z "$P4EST_CFLAGS_DEBUG" ; then + echo "CFLAGS_FAST: ${CFLAGS_FAST}" + + if test -z "${CFLAGS}" -a -z "${P4EST_CFLAGS_DEBUG}"; then export CFLAGS_DEBUG="-O0 -g" else - export CFLAGS_DEBUG="$CFLAGS $P4EST_CFLAGS_DEBUG" + export CFLAGS_DEBUG="${CFLAGS} ${P4EST_CFLAGS_DEBUG}" fi - echo "CFLAGS_DEBUG: $CFLAGS_DEBUG" + echo "CFLAGS_DEBUG: ${CFLAGS_DEBUG}" - # choose names for fast and debug build directories + # Choose names for fast and debug build directories BUILD_FAST="${BUILD_PATH}/${NAME}/FAST" BUILD_DEBUG="${BUILD_PATH}/${NAME}/DEBUG" - - # choose names for fast and debug installation directories + + # Choose names for fast and debug installation directories INSTALL_FAST="${INSTALL_PATH}/FAST" INSTALL_DEBUG="${INSTALL_PATH}/DEBUG" - + echo echo "This script tries configure and build the p4est library." - echo "Build FAST: $BUILD_FAST" - echo "Build DEBUG: $BUILD_DEBUG" - echo "Install FAST: $INSTALL_FAST" - echo "Install DEBUG: $INSTALL_DEBUG" + echo "Build FAST: ${BUILD_FAST}" + echo "Build DEBUG: ${BUILD_DEBUG}" + echo "Install FAST: ${INSTALL_FAST}" + echo "Install DEBUG: ${INSTALL_DEBUG}" echo "Checking environment: CFLAGS P4EST_CFLAGS_FAST P4EST_CFLAGS_DEBUG" - + test -f "${UNPACK_PATH}/${EXTRACTSTO}/src/p4est.h" || bdie "Main header file missing" test -f "${UNPACK_PATH}/${EXTRACTSTO}/configure" || bdie "Configure script missing" - + echo "See output in files .../config.output and .../make.output" echo - + # remove old versions if test -d "${BUILD_PATH}/${NAME}"; then rm -rf "${BUILD_PATH}/${NAME}" quit_if_fail "p4est: rm -rf ${BUILD_PATH}/${NAME} failed" fi - - echo "Build FAST version in $BUILD_FAST" - mkdir -p "$BUILD_FAST" - cd "$BUILD_FAST" + + echo "Build FAST version in ${BUILD_FAST}" + mkdir -p "${BUILD_FAST}" + cd "${BUILD_FAST}" "${UNPACK_PATH}/${EXTRACTSTO}/configure" --enable-mpi --enable-shared \ --disable-vtk-binary --without-blas \ - --prefix="$INSTALL_FAST" CFLAGS="$CFLAGS_FAST" \ - CPPFLAGS="-DSC_LOG_PRIORITY=SC_LP_ESSENTIAL" F77="$FF" \ - "$@" > config.output || bdie "Error in configure" - make -C sc -j${JOBS} > make.output || bdie "Error in make sc" - make -j${JOBS} >> make.output || bdie "Error in make p4est" - make install >> make.output || bdie "Error in make install" - echo "FAST version installed in $INSTALL_FAST" - + --prefix="${INSTALL_FAST}" CFLAGS="${CFLAGS_FAST}" \ + CPPFLAGS="-DSC_LOG_PRIORITY=SC_LP_ESSENTIAL" F77="${FF}" \ + "$@" >config.output || bdie "Error in configure" + make -C sc -j${JOBS} >make.output || bdie "Error in make sc" + make -j${JOBS} >>make.output || bdie "Error in make p4est" + make install >>make.output || bdie "Error in make install" + echo "FAST version installed in ${INSTALL_FAST}" + echo - echo "Build DEBUG version in $BUILD_DEBUG" - mkdir -p "$BUILD_DEBUG" - cd "$BUILD_DEBUG" + echo "Build DEBUG version in ${BUILD_DEBUG}" + mkdir -p "${BUILD_DEBUG}" + cd "${BUILD_DEBUG}" "${UNPACK_PATH}/${EXTRACTSTO}/configure" --enable-debug --enable-mpi --enable-shared \ --disable-vtk-binary --without-blas \ - --prefix="$INSTALL_DEBUG" CFLAGS="$CFLAGS_DEBUG" \ - CPPFLAGS="-DSC_LOG_PRIORITY=SC_LP_ESSENTIAL" F77="$FF" \ - "$@" > config.output || bdie "Error in configure" - make -C sc -j${JOBS} > make.output || bdie "Error in make sc" - make -j${JOBS} >> make.output || bdie "Error in make p4est" - make install >> make.output || bdie "Error in make install" - grep -q "#define P4EST_HAVE_ZLIB" $INSTALL_DEBUG/include/p4est_config.h || bdie "Error: p4est couldn't find zlib" - echo "DEBUG version installed in $INSTALL_DEBUG" + --prefix="${INSTALL_DEBUG}" CFLAGS="${CFLAGS_DEBUG}" \ + CPPFLAGS="-DSC_LOG_PRIORITY=SC_LP_ESSENTIAL" F77="${FF}" \ + "$@" >config.output || bdie "Error in configure" + make -C sc -j${JOBS} >make.output || bdie "Error in make sc" + make -j${JOBS} >>make.output || bdie "Error in make p4est" + make install >>make.output || bdie "Error in make install" + grep -q "#define P4EST_HAVE_ZLIB" ${INSTALL_DEBUG}/include/p4est_config.h || bdie "Error: p4est couldn't find zlib" + echo "DEBUG version installed in ${INSTALL_DEBUG}" echo - + cd "${BUILD_PATH}/${NAME}" touch candi_successful_build } -package_specific_register () { +package_specific_register() { export P4EST_DIR=${INSTALL_PATH} } -package_specific_conf () { +package_specific_conf() { # Generate configuration file CONFIG_FILE=${CONFIGURATION_PATH}/${NAME} - rm -f $CONFIG_FILE + rm -f ${CONFIG_FILE} echo " export P4EST_DIR=${INSTALL_PATH} -" >> $CONFIG_FILE +" >>${CONFIG_FILE} } diff --git a/deal.II-toolchain/packages/parmetis.package b/deal.II-toolchain/packages/parmetis.package index 56bf695..99cc283 100644 --- a/deal.II-toolchain/packages/parmetis.package +++ b/deal.II-toolchain/packages/parmetis.package @@ -25,7 +25,7 @@ package_specific_build() { # Secondly build parmetis cd .. - make config prefix=${INSTALL_PATH} shared=1 cc=$CC cxx=$CXX + make config prefix=${INSTALL_PATH} shared=1 cc=${CC} cxx=${CXX} quit_if_fail "parmetis make config failed" make -j${JOBS} diff --git a/deal.II-toolchain/packages/petsc.package b/deal.II-toolchain/packages/petsc.package index bc48cbf..f409cce 100644 --- a/deal.II-toolchain/packages/petsc.package +++ b/deal.II-toolchain/packages/petsc.package @@ -42,24 +42,24 @@ for external_pkg in hypre; do CONFOPTS="${CONFOPTS} --download-${external_pkg}=1" done -if [ ! -z "$CC" ]; then - CONFOPTS="${CONFOPTS} CC=$CC" +if [ ! -z "${CC}" ]; then + CONFOPTS="${CONFOPTS} CC=${CC}" fi -if [ ! -z "$CXX" ]; then - CONFOPTS="${CONFOPTS} CXX=$CXX" +if [ ! -z "${CXX}" ]; then + CONFOPTS="${CONFOPTS} CXX=${CXX}" fi -if [ ! -z "$FC" ]; then - CONFOPTS="${CONFOPTS} FC=$FC" +if [ ! -z "${FC}" ]; then + CONFOPTS="${CONFOPTS} FC=${FC}" fi -if [ ! -z "$F77" ]; then - CONFOPTS="${CONFOPTS} F77=$F77" +if [ ! -z "${F77}" ]; then + CONFOPTS="${CONFOPTS} F77=${F77}" fi -if [ ! -z "$F90" ]; then - CONFOPTS="${CONFOPTS} F90=$F90" +if [ ! -z "${F90}" ]; then + CONFOPTS="${CONFOPTS} F90=${F90}" fi if [ ! -z "${MKL_DIR}" ]; then @@ -80,10 +80,23 @@ if [ ! -z "${PARMETIS_DIR}" ]; then ${CONFOPTS} \ --with-parmetis-dir=${PARMETIS_DIR} \ --with-metis-dir=${PARMETIS_DIR}" +fi + +if [ ! -z "${SCALAPACK_DIR}" ]; then + cecho ${INFO} "PETSc: configuration with SCALAPACK" + CONFOPTS="\ + ${CONFOPTS} \ + --with-scalapack-dir=${SCALAPACK_DIR}" +else + CONFOPTS="${CONFOPTS} --download-scalapack=1" +fi - for external_pkg in scalapack mumps; do - CONFOPTS="${CONFOPTS} --download-${external_pkg}=1" - done +if [ ! -z "${MUMPS_DIR}" ]; then + cecho ${INFO} "PETSc: configuration with MUMPS" + CONFOPTS="${CONFOPTS} \ + --with-mumps-dir=${MUMPS_DIR}" +else + CONFOPTS="${CONFOPTS} --download-mumps=1" fi ######################################################################### @@ -104,7 +117,7 @@ package_specific_setup () { package_specific_register () { export PETSC_DIR=${INSTALL_PATH} - if [ ! -z "${PARMETIS_DIR}" ]; then + if [ ! -z "${SCALAPACK_DIR}" ]; then export SCALAPACK_DIR=${INSTALL_PATH} fi } @@ -116,7 +129,7 @@ package_specific_conf () { echo " export PETSC_DIR=${INSTALL_PATH} " >> $CONFIG_FILE - if [ ! -z "${PARMETIS_DIR}" ]; then + if [ ! -z "${SCALAPACK_DIR}" ]; then echo "export SCALAPACK_DIR=${INSTALL_PATH}" >> $CONFIG_FILE fi } diff --git a/deal.II-toolchain/packages/scalapack.package b/deal.II-toolchain/packages/scalapack.package new file mode 100644 index 0000000..6d6c251 --- /dev/null +++ b/deal.II-toolchain/packages/scalapack.package @@ -0,0 +1,93 @@ +################################################################################ +## ScaLAPACK ## +################################################################################ + +VERSION=2.1.0 +EXTRACTSTO=scalapack-${VERSION} + +NAME=v${VERSION} +PACKING=.tar.gz + +SOURCE=https://github.com/Reference-ScaLAPACK/scalapack/archive/ +CHECKSUM=e9ae970238030fa1e8ee022a9d3e6fbb + +BUILDCHAIN=cmake + +BUILDDIR=${BUILD_PATH}/scalapack-${VERSION} +INSTALL_PATH=${INSTALL_PATH}/scalapack-${VERSION} + + + +# Set compilers & compiler options +if [ ! -z "${CC}" ]; then + CONFOPTS="${CONFOPTS} \ + -D CMAKE_C_COMPILER=${CC}" +fi + +if [ ! -z "${CXX}" ]; then + CONFOPTS="${CONFOPTS} \ + -D CMAKE_CXX_COMPILER=${CXX}" +fi + +if [ ! -z "${FC}" ]; then + CONFOPTS="${CONFOPTS} \ + -D CMAKE_Fortran_COMPILER=${FC}" +fi + +# Set Fortran flags +if [ -n ${FC} ]; then + FORTRAN_MAJOR_VERSION=$(echo __GNUC__ | ${FC} -E -xc - | tail -n 1) + if [ ${FORTRAN_MAJOR_VERSION} > 9 ]; then + CONFOPTS="${CONFOPTS} \ + -D CMAKE_Fortran_FLAGS='-g -O3 -fallow-argument-mismatch' " + else + CONFOPTS="${CONFOPTS} \ + -D CMAKE_Fortran_FLAGS='-g -O3' " + fi +fi + + +# Set C flags +CONFOPTS="${CONFOPTS} \ + -D CMAKE_C_FLAGS:STRING='-fPIC -g -O3 ' \ + -D CMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON" + +# Set intel MKL options +if [ "${MKL}" = "ON" ]; then + cecho ${INFO} "MUMPS: configuration with MKL" + + CONFOPTS="\ + ${CONFOPTS} \ + -D MKLROOT=${MKL_DIR}" +else + # Set blas and lapack directories (if MKL is not used) + if [ ! -z "${BLAS_DIR}" ]; then + cecho ${INFO} "SCALAPACK: configuration with BLAS_DIR=${BLAS_DIR}" + CONFOPTS="${CONFOPTS} \ + -D BLAS_LIBRARY_DIRS:STRING=${BLAS_DIR}" + fi + + if [ ! -z "${LAPACK_DIR}" ]; then + cecho ${INFO} "SCALAPACK: configuration with LAPACK_DIR=${LAPACK_DIR}" + CONFOPTS="${CONFOPTS} \ + -D LAPACK_LIBRARY_DIRS:STRING=${LAPACK_DIR}" + fi +fi + +# BLACS is provided by ScaLAPACK +package_specific_register () { + export SCALAPACK_DIR=${INSTALL_PATH} + # only export the BLACS dir when MKL is not provided, so we do not override the MKL BLACS_DIR + if [ ${MKL} = OFF ]; then + export BLACS_DIR=${INSTALL_PATH}/lib + fi +} + +package_specific_conf () { + # Generate configuration file + CONFIG_FILE=${CONFIGURATION_PATH}/${EXTRACTSTO} + rm -f $CONFIG_FILE + echo " +export SCALAPACK_DIR=${INSTALL_PATH} +" >> $CONFIG_FILE +} diff --git a/deal.II-toolchain/packages/sundials.package b/deal.II-toolchain/packages/sundials.package index 8884015..f1c0a52 100644 --- a/deal.II-toolchain/packages/sundials.package +++ b/deal.II-toolchain/packages/sundials.package @@ -1,28 +1,59 @@ -VERSION=3.1.0 -NAME=sundials-${VERSION} -EXTRACTSTO=sundials-${VERSION} -SOURCE=https://computation.llnl.gov/projects/sundials/download/ -CHECKSUM=1a84ca41c7f71067e03d519ddbcd9dae -PACKING=.tar.gz +################################################################################ +## SUNDIALS ## +################################################################################ + +# By default load the tarball. +# To load the git repository define a variable CANDI_SUNDIALS_LOAD_TARBALL=OFF. +if [ -z ${CANDI_SUNDIALS_LOAD_TARBALL} ]; then + CANDI_SUNDIALS_LOAD_TARBALL=ON +fi + +if [ ${CANDI_SUNDIALS_LOAD_TARBALL} = ON ]; then + # 2021/07/01 + VERSION=5.7.0 + CHECKSUM=48da7baa8152ddb22aed1b02d82d1dbb4fbfea22acf67634011aa0303a100a43 + CHECKSUM="${CHECKSUM} c04ecc9102851955b62e626a43ad5f604e890ab0" + CHECKSUM="${CHECKSUM} 483784dab433f178e79072bbed98c38c" + + # VERSION=3.1.0 + # CHECKSUM=1a84ca41c7f71067e03d519ddbcd9dae + + NAME=sundials-${VERSION} + PACKING=.tar.gz + EXTRACTSTO=sundials-${VERSION} + SOURCE=https://github.com/LLNL/sundials/releases/download/v${VERSION}/ +else + + VERSION=v5.7.0 + # VERSION=v3.2.1 + + NAME=sundials + PACKING=git + SOURCE=https://github.com/LLNL/ + EXTRACTSTO=${NAME}-${VERSION} +fi +unset CANDI_SUNDIALS_LOAD_TARBALL + BUILDCHAIN=cmake BUILDDIR=${BUILD_PATH}/sundials-${VERSION} INSTALL_PATH=${INSTALL_PATH}/sundials-${VERSION} -CONFOPTS="-D CMAKE_INSTALL_PREFIX=${INSTALL_PATH} \ - -D MPI_ENABLE=ON \ - -D BUILD_SHARED_LIBS=ON" +# In versions prior to v5.7.0 the deprecated options MPI_ENABLE instead of the +# new ENABLE_MPI option was used. +CONFOPTS="\ + -D ENABLE_MPI:BOOL=ON \ + -D BUILD_SHARED_LIBS:BOOL=ON" -package_specific_register () { +package_specific_register() { export SUNDIALS_DIR=${INSTALL_PATH} } -package_specific_conf () { +package_specific_conf() { # Generate configuration file CONFIG_FILE=${CONFIGURATION_PATH}/${NAME} rm -f $CONFIG_FILE echo " export SUNDIALS_DIR=${INSTALL_PATH} -" >> $CONFIG_FILE +" >>$CONFIG_FILE } - diff --git a/deal.II-toolchain/packages/superlu_dist.package b/deal.II-toolchain/packages/superlu_dist.package index 70d319c..6c26753 100644 --- a/deal.II-toolchain/packages/superlu_dist.package +++ b/deal.II-toolchain/packages/superlu_dist.package @@ -6,9 +6,9 @@ VERSION=5.1.2 CHECKSUM=0a99bbb5f6c26a9c1d7ab17ea35d4e6f NAME=superlu_dist_${VERSION} +PACKING=.tar.gz EXTRACTSTO=SuperLU_DIST_${VERSION} SOURCE=http://crd-legacy.lbl.gov/~xiaoye/SuperLU/ -PACKING=.tar.gz BUILDCHAIN=cmake diff --git a/deal.II-toolchain/packages/symengine.package b/deal.II-toolchain/packages/symengine.package index 066168a..9be8309 100644 --- a/deal.II-toolchain/packages/symengine.package +++ b/deal.II-toolchain/packages/symengine.package @@ -2,8 +2,11 @@ ## SYMENGINE ## ################################################################################ -# Option {ON|OFF}: Choose whether to load the tarball or the git repository. -CANDI_SYMENGINE_LOAD_TARBALL=OFF +# By default load the tarball. +# To load the git repository define a variable CANDI_SYMENGINE_LOAD_TARBALL=OFF. +if [ -z ${CANDI_SYMENGINE_LOAD_TARBALL} ]; then + CANDI_SYMENGINE_LOAD_TARBALL=ON +fi if [ ${CANDI_SYMENGINE_LOAD_TARBALL} = ON ]; then # download release tarball diff --git a/deal.II-toolchain/packages/trilinos.package b/deal.II-toolchain/packages/trilinos.package index 1934e40..9ba3c4a 100644 --- a/deal.II-toolchain/packages/trilinos.package +++ b/deal.II-toolchain/packages/trilinos.package @@ -90,8 +90,24 @@ if [ ! -z "${LAPACK_DIR}" ]; then -D LAPACK_LIBRARY_DIRS:STRING=${LAPACK_DIR}" fi +if [ ! -z "${SCALAPACK_DIR}" ]; then + cecho ${INFO} "trilinos: configuration with SCALAPACK_DIR=${SCALAPACK_DIR}" + CONFOPTS="\ + ${CONFOPTS} \ + -D TPL_ENABLE_SCALAPACK:BOOL=ON \ + -D SCALAPACK_LIBRARY_DIRS=${SCALAPACK_DIR}/lib" +fi + +if [ ! -z "${MUMPS_DIR}" ]; then + cecho ${INFO} "trilinos: configuration with MUMPS_DIR=${MUMPS_DIR}" + CONFOPTS="${CONFOPTS} \ + -D TPL_ENABLE_MUMPS=ON \ + -D MUMPS_INCLUDE_DIRS:STRING=${MUMPS_DIR}/include \ + -D MUMPS_LIBRARY_DIRS:STRING=${MUMPS_DIR}/lib" +fi + # Set intel MKL options -if [ "${MKL}" = "ON" ]; then +if [ ${MKL} = ON ]; then cecho ${INFO} "trilinos: configuration with MKL" if [ -z "${BLAS_DIR}" ] && [ -z "${LAPACK_DIR}" ]; then @@ -140,8 +156,7 @@ fi CONFOPTS="${CONFOPTS} \ -D CMAKE_CXX_FLAGS:STRING='-fPIC -g -O3' \ -D CMAKE_C_FLAGS:STRING='-fPIC -g -O3' \ - -D CMAKE_FORTRAN_FLAGS:STRING='-g -O3' \ - -D Trilinos_EXTRA_LINK_FLAGS:STRING='-lgfortran'" + -D CMAKE_FORTRAN_FLAGS:STRING='-g -O3'" # Add ParMETIS, if present if [ ! -z "${PARMETIS_DIR}" ]; then @@ -183,16 +198,10 @@ CONFOPTS="\ -D Trilinos_ENABLE_Ifpack:BOOL=ON \ -D Trilinos_ENABLE_Ifpack2:BOOL=OFF \ -D Trilinos_ENABLE_Tpetra:BOOL=ON \ - -D Tpetra_INST_DOUBLE:BOOL=ON \ -D Tpetra_INST_INT_LONG:BOOL=ON \ - -D Tpetra_INST_COMPLEX_DOUBLE:BOOL=ON \ - -D Tpetra_INST_COMPLEX_FLOAT:BOOL=ON \ - -D Tpetra_INST_FLOAT:BOOL=ON \ - -D Tpetra_INST_SERIAL:BOOL=ON \ -D Trilinos_ENABLE_AztecOO:BOOL=ON \ -D Trilinos_ENABLE_Sacado:BOOL=ON \ -D Trilinos_ENABLE_Teuchos:BOOL=ON \ - -D Teuchos_ENABLE_COMPLEX:BOOL=ON \ -D Teuchos_ENABLE_FLOAT:BOOL=ON \ -D Trilinos_ENABLE_MueLu:BOOL=ON \ -D Trilinos_ENABLE_ML:BOOL=ON \ @@ -205,7 +214,18 @@ CONFOPTS="\ -D CMAKE_BUILD_TYPE:STRING=RELEASE \ -D CMAKE_VERBOSE_MAKEFILE:BOOL=OFF \ -D BUILD_SHARED_LIBS:BOOL=ON \ - ${CONFOPTS} \ + ${CONFOPTS}" + +if [ ${TRILINOS_WITH_COMPLEX} = ON ]; then + CONFOPTS="\ + -D Trilinos_ENABLE_COMPLEX_DOUBLE=ON \ + -D Trilinos_ENABLE_COMPLEX_FLOAT=ON \ + -D Teuchos_ENABLE_COMPLEX:BOOL=ON \ + ${CONFOPTS}" +fi + +# finally append user options: +CONFOPTS="${CONFOPTS} \ ${TRILINOS_CONFOPTS}" package_specific_register () { diff --git a/deal.II-toolchain/platforms/.single b/deal.II-toolchain/platforms/.single deleted file mode 100644 index e69de29..0000000 diff --git a/deal.II-toolchain/platforms/contributed/cray.platform b/deal.II-toolchain/platforms/contributed/cray.platform index b078096..35fc230 100644 --- a/deal.II-toolchain/platforms/contributed/cray.platform +++ b/deal.II-toolchain/platforms/contributed/cray.platform @@ -18,28 +18,27 @@ # export CXX=CC # export FC=ftn # export FF=ftn -# +# ## PACKAGES="load:dealii-prepare once:cmake once:p4est once:trilinos once:parmetis once:petsc dealii" -TRILINOS_CONFOPTS=" \ --D BUILD_SHARED_LIBS=ON \ --D BLAS_LIBRARY_DIRS=$CRAY_LIBSCI_PREFIX_DIR/lib \ --D BLAS_INCLUDE_DIRS=$CRAY_LIBSCI_PREFIX_DIR/include \ --D BLAS_LIBRARY_NAMES=sci_gnu \ --D LAPACK_LIBRARY_DIRS=$CRAY_LIBSCI_PREFIX_DIR/lib \ --D LAPACK_INCLUDE_DIRS=$CRAY_LIBSCI_PREFIX_DIR/include \ --D LAPACK_LIBRARY_NAMES=sci_gnu" - -DEAL_II_CONFOPTS=" \ --D DEAL_II_COMPILER_HAS_FUSE_LD_GOLD=OFF \ --D DEAL_II_WITH_LAPACK=OFF \ --D DEAL_II_WITH_BLAS=OFF \ --D DEAL_II_WITH_GSL=OFF \ --D DEAL_II_WITH_BZIP2=OFF \ --D DEAL_II_FORCE_BUNDLED_BOOST=ON \ --D DEAL_II_WITH_UMFPACK=OFF \ --D MPI_INCLUDE_PATH=$MPICH_DIR/include \ --D MPI_CXX_LIBRARIES=\"$MPICH_DIR/lib/libmpichcxx.so;$MPICH_DIR/lib/libmpich.so\" " +TRILINOS_CONFOPTS="\ + -D BUILD_SHARED_LIBS:BOOL=ON \ + -D BLAS_LIBRARY_DIRS=${CRAY_LIBSCI_PREFIX_DIR}/lib \ + -D BLAS_INCLUDE_DIRS=${CRAY_LIBSCI_PREFIX_DIR}/include \ + -D BLAS_LIBRARY_NAMES=sci_gnu \ + -D LAPACK_LIBRARY_DIRS=${CRAY_LIBSCI_PREFIX_DIR}/lib \ + -D LAPACK_INCLUDE_DIRS=${CRAY_LIBSCI_PREFIX_DIR}/include \ + -D LAPACK_LIBRARY_NAMES=sci_gnu" +DEAL_II_CONFOPTS="\ + -D DEAL_II_COMPILER_HAS_FUSE_LD_GOLD:BOOL=OFF \ + -D DEAL_II_WITH_LAPACK:BOOL=OFF \ + -D DEAL_II_WITH_BLAS:BOOL=OFF \ + -D DEAL_II_WITH_GSL:BOOL=OFF \ + -D DEAL_II_WITH_BZIP2:BOOL=OFF \ + -D DEAL_II_FORCE_BUNDLED_BOOST:BOOL=ON \ + -D DEAL_II_WITH_UMFPACK:BOOL=OFF \ + -D MPI_INCLUDE_PATH=${MPICH_DIR}/include \ + -D MPI_CXX_LIBRARIES=\"${MPICH_DIR}/lib/libmpichcxx.so;${MPICH_DIR}/lib/libmpich.so\" " diff --git a/deal.II-toolchain/platforms/deprecated/fedora23.platform b/deal.II-toolchain/platforms/deprecated/fedora23.platform deleted file mode 100644 index 844000a..0000000 --- a/deal.II-toolchain/platforms/deprecated/fedora23.platform +++ /dev/null @@ -1,22 +0,0 @@ -# Fedora 23 - -# This build script assumes that you have several packages already -# installed via Fedora's dnf using the following command: -# -# $ sudo dnf install \ -# @development-tools gcc-c++ cmake openmpi openmpi-devel splint \ -# patch libtool lua lua-devel \ -# blas blas-devel lapack lapack-devel \ -# doxygen graphviz graphviz-devel qt-devel \ -# metis metis-devel -# -# Please load the 'openmpi' compiler with -# $ module load mpi/openmpi-x86_64 -# and then set the compiler enviroment variables to -# $ export CC=mpicc; export CXX=mpicxx; export FC=mpif90; export FF=mpif77 -# before you continue! -## - -# -# Define the additional packages for this platform. -#PACKAGES="once:cmake ${PACKAGES}" diff --git a/deal.II-toolchain/platforms/deprecated/ubuntu12.platform b/deal.II-toolchain/platforms/deprecated/ubuntu12.platform deleted file mode 100644 index 4c87c33..0000000 --- a/deal.II-toolchain/platforms/deprecated/ubuntu12.platform +++ /dev/null @@ -1,27 +0,0 @@ -# ubuntu 12 -# -# This build script assumes that you have several packages already -# installed via ubuntu's apt-get using the following commands: -# -# > sudo apt-get install build-essential wget automake autoconf gfortran \ -# openmpi-bin openmpi-common libopenmpi-dev cmake subversion \ -# git libblas-dev liblapack-dev libblas3gf liblapack3gf \ -# libsuitesparse-dev libtool libboost-all-dev \ -# tcl tcl-dev splint qt4-dev-tools -# -# Then run candi again. -## - -# The default compiler on ubuntu12 does not support Trilinos 12. -# Anyhow, the user can decide to use Trilinos 11 or 12, if the -# version number is not set to AUTO. -# The last point is due to own compilers (e.g. intel) which support -# Trilinos 12. -if [ ${TRILINOS_MAJOR_VERSION} == "AUTO" ]; then - TRILINOS_MAJOR_VERSION=11 -fi - -# -# Define the additional packages for this platform. -#PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/deprecated/ubuntu14.platform b/deal.II-toolchain/platforms/deprecated/ubuntu14.platform deleted file mode 100644 index 7ee026d..0000000 --- a/deal.II-toolchain/platforms/deprecated/ubuntu14.platform +++ /dev/null @@ -1,30 +0,0 @@ -# ubuntu 14 -# -# This build script assumes that you have several packages already -# installed via ubuntu's apt-get using the following commands: -# -# > sudo apt-get install build-essential wget automake autoconf gfortran \ -# openmpi-bin openmpi-common libopenmpi-dev cmake subversion \ -# git libblas-dev liblapack-dev libblas3gf liblapack3gf \ -# libsuitesparse-dev libtool libboost-all-dev \ -# splint tcl tcl-dev environment-modules qt4-dev-tools -# -# Then run candi again. -## - -# The default compiler on ubuntu14 does not support Trilinos 12 -# together with deal.II v8.3.0. -# Note: this issue is resolved in the current development trunc -# of deal.II (v8.4pre). -# Anyhow, the user can decide to use Trilinos 11 or 12, if the -# version number is not set to AUTO. -# The last point is due to own compilers (e.g. intel) which support -# Trilinos 12. -if [ ${DEAL_II_VERSION} ~= "master" ] && [ ${DEAL_II_VERSION} == "v8.3.0" ] && [ ${TRILINOS_MAJOR_VERSION} == "AUTO" ]; then - TRILINOS_MAJOR_VERSION=11 -fi - -# -# Define the additional packages for this platform. -#PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/deprecated/ubuntu15.platform b/deal.II-toolchain/platforms/deprecated/ubuntu15.platform deleted file mode 100644 index e4aaf70..0000000 --- a/deal.II-toolchain/platforms/deprecated/ubuntu15.platform +++ /dev/null @@ -1,18 +0,0 @@ -# ubuntu 15 -# -# This build script assumes that you have several packages already -# installed via ubuntu's apt-get using the following commands: -# -# > sudo apt-get install build-essential automake autoconf gfortran \ -# openmpi-bin openmpi-common libopenmpi-dev cmake subversion git \ -# libblas-dev liblapack-dev libblas3gf liblapack3gf splint tcl tcl-dev \ -# environment-modules libsuitesparse-dev libtool libboost-all-dev \ -# qt4-dev-tools -# -# Then reboot and run candi again. -## - -# -# Define the additional packages for this platform. -#PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/deprecated/ubuntu17.platform b/deal.II-toolchain/platforms/deprecated/ubuntu17.platform deleted file mode 100644 index 3be159c..0000000 --- a/deal.II-toolchain/platforms/deprecated/ubuntu17.platform +++ /dev/null @@ -1,19 +0,0 @@ -# ubuntu 17 -# -# This build script assumes that you have several packages already -# installed via ubuntu's apt-get using the following commands: -# -# > sudo apt-get install build-essential lsb-release wget \ -# automake autoconf gfortran \ -# openmpi-bin openmpi-common libopenmpi-dev cmake subversion git \ -# libblas-dev liblapack-dev libblas3 liblapack3 \ -# libsuitesparse-dev libtool libboost-all-dev zlib1g-dev \ -# splint tcl tcl-dev environment-modules qt4-dev-tools -# -# Then run candi again. -## - -# -# Define the additional packages for this platform. -#PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/supported/arch.platform b/deal.II-toolchain/platforms/supported/arch.platform index 3df0229..1d2c519 100644 --- a/deal.II-toolchain/platforms/supported/arch.platform +++ b/deal.II-toolchain/platforms/supported/arch.platform @@ -3,14 +3,13 @@ # This build script assumes that you have several packages already # installed via pacman using the following command: # -# $ sudo pacman -Syu core/gcc extra/openmpi extra/cmake \ -# core/make core/awk core/which core/sed core/gcc-fortran \ -# core/grep core/file core/binutils core/diffutils extra/git \ -# extra/lapack +# > sudo pacman -Syu core/gcc extra/openmpi extra/cmake \ +# core/make core/awk core/which core/sed core/gcc-fortran \ +# core/grep core/file core/binutils core/diffutils extra/git \ +# extra/lapack # ## # # Define the additional packages for this platform. #PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/supported/centos7.platform b/deal.II-toolchain/platforms/supported/centos7.platform index b1bfe3f..4f16b61 100644 --- a/deal.II-toolchain/platforms/supported/centos7.platform +++ b/deal.II-toolchain/platforms/supported/centos7.platform @@ -3,32 +3,38 @@ # This build script assumes that you have several packages already # installed via CentOS's yum using the following command: # -# sudo yum install patch svn git wget \ -# @development-tools gcc-c++ cmake \ -# centos-release-scl devtoolset-9 \ -# openmpi openmpi-devel \ -# patch \ -# libtool libtool-ltdl libtool-ltdl-devel \ -# lua lua-devel \ -# blas blas-devel lapack lapack-devel \ -# doxygen graphviz graphviz-devel qt-devel -# +# > sudo yum install patch svn git wget \ +# @development-tools gcc-c++ cmake \ +# centos-release-scl devtoolset-9 \ +# openmpi openmpi-devel \ +# patch \ +# libtool libtool-ltdl libtool-ltdl-devel \ +# lua lua-devel \ +# blas blas-devel lapack lapack-devel \ +# doxygen graphviz graphviz-devel qt-devel \ +# gmp-devel +# # Be sure to switch to the recent compilers with -# $ scl enable devtoolset-9 bash +# +# > scl enable devtoolset-9 bash +# # Please load the 'openmpi' compiler with -# $ module load mpi/openmpi-x86_64 +# +# > module load mpi/openmpi-x86_64 +# # and then set the compiler enviroment variables to -# $ export CC=mpicc; export CXX=mpicxx; export FC=mpif90; export FF=mpif77 +# +# > export CC=mpicc; export CXX=mpicxx; export FC=mpif90; export FF=mpif77 +# # before you continue! ## -# on centos 7 the candi installed parmetis 4.0.3 is not recognized correctly +# on CentOS 7 the candi installed parmetis 4.0.3 is not recognized correctly # for trilinos 12-10-1. We force to assume parmetis version 4.0.3. TRILINOS_PARMETIS_CONFOPTS="\ ${TRILINOS_PARMETIS_CONFOPTS} \ - -D HAVE_PARMETIS_VERSION_4_0_3=ON" + -D HAVE_PARMETIS_VERSION_4_0_3:BOOL=ON" # # Define the additional packages for this platform. PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/supported/debian9.platform b/deal.II-toolchain/platforms/supported/debian.platform similarity index 81% rename from deal.II-toolchain/platforms/supported/debian9.platform rename to deal.II-toolchain/platforms/supported/debian.platform index cac5086..a5f9ccf 100644 --- a/deal.II-toolchain/platforms/supported/debian9.platform +++ b/deal.II-toolchain/platforms/supported/debian.platform @@ -1,4 +1,4 @@ -# debian 9 +# Debian # # This build script assumes that you have several packages already # installed via debian's apt-get using the following commands: @@ -7,18 +7,17 @@ # openmpi-bin openmpi-common libopenmpi-dev cmake subversion git \ # libblas-dev liblapack-dev libblas3 liblapack3 splint tcl tcl-dev \ # environment-modules libsuitesparse-dev libtool libboost-all-dev \ -# qt4-dev-tools +# qt4-dev-tools libgmp-dev # # Then reboot and run candi again. ## -# on debian 9 the candi installed parmetis 4.0.3 is not recognized correctly +# On Debian the candi installed parmetis 4.0.3 is not recognized correctly # for trilinos 12-10-1. We force to assume parmetis version 4.0.3. TRILINOS_PARMETIS_CONFOPTS="\ ${TRILINOS_PARMETIS_CONFOPTS} \ - -D HAVE_PARMETIS_VERSION_4_0_3=ON" + -D HAVE_PARMETIS_VERSION_4_0_3:BOOL=ON" # # Define the additional packages for this platform. #PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/deprecated/fedora22.platform b/deal.II-toolchain/platforms/supported/fedora.platform similarity index 50% rename from deal.II-toolchain/platforms/deprecated/fedora22.platform rename to deal.II-toolchain/platforms/supported/fedora.platform index 290e917..ef570aa 100644 --- a/deal.II-toolchain/platforms/deprecated/fedora22.platform +++ b/deal.II-toolchain/platforms/supported/fedora.platform @@ -1,19 +1,23 @@ -# Fedora 22 +# Fedora # This build script assumes that you have several packages already # installed via Fedora's dnf using the following command: # -# $ sudo dnf install \ -# @development-tools gcc-c++ cmake openmpi openmpi-devel splint \ -# patch libtool lua lua-devel \ -# blas blas-devel lapack lapack-devel \ -# doxygen graphviz graphviz-devel qt-devel \ -# metis metis-devel -# +# > sudo dnf install \ +# @development-tools gcc-c++ cmake patch libtool lua lua-devel \ +# doxygen graphviz graphviz-devel \ +# blas blas-devel lapack lapack-devel \ +# openmpi openmpi-devel \ +# metis metis-devel +# # Please load the 'openmpi' compiler with -# $ module load mpi/openmpi-x86_64 +# +# > module load mpi/openmpi-x86_64 +# # and then set the compiler enviroment variables to -# $ export CC=mpicc; export CXX=mpicxx; export FC=mpif90; export FF=mpif77 +# +# > export CC=mpicc; export CXX=mpicxx; export FC=mpif90; export FF=mpif77 +# # before you continue! ## diff --git a/deal.II-toolchain/platforms/supported/fedora26.platform b/deal.II-toolchain/platforms/supported/fedora26.platform deleted file mode 100644 index aea6a6f..0000000 --- a/deal.II-toolchain/platforms/supported/fedora26.platform +++ /dev/null @@ -1,23 +0,0 @@ -# Fedora 26 - -# This build script assumes that you have several packages already -# installed via Fedora's dnf using the following command: -# -# $ sudo dnf install \ -# @development-tools gcc-c++ cmake openmpi openmpi-devel splint \ -# patch libtool lua lua-devel \ -# blas blas-devel lapack lapack-devel \ -# doxygen graphviz graphviz-devel qt-devel \ -# metis metis-devel -# -# Please load the 'openmpi' compiler with -# $ module load mpi/openmpi-x86_64 -# and then set the compiler enviroment variables to -# $ export CC=mpicc; export CXX=mpicxx; export FC=mpif90; export FF=mpif77 -# before you continue! -## - -# -# Define the additional packages for this platform. -#PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/supported/fedora27.platform b/deal.II-toolchain/platforms/supported/fedora27.platform deleted file mode 100644 index e141d8f..0000000 --- a/deal.II-toolchain/platforms/supported/fedora27.platform +++ /dev/null @@ -1,23 +0,0 @@ -# Fedora 27 - -# This build script assumes that you have several packages already -# installed via Fedora's dnf using the following command: -# -# $ sudo dnf install \ -# @development-tools gcc-c++ cmake openmpi openmpi-devel splint \ -# patch libtool lua lua-devel \ -# blas blas-devel lapack lapack-devel \ -# doxygen graphviz graphviz-devel qt-devel \ -# metis metis-devel -# -# Please load the 'openmpi' compiler with -# $ module load mpi/openmpi-x86_64 -# and then set the compiler enviroment variables to -# $ export CC=mpicc; export CXX=mpicxx; export FC=mpif90; export FF=mpif77 -# before you continue! -## - -# -# Define the additional packages for this platform. -#PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/supported/fedora28.platform b/deal.II-toolchain/platforms/supported/fedora28.platform deleted file mode 100644 index 81e51f4..0000000 --- a/deal.II-toolchain/platforms/supported/fedora28.platform +++ /dev/null @@ -1,23 +0,0 @@ -# Fedora 28 - -# This build script assumes that you have several packages already -# installed via Fedora's dnf using the following command: -# -# $ sudo dnf install \ -# @development-tools gcc-c++ cmake openmpi openmpi-devel splint \ -# patch libtool lua lua-devel \ -# blas blas-devel lapack lapack-devel \ -# doxygen graphviz graphviz-devel qt-devel \ -# metis metis-devel -# -# Please load the 'openmpi' compiler with -# $ module load mpi/openmpi-x86_64 -# and then set the compiler enviroment variables to -# $ export CC=mpicc; export CXX=mpicxx; export FC=mpif90; export FF=mpif77 -# before you continue! -## - -# -# Define the additional packages for this platform. -#PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/supported/fedora29.platform b/deal.II-toolchain/platforms/supported/fedora29.platform deleted file mode 100644 index 8720ab3..0000000 --- a/deal.II-toolchain/platforms/supported/fedora29.platform +++ /dev/null @@ -1,23 +0,0 @@ -# Fedora 29 - -# This build script assumes that you have several packages already -# installed via Fedora's dnf using the following command: -# -# $ sudo dnf install \ -# @development-tools gcc-c++ cmake openmpi openmpi-devel splint \ -# patch libtool lua lua-devel \ -# blas blas-devel lapack lapack-devel \ -# doxygen graphviz graphviz-devel qt-devel \ -# metis metis-devel -# -# Please load the 'openmpi' compiler with -# $ module load mpi/openmpi-x86_64 -# and then set the compiler enviroment variables to -# $ export CC=mpicc; export CXX=mpicxx; export FC=mpif90; export FF=mpif77 -# before you continue! -## - -# -# Define the additional packages for this platform. -#PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/supported/linux_cluster.platform b/deal.II-toolchain/platforms/supported/linux_cluster.platform index b1ebfd7..60b11d5 100644 --- a/deal.II-toolchain/platforms/supported/linux_cluster.platform +++ b/deal.II-toolchain/platforms/supported/linux_cluster.platform @@ -1,21 +1,24 @@ # linux -# +# # This build script assumes that you have at least the packages: +# # automake, autoconf, cmake, gcc, openmpi, blas, lapack, and # git, cmake, zlib and bzip2 +# # installed. -# +# # The packages +# # git, cmake, zlib and bzip2 +# # can be installed with candi by selecting them in the candi.cfg file. -# +# # Please note that this platform description is only a hint for # dependencies and cannot ensure a successful build. Look into other # platform descriptions for further dependencies. -# +# ## # # Define the additional packages for this platform. #PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/supported/macos.platform b/deal.II-toolchain/platforms/supported/macos.platform new file mode 100644 index 0000000..2ba2cb6 --- /dev/null +++ b/deal.II-toolchain/platforms/supported/macos.platform @@ -0,0 +1,26 @@ +# macOS +# +# Detailed Installation Notes: +# - Install Xcode from AppStore, open it and accept the license. +# - Open Terminal, and install Xcode command line tools via +# $ xcode-select --install +# and then run +# $ xcodebuild -license +# and accept the license. +# +# - Install Homebrew in a Terminal via +# $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" +# +# - Install the following via Homebrew +# $ brew install cmake gcc@11 openmpi +# +# - Export compiler environment +# $ export CC=mpicc; export CXX=mpicxx; export FC=mpifort; export FF=mpifort; \ +# OMPI_CC=gcc-11; export OMPI_CXX=g++-11; export OMPI_FC=gfortran-11 +# +# Run candi again! +# +# If you encounter runtime problems with missing *.dylib libraries, +# you may change the security policy for developments. To do so, +# enable Terminal in System Preferences / Security & Privacy / Developer Tools . +## diff --git a/deal.II-toolchain/platforms/supported/macos_bigsur.platform b/deal.II-toolchain/platforms/supported/macos_bigsur.platform new file mode 100644 index 0000000..95802d3 --- /dev/null +++ b/deal.II-toolchain/platforms/supported/macos_bigsur.platform @@ -0,0 +1,32 @@ +# macOS Big Sur (11.4, 11.5) +# +# macOS support is experimental and requires: +# - xcode with command line tools +# - cmake, gfortran, openmpi +# +# Detailed Installation Notes +# - Install Xcode from AppStore, open it and accept the license. +# - Open Terminal, and install Xcode command line tools via +# xcode-select --install +# +# and then run +# xcodebuild -license +# +# and accept the license +# +# Install Homebrew in a Terminal via +# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" +# +# Install the following via Homebrew +# brew install cmake +# brew install gcc@11 +# brew install openmpi +# +# Export compiler environment +# export OMPI_CC=gcc-11; export OMPI_CXX=g++-11 +# export OMPI_FC=gfortran-11 +# export CC=mpicc; export CXX=mpicxx; export FC=mpifort; export FF=mpifort +# +# Run candi again! +# +## diff --git a/deal.II-toolchain/platforms/supported/catalina.platform b/deal.II-toolchain/platforms/supported/macos_catalina.platform similarity index 100% rename from deal.II-toolchain/platforms/supported/catalina.platform rename to deal.II-toolchain/platforms/supported/macos_catalina.platform diff --git a/deal.II-toolchain/platforms/supported/elcapitan.platform b/deal.II-toolchain/platforms/supported/macos_elcapitan.platform similarity index 97% rename from deal.II-toolchain/platforms/supported/elcapitan.platform rename to deal.II-toolchain/platforms/supported/macos_elcapitan.platform index 62bb54b..b56781a 100644 --- a/deal.II-toolchain/platforms/supported/elcapitan.platform +++ b/deal.II-toolchain/platforms/supported/macos_elcapitan.platform @@ -4,7 +4,7 @@ # - a recent version of xcode with command line tools # - openmpi installed using homebrew and # - cmake -# +# # Detailed Installation Notes: # - install Xcode from AppStore, open it and accept the license. # - Open Terminal, and install Xcode command line tools via @@ -12,27 +12,26 @@ # and then run # $ xcodebuild -license # to accept the license. -# +# # Install Homebrew in a Terminal via # $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" -# +# # Install the following via Homebrew # $ brew install cmake # $ brew install openmpi -# +# # (Optional) Install the following via Homebrew # $ brew install wget # $ brew install gnuplot -# +# # $ brew install bash # and follow the shell activation notes. -# +# # $ brew install modules # and follow the activation notes to use the modulefile configuration. -# +# ## # # Define the additional packages for this platform. #PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/supported/highsierra.platform b/deal.II-toolchain/platforms/supported/macos_highsierra.platform similarity index 97% rename from deal.II-toolchain/platforms/supported/highsierra.platform rename to deal.II-toolchain/platforms/supported/macos_highsierra.platform index 0d54c34..d768911 100644 --- a/deal.II-toolchain/platforms/supported/highsierra.platform +++ b/deal.II-toolchain/platforms/supported/macos_highsierra.platform @@ -4,7 +4,7 @@ # - a recent version of xcode with command line tools # - openmpi installed using homebrew and # - cmake -# +# # Detailed Installation Notes: # - install Xcode from AppStore, open it and accept the license. # - Open Terminal, and install Xcode command line tools via @@ -12,23 +12,22 @@ # and then run # $ xcodebuild -license # to accept the license. -# +# # Install Homebrew in a Terminal via # $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" -# +# # Install the following via Homebrew # $ brew install cmake # $ brew install openmpi -# +# # (Optional) Install the following via Homebrew # $ brew install wget # $ brew install gnuplot -# +# # $ brew install bash # and follow the shell activation notes. -# +# # $ brew install modules # and follow the activation notes to use the modulefile configuration. -# +# ## - diff --git a/deal.II-toolchain/platforms/supported/mojave.platform b/deal.II-toolchain/platforms/supported/macos_mojave.platform similarity index 100% rename from deal.II-toolchain/platforms/supported/mojave.platform rename to deal.II-toolchain/platforms/supported/macos_mojave.platform diff --git a/deal.II-toolchain/platforms/supported/sierra.platform b/deal.II-toolchain/platforms/supported/macos_sierra.platform similarity index 97% rename from deal.II-toolchain/platforms/supported/sierra.platform rename to deal.II-toolchain/platforms/supported/macos_sierra.platform index 1b14dd3..202a98d 100644 --- a/deal.II-toolchain/platforms/supported/sierra.platform +++ b/deal.II-toolchain/platforms/supported/macos_sierra.platform @@ -4,7 +4,7 @@ # - a recent version of xcode with command line tools # - openmpi installed using homebrew and # - cmake -# +# # Detailed Installation Notes: # - install Xcode from AppStore, open it and accept the license. # - Open Terminal, and install Xcode command line tools via @@ -12,23 +12,22 @@ # and then run # $ xcodebuild -license # to accept the license. -# +# # Install Homebrew in a Terminal via # $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" -# +# # Install the following via Homebrew # $ brew install cmake # $ brew install openmpi --c++11 --with-mpi-thread-multiple -# +# # (Optional) Install the following via Homebrew # $ brew install wget # $ brew install gnuplot -# +# # $ brew install bash # and follow the shell activation notes. -# +# # $ brew install modules # and follow the activation notes to use the modulefile configuration. -# +# ## - diff --git a/deal.II-toolchain/platforms/supported/rhel7.platform b/deal.II-toolchain/platforms/supported/rhel7.platform index 379c2ee..a2c6377 100644 --- a/deal.II-toolchain/platforms/supported/rhel7.platform +++ b/deal.II-toolchain/platforms/supported/rhel7.platform @@ -3,28 +3,31 @@ # This build script assumes that you have several packages already # installed via RHEL's yum using the following command: # -# sudo yum install svn git wget \ -# @development-tools gcc-c++ cmake \ -# patch \ -# libtool libtool-ltdl libtool-ltdl-devel \ -# lua lua-devel \ -# blas blas-devel lapack lapack-devel \ -# doxygen graphviz graphviz-devel qt-devel -# +# > sudo yum install svn git wget \ +# @development-tools gcc-c++ cmake \ +# patch \ +# libtool libtool-ltdl libtool-ltdl-devel \ +# lua lua-devel \ +# blas blas-devel lapack lapack-devel \ +# doxygen graphviz graphviz-devel qt-devel +# # Please load the 'openmpi' compiler with -# $ module load mpi/openmpi-x86_64 +# +# > module load mpi/openmpi-x86_64 +# # and then set the compiler enviroment variables to -# $ export CC=mpicc; export CXX=mpicxx; export FC=mpif90; export FF=mpif77 +# +# > export CC=mpicc; export CXX=mpicxx; export FC=mpif90; export FF=mpif77 +# # before you continue! ## -# on rhel 7 the candi installed parmetis 4.0.3 is not recognized correctly +# On RHEL 7 the candi installed parmetis 4.0.3 is not recognized correctly # for trilinos 12-10-1. We force to assume parmetis version 4.0.3. TRILINOS_PARMETIS_CONFOPTS="\ ${TRILINOS_PARMETIS_CONFOPTS} \ - -D HAVE_PARMETIS_VERSION_4_0_3=ON" + -D HAVE_PARMETIS_VERSION_4_0_3:BOOL=ON" # # Define the additional packages for this platform. #PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/supported/ubuntu.platform b/deal.II-toolchain/platforms/supported/ubuntu.platform new file mode 100644 index 0000000..3213bcb --- /dev/null +++ b/deal.II-toolchain/platforms/supported/ubuntu.platform @@ -0,0 +1,33 @@ +# Ubuntu +# +# This build script assumes that you have several packages already +# installed via ubuntu's apt-get using the following commands: +# +# sudo apt-get install lsb-release git subversion wget bc libgmp-dev \ +# build-essential autoconf automake cmake libtool gfortran python \ +# libboost-all-dev zlib1g-dev \ +# openmpi-bin openmpi-common libopenmpi-dev \ +# libblas3 libblas-dev liblapack3 liblapack-dev libsuitesparse-dev +# +# Then run candi again. +# +# If the default compiler is older than the hardware generation, a newer +# compiler version is necessary to use native optimizations. +# For example, to update the GNU Compiler Collection from the default v9 to +# v10, install the new compilers +# +# sudo apt-get install gcc-10 g++-10 gfortran-10 +# +# and update the symbolic links to gcc, g++ and gfortran by +# +# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 10 \ +# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 20 +# +# update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 10 \ +# update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 20 +# +# update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-9 10 \ +# update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-10 20 +# +# with super-user privileges and invoke an operating system update. +## diff --git a/deal.II-toolchain/platforms/supported/ubuntu16.platform b/deal.II-toolchain/platforms/supported/ubuntu16.platform deleted file mode 100644 index be44182..0000000 --- a/deal.II-toolchain/platforms/supported/ubuntu16.platform +++ /dev/null @@ -1,19 +0,0 @@ -# ubuntu 16 LTS -# -# This build script assumes that you have several packages already -# installed via ubuntu's apt-get using the following commands: -# -# > sudo apt-get install build-essential lsb-release wget \ -# bc python automake autoconf gfortran \ -# openmpi-bin openmpi-common libopenmpi-dev cmake subversion git \ -# libblas-dev liblapack-dev libblas3 liblapack3 \ -# libsuitesparse-dev libtool libboost-all-dev zlib1g-dev \ -# splint tcl tcl-dev environment-modules qt4-dev-tools -# -# Then run candi again. -## - -# -# Define the additional packages for this platform. -#PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/supported/ubuntu18.platform b/deal.II-toolchain/platforms/supported/ubuntu18.platform deleted file mode 100644 index 454824a..0000000 --- a/deal.II-toolchain/platforms/supported/ubuntu18.platform +++ /dev/null @@ -1,19 +0,0 @@ -# ubuntu 18 LTS -# -# This build script assumes that you have several packages already -# installed via ubuntu's apt-get using the following commands: -# -# > sudo apt-get install build-essential lsb-release wget \ -# bc python automake autoconf gfortran \ -# openmpi-bin openmpi-common libopenmpi-dev cmake subversion git \ -# libblas-dev liblapack-dev libblas3 liblapack3 \ -# libsuitesparse-dev libtool libboost-all-dev zlib1g-dev \ -# splint tcl tcl-dev environment-modules qt4-dev-tools -# -# Then run candi again. -## - -# -# Define the additional packages for this platform. -#PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/supported/ubuntu19.platform b/deal.II-toolchain/platforms/supported/ubuntu19.platform deleted file mode 100644 index 3b8416d..0000000 --- a/deal.II-toolchain/platforms/supported/ubuntu19.platform +++ /dev/null @@ -1,18 +0,0 @@ -# ubuntu 19 -# -# This build script assumes that you have several packages already -# installed via ubuntu's apt-get using the following commands: -# -# > sudo apt-get install build-essential lsb-release wget \ -# bc python automake autoconf gfortran \ -# openmpi-bin openmpi-common libopenmpi-dev cmake subversion git \ -# libblas-dev liblapack-dev libblas3 liblapack3 \ -# libsuitesparse-dev libtool libboost-all-dev zlib1g-dev -# -# Then run candi again. -## - -# -# Define the additional packages for this platform. -#PACKAGES="once:cmake ${PACKAGES}" - diff --git a/deal.II-toolchain/platforms/supported/ubuntu20.platform b/deal.II-toolchain/platforms/supported/ubuntu20.platform deleted file mode 100644 index 527b827..0000000 --- a/deal.II-toolchain/platforms/supported/ubuntu20.platform +++ /dev/null @@ -1,19 +0,0 @@ -# ubuntu 20.04 -# -# This build script assumes that you have several packages already -# installed via ubuntu's apt-get using the following commands: -# -# > sudo apt-get install build-essential lsb-release wget \ -# bc python automake autoconf gfortran \ -# openmpi-bin openmpi-common libopenmpi-dev cmake subversion git \ -# libblas-dev liblapack-dev libblas3 liblapack3 \ -# libsuitesparse-dev libtool libboost-all-dev zlib1g-dev \ -# libgmp-dev -# -# Then run candi again. -## - -# -# Define the additional packages for this platform. -#PACKAGES="once:cmake ${PACKAGES}" -