]> https://gitweb.dealii.org/ - candi.git/commitdiff
merge from master
authorTimo Heister <timo.heister@gmail.com>
Sun, 22 Aug 2021 22:17:04 +0000 (18:17 -0400)
committerTimo Heister <timo.heister@gmail.com>
Sun, 22 Aug 2021 22:17:04 +0000 (18:17 -0400)
52 files changed:
.github/workflows/main.yml
.gitignore
AUTHORS
README.md
candi.cfg
candi.sh
deal.II-toolchain/packages/adolc.package
deal.II-toolchain/packages/arpack-ng.package
deal.II-toolchain/packages/cmake.package
deal.II-toolchain/packages/dealii-prepare.package
deal.II-toolchain/packages/dealii.package
deal.II-toolchain/packages/default.packages [deleted file]
deal.II-toolchain/packages/gmsh.package
deal.II-toolchain/packages/mumps.package [new file with mode: 0644]
deal.II-toolchain/packages/opencascade.package
deal.II-toolchain/packages/p4est.package
deal.II-toolchain/packages/parmetis.package
deal.II-toolchain/packages/petsc.package
deal.II-toolchain/packages/scalapack.package [new file with mode: 0644]
deal.II-toolchain/packages/sundials.package
deal.II-toolchain/packages/superlu_dist.package
deal.II-toolchain/packages/symengine.package
deal.II-toolchain/packages/trilinos.package
deal.II-toolchain/platforms/.single [deleted file]
deal.II-toolchain/platforms/contributed/cray.platform
deal.II-toolchain/platforms/deprecated/fedora23.platform [deleted file]
deal.II-toolchain/platforms/deprecated/ubuntu12.platform [deleted file]
deal.II-toolchain/platforms/deprecated/ubuntu14.platform [deleted file]
deal.II-toolchain/platforms/deprecated/ubuntu15.platform [deleted file]
deal.II-toolchain/platforms/deprecated/ubuntu17.platform [deleted file]
deal.II-toolchain/platforms/supported/arch.platform
deal.II-toolchain/platforms/supported/centos7.platform
deal.II-toolchain/platforms/supported/debian.platform [moved from deal.II-toolchain/platforms/supported/debian9.platform with 81% similarity]
deal.II-toolchain/platforms/supported/fedora.platform [moved from deal.II-toolchain/platforms/deprecated/fedora22.platform with 50% similarity]
deal.II-toolchain/platforms/supported/fedora26.platform [deleted file]
deal.II-toolchain/platforms/supported/fedora27.platform [deleted file]
deal.II-toolchain/platforms/supported/fedora28.platform [deleted file]
deal.II-toolchain/platforms/supported/fedora29.platform [deleted file]
deal.II-toolchain/platforms/supported/linux_cluster.platform
deal.II-toolchain/platforms/supported/macos.platform [new file with mode: 0644]
deal.II-toolchain/platforms/supported/macos_bigsur.platform [new file with mode: 0644]
deal.II-toolchain/platforms/supported/macos_catalina.platform [moved from deal.II-toolchain/platforms/supported/catalina.platform with 100% similarity]
deal.II-toolchain/platforms/supported/macos_elcapitan.platform [moved from deal.II-toolchain/platforms/supported/elcapitan.platform with 97% similarity]
deal.II-toolchain/platforms/supported/macos_highsierra.platform [moved from deal.II-toolchain/platforms/supported/highsierra.platform with 97% similarity]
deal.II-toolchain/platforms/supported/macos_mojave.platform [moved from deal.II-toolchain/platforms/supported/mojave.platform with 100% similarity]
deal.II-toolchain/platforms/supported/macos_sierra.platform [moved from deal.II-toolchain/platforms/supported/sierra.platform with 97% similarity]
deal.II-toolchain/platforms/supported/rhel7.platform
deal.II-toolchain/platforms/supported/ubuntu.platform [new file with mode: 0644]
deal.II-toolchain/platforms/supported/ubuntu16.platform [deleted file]
deal.II-toolchain/platforms/supported/ubuntu18.platform [deleted file]
deal.II-toolchain/platforms/supported/ubuntu19.platform [deleted file]
deal.II-toolchain/platforms/supported/ubuntu20.platform [deleted file]

index bbd98fb1bc946bd54cfdfa9b477cafbc107063ec..a2806090642b3aa020a180f5be0b9227a7046d55 100644 (file)
@@ -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
index a16527f25c506cbefce8abb128da231ab711a541..4d1798b128ea874ca52c3198bbe920a71590214f 100644 (file)
@@ -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 50025fbde4d2129739657f4e8e7ca9569b2d0883..4f5e1a87a042ea07c865d52eaf66e708d11a2990 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,8 +1,30 @@
+===================================================================
 candi (compile&install) for deal.II
 
-  Uwe Koecher           <uwe.koecher@hsu-hamburg.de>
-  Bruno Turcksin        <bruno.turcksin@gmail.com>
-  Timo Heister          <timo.heister@gmail.com>
+The most recent contributors to candi are:
+
+   Uwe Köcher <koecher@hsu-hamburg.de>
+   Timo Heister <timo.heister@gmail.com>
+   Fabian Castelli <fabian.castelli@kit.edu>
+
+
+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
 
 
 ===================================================================
index 46c1b8a8f6ecdef22df232126777b75beb5be9e2..d93bdab1e7b267b967cede7bd6448fc3eca77c12 100644 (file)
--- 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=<PATH>]``, ``[--prefix=<PATH>]``
+#### Prefix path: ``[-p <path>]``, ``[-p=<path>]``, ``[--prefix=<path>]``
 ```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<N>]``, ``[-j <N>]``, ``[--jobs=<N>]``
@@ -114,6 +119,7 @@ You can combine the command line options given below.
 #### Specific platform: ``[-pf=<platform>]``, ``[--platform=<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}
 ```
 
index 5ff47bc2040bc3881d822cc79d8ebc366672dd6b..e15979b7a194bb6c2506d6979dbf182b2ddd7586 100644 (file)
--- 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?
index 7658a24800ef683ed7dcf0a8775976a8febca03f..d032851fc1c0d67eeef360a5e9b759fd41cb9484 100755 (executable)
--- 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 <CTRL> + <C> !"
@@ -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/*
index 91920f2b614549a28e335a33f3d6cf42fb7d9b56..29f0cb31052e5b756aebac04f857c39eb42d4b3e 100644 (file)
@@ -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
index fc6bcdb46fb6184abc13163b5a1cf161f9ef5aa6..6e40ef7d0525553659a0dfddcf71168d57cc0191 100644 (file)
@@ -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
 }
-
index 6fe31aed36c6d939d411f08ca58cc65e0f8fe875..9788cde4e644ce4c0a18431dea08102da2840fa3 100644 (file)
@@ -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}
 
index e03bcffc89294ed8935461b462bfc52eeab1e60e..645c6c2a1a592695f08a34ff2b7e103b4013aa78 100644 (file)
@@ -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)
index 3f490dbe7ca0fd889bf14c916fdaa1ac461385ec..ccbd9a0ae5471a52b2d9ee8c8eb34bcfc3de327c 100644 (file)
@@ -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 (file)
index 7e62724..0000000
+++ /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
-)
index 07655829cd80be262767e47c688c159ceda8d28b..68d647160044a08f66091b6808891480efc5856f 100644 (file)
@@ -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 (file)
index 0000000..dd73efc
--- /dev/null
@@ -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
+}
index 595efb616ef70d0e83497d03ceb9d7eaaa608617..eae3068df00bb6a8001f08b5f977b6ed01fa84db 100644 (file)
@@ -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}
index e357a6026b7f8bb65a8971b3a99f18a207088f66..3cba8330a2ca199a0f93581cf72aa4e99e849298 100644 (file)
@@ -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}
 }
index 56bf695cb4fff28d31d1828e5bc3702c36bc6ef4..99cc283c0b217bc0a7a760eb7e1e760c9a016b14 100644 (file)
@@ -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}
index bc48cbf8389aa8dd338ee1d16a9e5828aa5e6841..f409cce625fa425bb9ef41e37f9cd2d256544e56 100644 (file)
@@ -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 (file)
index 0000000..6d6c251
--- /dev/null
@@ -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
+}
index 888401574f91101a7578cb6340eaf08cab42af0e..f1c0a528777bdc60fea963adcb1b9419998dcb34 100644 (file)
@@ -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
 }
-
index 70d319c3bb175912ecfafb4be246ef8ec55a10fa..6c26753b5380970c076dfd137007798979b589c0 100644 (file)
@@ -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
 
index 066168ac18494c3b4c3bbe448d554d7d6e3eec20..9be8309f0b0bb147f90eb513477a4e251a674d1b 100644 (file)
@@ -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
index 1934e403bac79b6f94c5cc910d5f17c1e2a55f59..9ba3c4a893899b3b13f8c0b5039c896893162e23 100644 (file)
@@ -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 (file)
index e69de29..0000000
index b078096756bfca07ce90c5a4d20711b2afec20ee..35fc2305a5143b2912c2a451837064ac4bc00f7c 100644 (file)
 #   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 (file)
index 844000a..0000000
+++ /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 (file)
index 4c87c33..0000000
+++ /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 (file)
index 7ee026d..0000000
+++ /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 (file)
index e4aaf70..0000000
+++ /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 (file)
index 3be159c..0000000
+++ /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}"
-
index 3df022909ed6317cfd61629d14387089e9583161..1d2c519d0a14d06333dcfe0cc96473fecd1dcfd9 100644 (file)
@@ -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}"
-
index b1bfe3fafcffc141f69b6259eb2b43575670bdfd..4f16b61945113c950aab1933caaecf08deab94e4 100644 (file)
@@ -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}"
-
similarity index 81%
rename from deal.II-toolchain/platforms/supported/debian9.platform
rename to deal.II-toolchain/platforms/supported/debian.platform
index cac50868c5cbd8deee7ceac73d78a337c387269f..a5f9ccfd331d863d37a8a99c0e4494ba5d9dde40 100644 (file)
@@ -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}"
-
similarity index 50%
rename from deal.II-toolchain/platforms/deprecated/fedora22.platform
rename to deal.II-toolchain/platforms/supported/fedora.platform
index 290e91777744a2f70765a6bc03b9abca94bdc0e9..ef570aa5c999207c6427abd005853bd66c39a54b 100644 (file)
@@ -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 (file)
index aea6a6f..0000000
+++ /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 (file)
index e141d8f..0000000
+++ /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 (file)
index 81e51f4..0000000
+++ /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 (file)
index 8720ab3..0000000
+++ /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}"
-
index b1ebfd7488cf58558350690fcda79d6c98f7f217..60b11d5880a9c085ed4f8d3ec25517e153fdc821 100644 (file)
@@ -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 (file)
index 0000000..2ba2cb6
--- /dev/null
@@ -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 (file)
index 0000000..95802d3
--- /dev/null
@@ -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!
+#
+##
similarity index 97%
rename from deal.II-toolchain/platforms/supported/elcapitan.platform
rename to deal.II-toolchain/platforms/supported/macos_elcapitan.platform
index 62bb54bc6ad22f3556d02a92c399f9d1ce5e2566..b56781a92db7e04cde7a12938e6818e09f012c45 100644 (file)
@@ -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
 # 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}"
-
similarity index 97%
rename from deal.II-toolchain/platforms/supported/highsierra.platform
rename to deal.II-toolchain/platforms/supported/macos_highsierra.platform
index 0d54c34975baad91aca42ea381ccd4d981f13d45..d768911a64ffd00ef2e64571b4d2b5a0c9ad6169 100644 (file)
@@ -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
 # 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.
-# 
+#
 ##
-
similarity index 97%
rename from deal.II-toolchain/platforms/supported/sierra.platform
rename to deal.II-toolchain/platforms/supported/macos_sierra.platform
index 1b14dd32bdf9bda0bbe7c94f1f771421e465200a..202a98d589e6301e3dbfd61f57d08d03eb4d1916 100644 (file)
@@ -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
 # 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.
-# 
+#
 ##
-
index 379c2ee06196725da06cc57ae2bd271e86bb0e49..a2c6377634aea86c41b6df629cc3701dff45567d 100644 (file)
@@ -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 (file)
index 0000000..3213bcb
--- /dev/null
@@ -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 (file)
index be44182..0000000
+++ /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 (file)
index 454824a..0000000
+++ /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 (file)
index 3b8416d..0000000
+++ /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 (file)
index 527b827..0000000
+++ /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}"
-

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.