]> https://gitweb.dealii.org/ - candi.git/commitdiff
sync dealii-9.1 with master 226/head
authorUwe Köcher <mail@uwe.koecher.cc>
Thu, 1 Jul 2021 11:59:03 +0000 (13:59 +0200)
committerUwe Köcher <mail@uwe.koecher.cc>
Thu, 1 Jul 2021 11:59:03 +0000 (13:59 +0200)
48 files changed:
.github/workflows/main.yml [new file with mode: 0644]
.gitignore
AUTHORS
README.md
VERSION
candi.cfg
candi.sh
deal.II-toolchain/packages/adolc.package
deal.II-toolchain/packages/arpack-ng.package
deal.II-toolchain/packages/astyle.package
deal.II-toolchain/packages/boost.package
deal.II-toolchain/packages/cmake.package
deal.II-toolchain/packages/dealii-prepare.package
deal.II-toolchain/packages/dealii-stable.package [deleted file]
deal.II-toolchain/packages/dealii.package
deal.II-toolchain/packages/gmsh.package
deal.II-toolchain/packages/hdf5.package
deal.II-toolchain/packages/openblas.package
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/superlu_dist.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/fedora22.platform [deleted file]
deal.II-toolchain/platforms/deprecated/fedora23.platform [deleted file]
deal.II-toolchain/platforms/deprecated/ubuntu12.platform [moved from deal.II-toolchain/platforms/supported/ubuntu12.platform with 100% similarity]
deal.II-toolchain/platforms/deprecated/ubuntu14.platform [moved from deal.II-toolchain/platforms/supported/ubuntu14.platform with 88% similarity]
deal.II-toolchain/platforms/deprecated/ubuntu15.platform [moved from deal.II-toolchain/platforms/supported/ubuntu15.platform with 100% similarity]
deal.II-toolchain/platforms/deprecated/ubuntu17.platform [moved from deal.II-toolchain/platforms/supported/ubuntu17.platform with 89% similarity]
deal.II-toolchain/platforms/supported/arch.platform [new file with mode: 0644]
deal.II-toolchain/platforms/supported/centos7.platform
deal.II-toolchain/platforms/supported/fedora.platform [moved from deal.II-toolchain/platforms/supported/fedora27.platform with 74% similarity]
deal.II-toolchain/platforms/supported/fedora26.platform [deleted file]
deal.II-toolchain/platforms/supported/fedora28.platform [deleted file]
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 94% similarity]
deal.II-toolchain/platforms/supported/macos_highsierra.platform [moved from deal.II-toolchain/platforms/supported/highsierra.platform with 93% 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 100% similarity]
deal.II-toolchain/platforms/supported/opensuse12.platform [deleted file]
deal.II-toolchain/platforms/supported/opensuse13.platform [deleted file]
deal.II-toolchain/platforms/supported/ubuntu16.platform
deal.II-toolchain/platforms/supported/ubuntu18.platform
deal.II-toolchain/platforms/supported/ubuntu20.platform [new file with mode: 0644]

diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100644 (file)
index 0000000..8b67384
--- /dev/null
@@ -0,0 +1,92 @@
+name: CI
+
+on: [push, pull_request]
+
+jobs:
+  ubuntu18-minimal:
+    name: ubuntu 18.04 minimal
+    runs-on: [ubuntu-18.04]
+
+    steps:
+    - uses: actions/checkout@v2
+    - name: setup
+      run: |
+        sudo apt-get install gfortran libopenmpi-dev openmpi-common openmpi-bin libblas-dev liblapack-dev libblas3 liblapack3
+    - name: info
+      run: |
+        g++ -v
+        mpic++ -v
+        cmake --version
+    - name: build
+      run: |
+        echo 'DEAL_II_CONFOPTS="-D CMAKE_BUILD_TYPE=Debug"' >> candi.cfg
+        ./candi.sh -j 2 --packages="once:p4est dealii"
+        cd ~/dealii-candi/tmp/build/deal.II-* && cat detailed.log && make test
+
+  ubuntu20-blas:
+    name: ubuntu 20.04
+    runs-on: [ubuntu-20.04]
+
+    steps:
+    - uses: actions/checkout@v2
+    - name: setup
+      run: |
+        sudo apt-get install gfortran libopenmpi-dev openmpi-common openmpi-bin
+    - name: info
+      run: |
+        g++ -v
+        mpic++ -v
+        cmake --version
+    - name: build
+      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 ~/dealii-candi/tmp/build/deal.II-* && cat detailed.log && make test
+
+  osx-minimal:
+    name: OSX clang
+    runs-on: [macos-latest]
+
+    steps:
+    - uses: actions/checkout@v2
+    - name: setup
+      run: |
+        # force cmake version:
+        pip install cmake==3.18.4
+        echo "/Library/Frameworks/Python.framework/Versions/2.7/bin" >> $GITHUB_PATH
+        brew install openmpi
+    - name: info
+      run: |
+        mpicxx -v
+        cmake --version
+    - name: build
+      run: |
+        echo 'DEAL_II_CONFOPTS="-D CMAKE_BUILD_TYPE=Debug"' >> candi.cfg
+        ./candi.sh -j 2 --packages="dealii"
+        cd ~/dealii-candi/tmp/build/deal.II-* && cat detailed.log && make test
+
+  osx-gcc:
+    name: OSX gcc
+    runs-on: [macos-latest]
+
+    steps:
+    - uses: actions/checkout@v2
+    - name: setup
+      run: |
+        # force cmake version:
+        pip install cmake==3.18.4
+        echo "/Library/Frameworks/Python.framework/Versions/2.7/bin" >> $GITHUB_PATH
+        brew install openmpi
+    - name: info
+      run: |
+        export OMPI_CXX=g++-9
+        mpicxx -v
+        cmake --version
+    - name: build
+      run: |
+        export OMPI_CXX=g++-9
+        export OMPI_CC=gcc-9
+        export OMPI_FC=gfortran-9
+        echo 'DEAL_II_CONFOPTS="-D CMAKE_BUILD_TYPE=Debug"' >> candi.cfg
+        ./candi.sh -j 2 --packages="once:p4est once:petsc dealii"
+        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 5296bc2bcd42cc012ce2b4abad1609a9da9c5f05..d93bdab1e7b267b967cede7bd6448fc3eca77c12 100644 (file)
--- a/README.md
+++ b/README.md
@@ -5,6 +5,8 @@ The ``candi.sh`` shell script downloads, configures, builds, and installs
 [deal.II](https://github.com/dealii/dealii) with common dependencies on
 linux-based systems.
 
+
+
 Quickstart
 ----
 
@@ -12,52 +14,50 @@ The following commands download the current stable version of the installer and
 then install the latest deal.II release and common dependencies:
 
 ```bash
- git clone https://github.com/dealii/candi
- cd candi
- ./candi.sh
+  git clone https://github.com/dealii/candi.git
 cd candi
 ./candi.sh
 ```
 
 Follow the instructions on the screen
 (you can abort the process by pressing < CTRL > + C)
 
+
 ### 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
+  ./candi.sh
 ```
 
 #### Install deal.II on Windows 10 (1709):
 Since the Creators Update in fall 2017 (Windows 10 (1709)) the
 Windows Subsystem for Linux (WSL) is an official part.
 
-Install ubuntu from the Store.
-Then enable the WSL feature,
-e.g. by opening a PowerShell as Administrator and run:
-```bash
-   Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
-```
-You need to reboot your system afterwards.
+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
-   sudo apt-get upgrade
-   git clone https://github.com/dealii/candi
-   cd candi
-   ./candi.sh
+  sudo apt-get update
+  sudo apt-get upgrade
+  git clone https://github.com/dealii/candi.git
+  cd candi
+  ./candi.sh
 ```
 
 #### Install deal.II on a generic Linux system or cluster:
@@ -72,10 +72,10 @@ the path to ``BLAS`` and ``LAPACK`` in the configuration file
 #### Install deal.II on a system without pre-installed git:
 
 ```bash
- wget https://github.com/dealii/candi/archive/master.tar.gz
- tar -xzf master.tar.gz
- cd candi-master
- ./candi.sh
 wget https://github.com/dealii/candi/archive/master.tar.gz
 tar -xzf master.tar.gz
 cd candi-master
 ./candi.sh
 ```
 
 Note that in this case you will need to activate the installation of git by
@@ -83,31 +83,60 @@ uncommenting the line `#PACKAGES="${PACKAGES} once:git"` in
 [candi.cfg](candi.cfg).
 
 
+
 Advanced Configuration
 ----
 
 ### Command line options
 
-#### Help: `[-h]`
+#### Help: ``[-h]``, ``[--help]``
 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>]``, ``[--PROCS=<N>]``
+#### Multiple build processes: ``[-j<N>]``, ``[-j <N>]``, ``[--jobs=<N>]``
 ```bash
+  ./candi.sh -j<N>
   ./candi.sh -j <N>
+  ./candi.sh --jobs=<N>
 ```
 
 * Example: to use 2 build processes type ``./candi.sh -j 2``.
-* Be careful with this option! You need to have enough system memory (e.g. at least 8GB for 2 or more processes).
+* Be careful with this option! You need to have enough system memory (e.g. at
+  least 8GB for 2 or more processes).
+
+#### 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
+option manually. As shown above, this option is used to install deal.II via
+candi on linux clusters, for example. For a complete list of supported platforms
+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
+submit the installation to the queueing system of a cluster.
+
 
 ### Configuration file options
 
@@ -125,17 +154,37 @@ Currently, we provide the packages
 * hdf5
 * opencascade
 
-and others. For a complete list see [deal.II-toolchain/packages](deal.II-toolchain/packages).
+and others. For a complete list see
+[deal.II-toolchain/packages](deal.II-toolchain/packages).
+
+There are several options within the configuration file, for example:
+
+* Remove existing build directories to use always a fresh setup
+```bash
+  CLEAN_BUILD={ON|OFF}
+```
 
-There are several other options within the configuration file, e.g.
+* Enable native compiler optimizations like ``-march=native``
+```bash
+  NATIVE_OPTIMIZATIONS={ON|OFF}
+```
 
-* the ``DOWNLOAD_PATH`` folder (can be safely removed after installation),
-* the ``UNPACK_PATH`` folder of the downloaded packages (can be safely removed after installation),
-* the ``BUILD_PATH`` folder (can be safely removed after installation),
-* the ``INSTALL_PATH`` destination folder,
+* Enable the build of the deal.II examples
+```bash
+  BUILD_EXAMPLES={ON|OFF}
+```
 
 and more.
 
+Furthermore you can specify the install directory and other internal
+directories, where the source and build files are stored:
+* The ``DOWNLOAD_PATH`` folder (can be safely removed after installation)
+* The ``UNPACK_PATH`` folder of the downloaded packages (can be safely removed
+  after installation)
+* The ``BUILD_PATH`` folder (can be safely removed after installation)
+* The ``INSTALL_PATH`` destination folder
+
+
 ### Single package installation mode
 
 If you prefer to install only a single package, you can do so by
diff --git a/VERSION b/VERSION
index bde7101d452aefa6ce992e278b060db8e4d521fe..e92e1d5343b88e5f8f03b7c3badec5cac7c5f2b5 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-9.1.1-r2
+9.1.1-r3
index 9988e33cefa993e792fd748ca03471ea87c0c7a5..19170162149ef018825ef94c203413c331cda87e 100644 (file)
--- a/candi.cfg
+++ b/candi.cfg
@@ -2,7 +2,9 @@
 
 # Meta-project to build
 PROJECT=deal.II-toolchain
-CLEAN_BUILD=false
+
+# Option {ON|OFF}: Use fresh build directory by remove existing ones?
+CLEAN_BUILD=OFF
 
 #########################################################################
 
@@ -25,12 +27,30 @@ INSTALL_PATH=${PREFIX_PATH}
 MIRROR="https://tjhei.info/candi-mirror/ https://cecas.clemson.edu/dealii/mirror/"
 
 #########################################################################
-#Choose configuration and components of deal.II
-DEAL_CONFOPTS=""
+# Choose additional configuration and components of deal.II
+DEAL_II_CONFOPTS=""
+
+# Option {ON|OFF}: Enable machine-specific optimizations (e.g. -march=native)?
+NATIVE_OPTIMIZATIONS=OFF
+
+# Option {ON|OFF}: Enable building of dealii examples?
+BUILD_EXAMPLES=ON
+
+# Option {ON|OFF}: Unset CXX and set the compiler as MPI_CXX_COMPILER when configuring deal.II
+#
+# This is recommended for very recent CMake versions but it currently is not reliable enough
+# to enable by default.
+USE_DEAL_II_CMAKE_MPI_COMPILER=OFF
+
+# Option {ON|OFF}: Run tests after installation?
+RUN_DEAL_II_TESTS=OFF
 
-# enable machine-specific optimizations (implies -march=native etc.)?
-#NATIVE_OPTIMIZATIONS=true
+# Choose the python interpreter to use. We pick python2, python3,
+# python in that order by default. If you want to override this
+# choice, uncomment the following:
+#PYTHON_INTERPRETER=python3
 
+# Now we pick the packages to install:
 PACKAGES="load:dealii-prepare"
 
 # These are system dependencies that are often pre-installed:
@@ -64,19 +84,9 @@ PACKAGES="${PACKAGES} dealii"
 
 #########################################################################
 
-# Install the following deal.II version:
+# Install the following deal.II version (choose master v9.3.0 ...)
 DEAL_II_VERSION=v9.1.1
 
-# Would you like to build stable version of deal.II?
-# If STABLE_BUILD=false, then the development version of deal.II will be
-# installed.
-STABLE_BUILD=true
-#STABLE_BUILD=false
-
-if [ ${STABLE_BUILD} = "false" ]; then
-    DEAL_II_VERSION=master
-fi
-
 #########################################################################
 
 # If you want to use Trilinos, decide if you want v12.x.x (AUTO) or v11.x.x
@@ -86,7 +96,7 @@ TRILINOS_MAJOR_VERSION=AUTO
 
 #########################################################################
 
-# Do you want to use MKL?
+# Option {ON|OFF}: Do you want to use MKL?
 MKL=OFF
 # MKL_DIR=
 # BLAS_DIR=
@@ -94,16 +104,26 @@ MKL=OFF
 
 #########################################################################
 
-# If you have commits from the deal.II master to cherry-pick in STABLE_BUILD
+# If you have commits from the deal.II master to cherry-pick in stable version
 
 # bugfix for TrilinosWrapper::SparseMatrix ::add(factor, SparseMatrix)
 #DEAL_CHERRYPICKCOMMITS="8bcaf55df6754238b2e4e41bf6a5dd276a97bdd2 ${DEAL_CHERRYPICKCOMMITS}"
 
 #########################################################################
 
-# If you want to change the source code of one or multiple packages
-# switch on the developer mode to avoid a package fetch and unpack.
+# Option {ON|OFF}: If you want to change the source code of one or multiple
+# packages switch on the developer mode to avoid a package fetch and unpack.
 # Note: a previous run of candi with the same settings must be done without
 #       this mode!
 DEVELOPER_MODE=OFF
 
+################################################################################
+
+# OPTION {ON|OFF}: Remove build directory after successful installation
+INSTANT_CLEAN_BUILD_AFTER_INSTALL=OFF
+
+# OPTION {ON|OFF}: Remove downloaded packed src after successful installation
+INSTANT_CLEAN_SRC_AFTER_INSTALL=OFF
+
+# OPTION {ON|OFF}: Remove unpack directory after successful installation
+INSTANT_CLEAN_UNPACK_AFTER_INSTALL=OFF
index 9794c20e6b6419e3f8db1ec2de0486c54de245f1..5afb4ed190e8cb2ec54c558262eca8d763229408 100755 (executable)
--- a/candi.sh
+++ b/candi.sh
@@ -39,9 +39,10 @@ TIC_GLOBAL="$(${DATE_CMD} +%s)"
 
 ################################################################################
 # Parse command line input parameters
-PREFIX=~/deal.ii-candi
-PROCS=1
+PREFIX=~/dealii-candi
+JOBS=1
 CMD_PACKAGES=""
+USER_INTERACTION=ON
 
 while [ -n "$1" ]; do
     param="$1"
@@ -53,9 +54,10 @@ while [ -n "$1" ]; do
            echo "Usage: $0 [options]"
            echo "Options:"
            echo "  -p <path>, --prefix=<path>  set a different prefix path (default $PREFIX)"
-           echo "  -j <N>, -j<N>, --PROCS=<N>  compile with N processes in parallel (default $PROCS)"
+           echo "  -j <N>, -j<N>, --jobs=<N>   compile with N processes in parallel (default ${JOBS})"
            echo "  --platform=<platform>       force usage of a particular platform file"
            echo "  --packages=\"pkg1 pkg2\"      install the given list of packages instead of the default set in candi.cfg"
+           echo "  -y, --yes, --assume-yes     automatic yes to prompts"
            echo ""
            echo "The configuration including the choice of packages to install is stored in candi.cfg, see README.md for more information."
            exit 0
@@ -69,8 +71,6 @@ while [ -n "$1" ]; do
         ;;
         -p=*|--prefix=*)
             PREFIX="${param#*=}"
-            # replace '~' by $HOME
-            PREFIX=${PREFIX/#~\//$HOME\/}
         ;;
 
         #####################################
@@ -81,18 +81,18 @@ while [ -n "$1" ]; do
 
         #####################################
         # Number of maximum processes to use
-        --PROCS=*)
-            PROCS="${param#*=}"
+        --jobs=*)
+            JOBS="${param#*=}"
         ;;
 
         # Make styled processes with or without space
        -j)
            shift
-            PROCS="${1}"
+            JOBS="${1}"
        ;;
 
         -j*)
-            PROCS="${param#*j}"
+            JOBS="${param#*j}"
         ;;
 
         #####################################
@@ -100,6 +100,12 @@ while [ -n "$1" ]; do
         -pf=*|--platform=*)
             GIVEN_PLATFORM="${param#*=}"
         ;;
+        
+        #####################################
+        # Assume yes to prompts
+        -y|--yes|--assume-yes)
+            USER_INTERACTION=OFF
+        ;;
 
        *)
            echo "invalid command line option. See -h for more information."
@@ -108,12 +114,15 @@ while [ -n "$1" ]; do
     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 [[ ! "$PROCS" =~ $RE || $PROCS<1 ]] ; then
-  echo "ERROR: invalid number of build processes '$PROCS'"
+if [[ ! "${JOBS}" =~ ${RE} || ${JOBS}<1 ]] ; then
+  echo "ERROR: invalid number of build processes '${JOBS}'"
   exit 1
 fi
 
@@ -163,9 +172,11 @@ cecho() {
 }
 
 cls() {
-    # clear screen
-    COL=$1; shift
-    echo -e "${COL}$@\033c"
+    if [ ${USER_INTERACTION} = ON ]; then
+        # clear screen
+        COL=$1; shift
+        echo -e "${COL}$@\033c"
+    fi
 }
 
 default () {
@@ -192,7 +203,12 @@ quit_if_fail() {
 #  return 1: No checksum provided          (archive found, but unable to verify)
 #  return 2: ARCHIVE_FILE not found        (archive NOT found)
 #  return 3: CHECKSUM mismatch             (archive file corrupted)
-#  return 4: Neither md5 nor md5sum found  (archive found, but unable to verify)
+#  return 4: Not able to compute checksum  (archive found, but unable to verify)
+#  return 5: Checksum algorithm not found  (archive found, but unable to verify)
+# This function tries to verify the downloaded archive by determing and
+# comparing checksums. For a specific package several checksums might be
+# defined. Based on the length of the given checksum the underlying algorithm
+# is determined. The first matching checksum verifies the archive.
 verify_archive() {
     ARCHIVE_FILE=$1
 
@@ -212,34 +228,64 @@ verify_archive() {
         return 1
     fi
 
-    # Skip verifying archive, if CHECKSUM=ignore
-    if [ "${CHECKSUM}" = "ignore" ]; then
+    # Skip verifying archive, if CHECKSUM=skip
+    if [ "${CHECKSUM}" = "skip" ]; then
         cecho ${WARN} "Skipped checksum check for ${ARCHIVE_FILE}"
         return 1
     fi
 
     cecho ${INFO} "Verifying ${ARCHIVE_FILE}"
 
-    # Verify CHECKSUM using md5/md5sum
-    if builtin command -v md5 > /dev/null; then
-       CURRENT="$(md5 -q ${ARCHIVE_FILE})"
-    elif builtin command -v md5sum > /dev/null; then
-       CURRENT=$(md5sum ${ARCHIVE_FILE} | awk '{print $1}')
-    else
-        cecho ${BAD} "Neither md5 nor md5sum were found in the PATH"
-        return 4
-    fi
-
     for CHECK in ${CHECKSUM}; do
+        # Verify CHECKSUM using md5/sha1/sha256
+        if [ ${#CHECK} = 32 ]; then
+            ALGORITHM="md5"
+            if builtin command -v md5sum > /dev/null; then
+                CURRENT=$(md5sum ${ARCHIVE_FILE} | awk '{print $1}')
+            elif builtin command -v md5 > /dev/null; then
+                CURRENT="$(md5 -q ${ARCHIVE_FILE})"
+            else
+                cecho ${BAD} "Neither md5sum nor md5 were found in the PATH"
+                return 4
+            fi
+        elif [ ${#CHECK} = 40 ]; then
+            ALGORITHM="sha1"
+            if builtin command -v sha1sum > /dev/null; then
+                CURRENT=$(sha1sum ${ARCHIVE_FILE} | awk '{print $1}')
+            elif builtin command -v shasum > /dev/null; then
+                CURRENT=$(shasum -a 1 ${ARCHIVE_FILE} | awk '{print $1}')
+            else
+                cecho ${BAD} "Neither sha1sum nor shasum were found in the PATH"
+                return 4
+            fi
+        elif [ ${#CHECK} = 64 ]; then
+            ALGORITHM="sha256"
+            if builtin command -v sha256sum > /dev/null; then
+                CURRENT=$(sha256sum ${ARCHIVE_FILE} | awk '{print $1}')
+            elif builtin command -v shasum > /dev/null; then
+                CURRENT=$(shasum -a 256 ${ARCHIVE_FILE} | awk '{print $1}')
+            else
+                cecho ${BAD} "Neither sha256sum nor shasum were found in the PATH"
+                return 4
+            fi
+        else
+            cecho ${BAD} "Checksum algorithm could not be determined"
+            exit 5
+        fi
+
         test "${CHECK}" = "${CURRENT}"
         if [ $? = 0 ]; then
-            echo "${ARCHIVE_FILE}: OK"
+            cecho ${GOOD} "${ARCHIVE_FILE}: OK(${ALGORITHM})"
             return 0
-       fi
+        else
+            cecho ${BAD} "${ARCHIVE_FILE}: FAILED(${ALGORITHM})"
+            cecho ${BAD} "${CURRENT} does not match given checksum ${CHECK}"
+        fi
     done
+    unset ALGORITHM
 
     cecho ${BAD} "${ARCHIVE_FILE}: FAILED"
-    cecho ${BAD} "${CURRENT} does not match any in ${CHECKSUM}"
+    cecho ${BAD} "Checksum does not match any in ${CHECKSUM}"
     return 3
 }
 
@@ -303,7 +349,7 @@ download_archive () {
         verify_archive ${ARCHIVE_FILE}
         archive_state=$?
         if [ ${archive_state} = 0 ] || [ ${archive_state} = 1 ] || [ ${archive_state} = 4 ]; then
-            # If the download was successful, and the CHECKSUM is matching, ignored, or not possible
+            # If the download was successful, and the CHECKSUM is matching, skipped, or not possible
             return 0;
         fi
         unset archive_state
@@ -325,28 +371,22 @@ package_fetch () {
         quit_if_fail "candi: download_archive ${NAME}${PACKING} failed"
 
     elif [ ${PACKING} = "git" ]; then
+        # Go into the unpack dir
         cd ${UNPACK_PATH}
-        # Suitably clone or update git repositories
+
+        # Clone the git repository if not existing locally
         if [ ! -d ${EXTRACTSTO} ]; then
             git clone ${SOURCE}${NAME} ${EXTRACTSTO}
             quit_if_fail "candi: git clone ${SOURCE}${NAME} ${EXTRACTSTO} failed"
-        else
-            cd ${EXTRACTSTO}
-            git checkout master --force
-            quit_if_fail "candi: git checkout master --force failed"
-
-            git pull
-            quit_if_fail "candi: git pull failed"
-            cd ..
         fi
 
-        if [ ${STABLE_BUILD} = true ]; then
-            cd ${EXTRACTSTO}
-            git checkout ${VERSION} --force
-            quit_if_fail "candi: git checkout ${VERSION} --force failed"
-            cd ..
-        fi
+        # Checkout the desired version
+        cd ${EXTRACTSTO}
+        git checkout ${VERSION} --force
+        quit_if_fail "candi: git checkout ${VERSION} --force failed"
 
+        # Switch to the tmp dir
+        cd ..
     elif [ ${PACKING} = "hg" ]; then
         cd ${UNPACK_PATH}
         # Suitably clone or update hg repositories
@@ -448,7 +488,7 @@ package_build() {
     default BUILDDIR=${BUILD_PATH}/${NAME}
 
     # Clean the build directory if specified
-    if [ -d ${BUILDDIR} ] && [ ${CLEAN_BUILD} = "true" ]; then
+    if [ -d ${BUILDDIR} ] && [ ${CLEAN_BUILD} = ON ]; then
         rm -rf ${BUILDDIR}
     fi
 
@@ -484,7 +524,7 @@ package_build() {
         fi
 
         for target in "${TARGETS[@]}"; do
-            echo make ${MAKEOPTS} -j ${PROCS} $target >>candi_build
+            echo make ${MAKEOPTS} -j ${JOBS} $target >>candi_build
         done
 
     elif [ ${BUILDCHAIN} = "cmake" ]; then
@@ -492,17 +532,17 @@ package_build() {
         rm -rf ${BUILDDIR}/CMakeFiles
         echo cmake ${CONFOPTS} -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} ${UNPACK_PATH}/${EXTRACTSTO} >>candi_configure
         for target in "${TARGETS[@]}"; do
-            echo make ${MAKEOPTS} -j ${PROCS} $target >>candi_build
+            echo make ${MAKEOPTS} -j ${JOBS} $target >>candi_build
         done
 
     elif [ ${BUILDCHAIN} = "python" ]; then
         echo cp -rf ${UNPACK_PATH}/${EXTRACTSTO}/* . >>candi_configure
-        echo python setup.py install --prefix=${INSTALL_PATH} >>candi_build
+        echo ${PYTHON_INTERPRETER} setup.py install --prefix=${INSTALL_PATH} >>candi_build
 
     elif [ ${BUILDCHAIN} = "scons" ]; then
         echo cp -rf ${UNPACK_PATH}/${EXTRACTSTO}/* . >>candi_configure
         for target in "${TARGETS[@]}"; do
-            echo scons -j ${PROCS} ${CONFOPTS} prefix=${INSTALL_PATH} $target >>candi_build
+            echo scons -j ${JOBS} ${CONFOPTS} prefix=${INSTALL_PATH} $target >>candi_build
         done
 
     elif [ ${BUILDCHAIN} = "custom" ]; then
@@ -562,45 +602,48 @@ guess_platform() {
     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;;
+            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;;
         esac
 
     elif [ ! -z "$CRAYOS_VERSION" ]; then
         echo cray
 
-    elif [ -x /usr/bin/lsb_release ]; then
-        local OSVER=$(lsb_release -r -s  |grep -o -E '[0-9]+' |head -n 1)
+    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_NAME=$(grep -oP '(?<=^NAME=).+' /etc/os-release | tr -d '"')
+        local OS_PRETTY_NAME=$(grep -oP '(?<=^PRETTY_NAME=).+' /etc/os-release | tr -d '"')
 
-        if [ -f /etc/fedora-release ]; then
-            echo fedora${OSVER}
+        if [ "$OS_ID" == "fedora" ]; then
+            echo fedora
 
-        elif [ -f /etc/centos-release ]; then
-            echo centos${OSVER}
+        elif [ "$OS_ID" == "centos" ]; then
+            echo centos${OS_VERSIONID}
 
-        elif [ -f /etc/redhat-release ]; then
-            echo rhel${OSVER}
+        elif [ "$OS_ID" == "rhel" ]; then
+            echo rhel${OS_MAJOR_VER}
 
-        else
-            local DISTRO=$(lsb_release -i -s)
-            local CODENAME=$(lsb_release -c -s)
-            local DESCRIPTION=$(lsb_release -d -s)
-            case ${DISTRO}:${CODENAME}:${DESCRIPTION} in
-                *:*:*Debian*9*)       echo debian9;;
-                *:*:*Ubuntu*)         echo ubuntu${OSVER};;
-                *:*:*openSUSE\ 12*)   echo opensuse12;;
-                *:*:*openSUSE\ 13*)   echo opensuse13;;
-                *:*:*openSUSE\ 15*)   echo opensuse15;;
-            esac
+        elif [ "$OS_ID" == "debian" ]; then
+            echo debian${OS_MAJOR_VER}
+
+        elif [ "$OS_ID" == "ubuntu" ]; then
+            echo ubuntu${OS_MAJOR_VER}
+
+        elif [ "${OS_NAME}" == "openSUSE Leap" ]; then
+            echo opensuse15
+
+        elif [ "${PRETTY_NAME}" == "Arch Linux" ]; then
+            echo arch
+
+        elif [ "${PRETTY_NAME}" == "Manjaro Linux" ]; then
+            echo arch
         fi
-    elif [ -f /etc/os-release ]; then
-       . /etc/os-release
-       if [ "${PRETTY_NAME}" == "openSUSE Leap 15.0" ]; then
-           echo opensuse15
-       fi
     fi
 }
 
@@ -612,15 +655,6 @@ guess_ostype() {
     elif [ -x /usr/bin/sw_vers ]; then
         echo macos
 
-    elif [ -f /etc/fedora-release ]; then
-        echo linux
-
-    elif [ -f /etc/redhat-release ]; then
-        echo linux
-
-    elif [ -x /usr/bin/lsb_release ]; then
-        echo linux
-
     elif [ -x /etc/os-release ]; then
         echo linux
     fi
@@ -666,8 +700,7 @@ default BUILD_PATH=${PREFIX_PATH}/tmp/build
 default INSTALL_PATH=${PREFIX_PATH}
 default CONFIGURATION_PATH=${INSTALL_PATH}/configuration
 
-default CLEAN_BUILD=false
-default STABLE_BUILD=true
+default CLEAN_BUILD=OFF
 default DEVELOPER_MODE=OFF
 
 default PACKAGES_OFF=""
@@ -808,16 +841,19 @@ echo
 awk '/^##/ {exit} {$1=""; print}' <${PLATFORM}
 echo
 
-# Let the user confirm now, that the PLATFORM is set up correctly
-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> !"
-cecho ${INFO} "Then copy and paste these instructions into this terminal."
-echo
+# 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> !"
+    cecho ${INFO} "Then copy and paste these instructions into this terminal."
+    echo
 
-cecho ${GOOD} "Once ready, hit enter to continue!"
-read
+    cecho ${GOOD} "Once ready, hit enter to continue!"
+    read
+fi
 
 ################################################################################
 # Output configuration details
@@ -840,7 +876,7 @@ elif [ ${DEVELOPER_MODE} = "ON" ]; then
     cecho ${BAD} "source files from: $(prettify_dir ${UNPACK_PATH})"
     echo
 else
-    cecho ${BAD} "candi: bad variable: DEVELOPER_MODE={OFF|ON}; (your specified option is = ${DEVELOPER_MODE})"
+    cecho ${BAD} "candi: bad variable: DEVELOPER_MODE={ON|OFF}; (your specified option is = ${DEVELOPER_MODE})"
     exit 1
 fi
 
@@ -850,7 +886,7 @@ cecho ${GOOD} "Package configuration in: $(prettify_dir ${CONFIGURATION_PATH})"
 echo
 
 echo "-------------------------------------------------------------------------------"
-cecho ${INFO} "Number of (at most) build processes to use: PROCS=${PROCS}"
+cecho ${INFO} "Number of (at most) build processes to use: JOBS=${JOBS}"
 echo
 
 echo "-------------------------------------------------------------------------------"
@@ -860,15 +896,6 @@ for PACKAGE in ${PACKAGES[@]}; do
 done
 echo
 
-
-echo "-------------------------------------------------------------------------------"
-if [ ${STABLE_BUILD} = true ]; then
-    cecho ${INFO} "Building stable releases of ${PROJECT} packages."
-else
-    cecho ${WARN} "Building development versions of ${PROJECT} packages."
-fi
-echo
-
 # if the program 'module' is available, output the currently loaded modulefiles
 if builtin command -v module > /dev/null; then
     echo "-------------------------------------------------------------------------------"
@@ -954,10 +981,12 @@ if [ -z "$CC" ] || [ -z "$CXX" ] || [ -z "$FC" ] || [ -z "$FF" ]; then
 fi
 
 ################################################################################
-# Force the user to accept the current output
-echo "-------------------------------------------------------------------------------"
-cecho ${GOOD} "Once ready, hit enter to continue!"
-read
+# 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
 
 ################################################################################
 # Output configuration details
@@ -969,9 +998,22 @@ cecho ${GOOD} "Project:  ${PROJECT}"
 cecho ${GOOD} "Platform: ${PLATFORM}"
 echo
 
-# If the platform doesn't override the system python by installing its
-# own, figure out the version of the existing python
-default PYTHONVER=`python -c "import sys; print(sys.version[:3])"`
+
+# Figure out what binary to use for python support. Note that older PETSc ./configure only supports python2. For now, prefer
+# using python2 but use what the user supplies as PYTHON_INTERPRETER.
+if builtin command -v python2 --version > /dev/null; then
+  default PYTHON_INTERPRETER="python2"
+fi
+if builtin command -v python2.7 --version > /dev/null; then
+  default PYTHON_INTERPRETER="python2.7"
+fi
+if builtin command -v python3 --version > /dev/null; then
+  default PYTHON_INTERPRETER="python3"
+fi
+default PYTHON_INTERPRETER="python"
+
+# Figure out the version of the existing python:
+default PYTHONVER=`${PYTHON_INTERPRETER} -c "import sys; print(sys.version[:3])"`
 
 # Create necessary directories and set appropriate variables
 mkdir -p ${DOWNLOAD_PATH}
@@ -1006,7 +1048,7 @@ EOF
 # WARNING: do not overwrite this variables!
 ORIG_INSTALL_PATH=${INSTALL_PATH}
 ORIG_CONFIGURATION_PATH=${CONFIGURATION_PATH}
-ORIG_PROCS=${PROCS}
+ORIG_JOBS=${JOBS}
 
 guess_architecture
 
@@ -1057,7 +1099,7 @@ for PACKAGE in ${PACKAGES[@]}; do
     unset CONFIG_FILE
     unset CHERRYPICKCOMMITS
     TARGETS=('' install)
-    PROCS=${ORIG_PROCS}
+    JOBS=${ORIG_JOBS}
     INSTALL_PATH=${ORIG_INSTALL_PATH}
     CONFIGURATION_PATH=${ORIG_CONFIGURATION_PATH}
 
@@ -1072,12 +1114,6 @@ for PACKAGE in ${PACKAGES[@]}; do
     # Fetch information pertinent to the package
     source ${PROJECT}/packages/${PACKAGE}.package
 
-    # Turn to a stable version of the package if that's what the user
-    # wants and it exists
-    if [ ${STABLE_BUILD} = true ] && [ -e ${PROJECT}/packages/${PACKAGE}-stable.package ]; then
-        source ${PROJECT}/packages/${PACKAGE}-stable.package
-    fi
-
     # Ensure that the package file is sanely constructed
     if [ ! "${BUILDCHAIN}" ]; then
         cecho ${BAD} "${PACKAGE}.package is not properly formed. Please check that all necessary variables are defined."
@@ -1108,6 +1144,23 @@ for PACKAGE in ${PACKAGES[@]}; do
             package_unpack
         fi
         package_build
+
+        # Clean build directory after install
+        if [ ${INSTANT_CLEAN_BUILD_AFTER_INSTALL} = ON ]; then
+            rm -rf ${BUILDDIR}
+        fi
+
+        # Clean src after install
+        if [ ${INSTANT_CLEAN_SRC_AFTER_INSTALL} = ON ]; then
+            if [ -f ${DOWNLOAD_PATH}/${NAME}${PACKING} ]; then
+                rm -f ${DOWNLOAD_PATH}/${NAME}${PACKING}
+            fi
+        fi
+
+        # Clean unpack directory after install
+        if [ ${INSTANT_CLEAN_UNPACK_AFTER_INSTALL} = ON ]; then
+            rm -rf ${UNPACK_PATH}/${EXTRACTSTO}
+        fi
     else
         if [ ! -z "${LOAD}" ]; then
             # Let the user know we're loading the current package
index f5d80546df1c100d7e262d9e5087947706850a17..bb9e2f2634241acb8ceeb55d94c3f281bef098b7 100644 (file)
@@ -1,37 +1,30 @@
-# use development version?
-#CANDI_ADOLC_FROM_GIT=1
+################################################################################
+## ADOLC                                                                      ##
+################################################################################
 
-if [ -n "$CANDI_ADOLC_FROM_GIT" ]; then
+# Option {ON|OFF}: Choose whether to load the tarball or the git repository.
+CANDI_ADOLC_LOAD_TARBALL=ON
+
+if [ ${CANDI_ADOLC_LOAD_TARBALL} = ON ]; then
+    # download release tarball
+    VERSION=2.7.2
+    CHECKSUM=701e0856baae91b98397960d5e0a87a549988de9d4002d0e9a56fa08f5455f6e
+    CHECKSUM="${CHECKSUM} 372c86eaa8b11f83825b2d9e0719b5ce3cb7066d"
+    CHECKSUM="${CHECKSUM} ea05bd8e0d6c92d474204876fdcad04d"
+
+    NAME=${VERSION}
+    SOURCE=https://github.com/coin-or/ADOL-C/archive/releases/
+    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
-
-    NAME=adol-c.git
     PACKING=git
-    SOURCE=https://gitlab.com/adol-c/
-
-else
-    # download release tarball
-
-    # 2.6.3 is the latest official release, but is not compatible with
-    # deal.II. For now we have an un-official 2.6.4 RC that we are using.
-
-    #VERSION=2.6.3
-    #NAME=ADOL-C-${VERSION}
-    #EXTRACTSTO=ADOL-C-${VERSION}
-    #SOURCE=https://www.coin-or.org/download/source/ADOL-C/
-    #CHECKSUM=f78f67f70d5874830a1ad1c0f54e54f7
-    #PACKING=.tgz
-
-    VERSION=2.6.4-rc1
-    NAME=ADOL-C-${VERSION}
-    EXTRACTSTO=ADOL-C-${VERSION}
-    SOURCE=https://github.com/tjhei/adol-c/releases/download/v2.6.4-rc1/
-    CHECKSUM=cca27e9579c0c9ab4dd0c1cfa1c44433
-    PACKING=.tar.gz
 fi
-unset CANDI_ADOLC_FROM_GIT
-
+unset CANDI_ADOLC_LOAD_TARBALL
 
 BUILDCHAIN=autotools
 
@@ -47,7 +40,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 39c7520514bacba34387e9fdce302d658faee736..3e03bc8980c459e77b10303e06b71a5ce2d6ab00 100644 (file)
@@ -26,4 +26,3 @@ package_specific_conf () {
 export ARPACK_DIR=${INSTALL_PATH}
 " >> $CONFIG_FILE
 }
-
index 09784b915811392c64a33f1a64b278dfb1782d95..6160eadc8a87982a4501c3e2a3a1dfcd382cb3b6 100644 (file)
@@ -13,7 +13,7 @@ package_specific_setup () {
     cp -rf ${UNPACK_PATH}/${EXTRACTSTO}/* .
     cd build/gcc
     mkdir -p ${INSTALL_PATH}
-    make -j${PROCS} >> make.output || bdie "Error in make"
+    make -j${JOBS} >> make.output || bdie "Error in make"
     cp bin/astyle ${INSTALL_PATH}/
 }
 
index a8ee302b2fd67dd5ff1a8c3abfc80dfbf6691617..8611ad38b62b258e86aaa978b5986986972c365b 100644 (file)
@@ -16,7 +16,7 @@ package_specific_build () {
     quit_if_fail "boost build ./bootstrap.sh failed"
     
     echo "using mpi ;" > user-config.jam
-    ./b2 -j ${PROCS} --user-config=user-config.jam --build-dir=candi_build_dir link=shared install ${CONFOPTS}
+    ./b2 -j ${JOBS} --user-config=user-config.jam --build-dir=candi_build_dir link=shared install ${CONFOPTS}
     quit_if_fail "boost build ./b2 failed"
 }
 
index 6e779be1860f2af602ab929d058c7a292044058c..fa6d4e281c36ab6b184edf70189a7a6d7bd598bc 100644 (file)
@@ -16,13 +16,13 @@ if [ ${PLATFORM_OSTYPE} == "linux" ]; then
     # tarball install
     NAME=cmake-${VERSION}-Linux-x86_64
     PACKING=.tar.gz
-    CHECKSUM=55e30dd01698e9409b576008fd22394c
+    CHECKSUM=55e30dd01698e9409b576008fd22394c # 3.11.2
     BUILDCHAIN=ignore
 else
     # configure/make/install
     NAME=cmake-${VERSION}
     PACKING=.tar.gz
-    CHECKSUM=d2d554c05fc07cfae7846d2aa205f12a
+    CHECKSUM=d2d554c05fc07cfae7846d2aa205f12a # 3.11.2
 
     if builtin command -v cmake > /dev/null; then
         # configure/make with cmake (older or newer version already installed)    
@@ -56,4 +56,3 @@ export PATH=${INSTALL_PATH}/bin:\${PATH}
 export CMAKE_ROOT=${INSTALL_PATH}/share/${MAJOR}
 " >> $CONFIG_FILE
 }
-
index 9dd2d452ba3d0601c18221b15d62d91b850bce9d..645c6c2a1a592695f08a34ff2b7e103b4013aa78 100644 (file)
@@ -2,9 +2,9 @@ NAME=dealii-prepare
 BUILDCHAIN=ignore
 
 ################################################################################
-# Loop over the options in DEAL_CONFOPTS and if the package is turned off, add
-# it to the PACKAGES_OFF list.
-for option in ${DEAL_CONFOPTS[@]}; do
+# Loop over the options in DEAL_II_CONFOPTS and if the package is turned off,
+# add it to the PACKAGES_OFF list.
+for option in ${DEAL_II_CONFOPTS[@]}; do
     case ${option} in
         *DEAL_II_WITH*:BOOL=OFF)
         PACKAGE_NAME=${option##*WITH_};
@@ -20,10 +20,13 @@ PACKAGES_OFF=`echo "$PACKAGES_OFF" | tr '[:upper:]' '[:lower:]'`
 
 if [ ! -z "${PACKAGES_OFF}" ]; then
     cecho ${WARN} "deal.II: forcing package skip for: ${PACKAGES_OFF}"
-    cecho ${INFO} "This is coming from your personal DEAL_CONFOPTS settings!"
+    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-stable.package b/deal.II-toolchain/packages/dealii-stable.package
deleted file mode 100644 (file)
index 6a01e73..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-VERSION=${DEAL_II_VERSION}
-NAME=dealii.git
-EXTRACTSTO=deal.II-${VERSION}
-SOURCE=https://github.com/dealii/
-PACKING=git
-BUILDCHAIN=cmake
-
-#########################################################################
-BUILDDIR=${BUILD_PATH}/deal.II-${VERSION}
-INSTALL_PATH=${ORIG_INSTALL_PATH}/deal.II-${VERSION}
index 572dbf8beeaa963f8bb876224ceb89550f4724f5..6ff184b3ff32baf6c9605a8344b7cc554116acc1 100644 (file)
@@ -1,4 +1,4 @@
-VERSION=master
+VERSION=${DEAL_II_VERSION}
 NAME=dealii.git
 EXTRACTSTO=deal.II-${VERSION}
 SOURCE=https://github.com/dealii/
@@ -10,10 +10,10 @@ BUILDDIR=${BUILD_PATH}/deal.II-${VERSION}
 INSTALL_PATH=${ORIG_INSTALL_PATH}/deal.II-${VERSION}
 
 ################################################################################
-# Please do not change the line below!
+# Please do not change the lines below!
 
 ################################################################################
-#Choose general configuration and components of deal.II
+# Choose general configuration and components of deal.II
 
 CONFOPTS=" \
 -D CMAKE_BUILD_TYPE=DebugRelease \
@@ -28,15 +28,36 @@ CONFOPTS=" \
 -D DEAL_II_FORCE_BUNDLED_BOOST:BOOL=OFF \
 -D DEAL_II_WITH_ZLIB:BOOL=ON"
 
-if [ "${NATIVE_OPTIMIZATIONS}" = "true" ]; then
+# Choice of whether to build the dealii examples
+if [ ${BUILD_EXAMPLES} = ON ] || [ ${BUILD_EXAMPLES} = OFF ]; then
+    CONFOPTS="${CONFOPTS} \
+      -D DEAL_II_COMPONENT_EXAMPLES:BOOL=${BUILD_EXAMPLES}"
+else
+    cecho ${BAD} "candi: bad variable: BUILD_EXAMPLES={ON|OFF}; (your specified option is = ${BUILD_EXAMPLES})"
+    exit 1
+fi
+
+# Choice of whether native compiler optimizations should be enabled
+if [ ${NATIVE_OPTIMIZATIONS} = ON ]; then
     CONFOPTS="${CONFOPTS} \
       -D CMAKE_CXX_FLAGS='-march=native'"
 fi
 
+if [ ${USE_DEAL_II_CMAKE_MPI_COMPILER} = ON ]; then
+    # Disable CXX, CC for deal.II as recommended in
+    # https://github.com/dealii/dealii/issues/11478 and set MPI_*_COMPILER
+    # cmake variables. This only works for recent CMake versions.
+    CONFOPTS="${CONFOPTS} \
+    -D MPI_CXX_COMPILER=${CXX} \
+    -D MPI_C_COMPILER=${CC}"
+
+    unset CXX
+    unset CC
+fi
+
 # add the user-specified flags at the end (so things can be overriden):
 CONFOPTS="${CONFOPTS} \
-${DEAL_CONFOPTS}"
-
+${DEAL_II_CONFOPTS}"
 
 ################################################################################
 # Check if we hit cmake-3.10+ and deal.II v8.5.1 configure error (MPI / FindMPI)
@@ -81,7 +102,7 @@ fi
 
 # metis
 if [[ ${PACKAGES_OFF} =~ 'metis' ]]; then
-    # Disable METIS for deal.II, if a special DEAL_CONFOPTS together with
+    # Disable METIS for deal.II, if a special DEAL_II_CONFOPTS together with
     # the dealii-prepare loop forces metis to be off
     if [ ! -z "${METIS_DIR}" ]; then
         cecho ${INFO} "deal.II: unset METIS_DIR due to forced DEAL_II_WITH_METIS:BOOL=OFF option"
@@ -105,10 +126,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_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
@@ -117,15 +137,14 @@ 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
 if [[ ${PACKAGES_OFF} =~ 'hdf5' ]]; then
-    # Disable hdf5 for deal.II, if a special DEAL_CONFOPTS together with
+    # Disable hdf5 for deal.II, if a special DEAL_II_CONFOPTS together with
     # the dealii-prepare loop forces hdf5 to be off
     if [ ! -z "${HDF5_DIR}" ]; then
         cecho ${INFO} "deal.II: unset HDF5_DIR due to forced DEAL_II_WITH_HDF5:BOOL=OFF option"
@@ -141,10 +160,9 @@ if [ ! -z "${HDF5_DIR}" ]; then
         -D HDF5_DIR=${HDF5_DIR}"
 fi
 
-# trilinos
+########################################
+# TRILINOS
 if [[ ${PACKAGES_OFF} =~ 'trilinos' ]]; then
-    # Disable trilinos for deal.II, if a special DEAL_CONFOPTS together with
-    # the dealii-prepare loop forces trilinos to be off
     if [ ! -z "${TRILINOS_DIR}" ]; then
         cecho ${INFO} "deal.II: unset TRILINOS_DIR due to forced DEAL_II_WITH_TRILINOS:BOOL=OFF option"
         unset TRILINOS_DIR
@@ -153,15 +171,14 @@ fi
 
 if [ ! -z "${TRILINOS_DIR}" ]; then
     cecho ${INFO} "deal.II: configuration with TRILINOS"
-    CONFOPTS="\
-        ${CONFOPTS} \
-        -D DEAL_II_WITH_TRILINOS:BOOL=ON \
-        -D TRILINOS_DIR=${TRILINOS_DIR}"
+    CONFOPTS="${CONFOPTS} \
+      -D DEAL_II_WITH_TRILINOS:BOOL=ON \
+      -D TRILINOS_DIR=${TRILINOS_DIR}"
 fi
 
 # petsc
 if [[ ${PACKAGES_OFF} =~ 'petsc' ]]; then
-    # Disable petsc for deal.II, if a special DEAL_CONFOPTS together with
+    # Disable petsc for deal.II, if a special DEAL_II_CONFOPTS together with
     # the dealii-prepare loop forces petsc to be off
     if [ ! -z "${PETSC_DIR}" ]; then
         cecho ${INFO} "deal.II: unset PETSC_DIR due to forced DEAL_II_WITH_PETSC:BOOL=OFF option"
@@ -179,7 +196,7 @@ fi
 
 # slepc
 if [[ ${PACKAGES_OFF} =~ 'slepc' ]]; then
-    # Disable slepc for deal.II, if a special DEAL_CONFOPTS together with
+    # Disable slepc for deal.II, if a special DEAL_II_CONFOPTS together with
     # the dealii-prepare loop forces slepc to be off
     if [ ! -z "${SLEPC_DIR}" ]; then
         cecho ${INFO} "deal.II: unset SLEPC_DIR due to forced DEAL_II_WITH_SLEPC:BOOL=OFF option"
@@ -195,10 +212,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_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
@@ -207,12 +223,16 @@ 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"
 fi
 
 ################################################################################
+package_specific_install() {
+    if [ ${RUN_DEAL_II_TESTS} = ON ]; then
+        make test 2>&1 | tee candi_test.log
+    fi
+}
 
 package_specific_conf() {
     ############################################################################
index 07655829cd80be262767e47c688c159ceda8d28b..52054ae490adbd5fb79ea5afcec18febb48cb999 100644 (file)
@@ -1,14 +1,31 @@
-# see http://gmsh.info/src/
-VERSION=3.0.6
-CHECKSUM=78bbfdd695b29cfef18a99f93226afc5
+################################################################################
+## GMSH                                                                       ##
+################################################################################
 
-#VERSION=2.16.0
-#CHECKSUM=762c10f159dab4b042e3140b1c348427
+# Option {ON|OFF}: Choose whether to load the tarball or the git repository.
+CANDI_GMSH_LOAD_TARBALL=ON
 
-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/
+
+    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_3_0_6
+    NAME=gmsh.git
+    PACKING=git
+    EXTRACTSTO=${VERSION}
+    SOURCE=https://gitlab.onelab.info/gmsh/
+fi
+unset CANDI_GMSH_LOAD_TARBALL
 
 BUILDCHAIN=cmake
 
@@ -33,7 +50,6 @@ CONFOPTS=" -D ENABLE_MPI=OFF \
 # -D ENABLE_BUILD_SHARED=ON
 # -D ENABLE_BUILD_DYNAMIC=ON
 
-
 package_specific_register () {
     export GMSH_DIR=${INSTALL_PATH}
     export PATH=${INSTALL_PATH}/bin:$PATH
index ca97b7b3a6f24f7d25a2f2abed7e6b85d7ed4744..fcf061a0a5b79dde0ef11b166d0d8f7db3795d11 100644 (file)
@@ -1,10 +1,15 @@
 MAJORVER=1.10
 MINORVER=5
+CHECKSUM=e115eeb66e944fa7814482415dd21cc4
+
+#MAJORVER=1.10
+#MINORVER=7
+#CHECKSUM=006ed785942f4ed9a6f31556d0ef8ba5
+
 VERSION=${MAJORVER}.${MINORVER}
 NAME=hdf5-${VERSION}
 SOURCE=http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-${MAJORVER}/${NAME}/src/
 PACKING=.tar.gz
-CHECKSUM=e115eeb66e944fa7814482415dd21cc4
 BUILDCHAIN=autotools
 
 CONFOPTS="--enable-shared --enable-parallel"
index 6623c1d49234380660813f0ab832772ceb69a109..9b410308cd30492e6c9e9848a17cc6e162dbe449 100644 (file)
@@ -13,20 +13,20 @@ package_specific_build () {
     cd ${BUILDDIR}
     cp -rf ${UNPACK_PATH}/${EXTRACTSTO}/* .
 
-    make -j ${PROCS} PREFIX=${INSTALL_PATH}
+    make -j ${JOBS} PREFIX=${INSTALL_PATH}
     quit_if_fail "make failed"
 
-    make install -j ${PROCS} PREFIX=${INSTALL_PATH}
+    make install -j ${JOBS} PREFIX=${INSTALL_PATH}
     quit_if_fail "make install failed"
 }
 
 package_specific_register () {
     export LAPACK_DIR=${INSTALL_PATH}/lib
     export BLAS_DIR=${INSTALL_PATH}/lib
-    export BLAS_LIB=${INSTALL_PATH}/lib/libopenblas.so
+    export BLAS_LIB=${INSTALL_PATH}/lib/libopenblas.${LDSUFFIX}
     # older cmake (for example 3.5) does not detect openblas by default so
     # we force detection by adding to the deal.II configure line:
-    export DEAL_CONFOPTS="-D LAPACK_FOUND=true -D LAPACK_LIBRARIES=${INSTALL_PATH}/lib/libopenblas.so ${DEAL_CONFOPTS}"
+    export DEAL_II_CONFOPTS="-D LAPACK_FOUND=true -D LAPACK_LIBRARIES=${INSTALL_PATH}/lib/libopenblas.${LDSUFFIX} ${DEAL_II_CONFOPTS}"
 }
 
 package_specific_conf () {
@@ -36,6 +36,6 @@ package_specific_conf () {
     echo "
 export LAPACK_DIR=${INSTALL_PATH}/lib
 export BLAS_DIR=${INSTALL_PATH}/lib
-export BLAS_LIB=${INSTALL_PATH}/lib/libopenblas.so
+export BLAS_LIB=${INSTALL_PATH}/lib/libopenblas.${LDSUFFIX}
 " >> $CONFIG_FILE
 }
index 595efb616ef70d0e83497d03ceb9d7eaaa608617..d79a703ae8beaff0d811a7dfe702ef6216a849c7 100644 (file)
@@ -1,54 +1,53 @@
-# 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
-    # 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
-    
-    # set up git repository
-    NAME=oce.git
-    PACKING=git
-    SOURCE=https://github.com/tpaviot/
-    
-else
+# Option {ON|OFF}: Choose whether to load the tarball or the git repository.
+CANDI_OPENCASCADE_LOAD_TARBALL=ON
+
+if [ ${CANDI_OPENCASCADE_LOAD_TARBALL} = ON ]; then
     # download release tarball
-    
-    #VERSION=0.17
-    #CHECKSUM=f1a89395c4b0d199bea3db62b85f818d
-    #VERSION=0.18.1
-    #CHECKSUM=2a7597f4243ee1f03245aeeb02d00956
     VERSION=0.18.2
     CHECKSUM=6dfd68e459e2c62387579888a867281f
 
+    # VERSION=0.18.1
+    # CHECKSUM=2a7597f4243ee1f03245aeeb02d00956
+
+    # VERSION=0.17
+    # CHECKSUM=f1a89395c4b0d199bea3db62b85f818d
+
     NAME=OCE-${VERSION}
-    PACKING=.tar.gz
     SOURCE=https://github.com/tpaviot/oce/archive/
     EXTRACTSTO=oce-OCE-${VERSION}
+    PACKING=.tar.gz
+else
+    # download git repository (huge download)
+
+    # checkout specific release version
+    #VERSION=master
+    #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/
 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 578dd0a0c8d2e358e97dd2990140a21b483d773e..adfc2f6a6f9a3ba9219eb76444b93d941088dbd0 100644 (file)
@@ -1,17 +1,26 @@
+               ################################################################################
+## P4EST                                                                      ##
+################################################################################
+
 #VERSION=1.1;CHECKSUM=37ba7f4410958cfb38a2140339dbf64f
 #VERSION=2.0;CHECKSUM=1b7440a78a28ebf713361acfea70ee78
-VERSION=2.2;CHECKSUM=6943949a6678589ebf1686ee7bad7ea1
 
-NAME=p4est-$VERSION
+VERSION=2.2
+CHECKSUM=1549cbeba29bee2c35e7cc50a90a04961da5f23b6eada9c8047f511b90a8e438
+CHECKSUM="${CHECKSUM} 28cbaf51a335c8cc8e78bb38bbb99251ba7ebf80"
+CHECKSUM="${CHECKSUM} 6943949a6678589ebf1686ee7bad7ea1"
+
+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
     }
@@ -26,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${PROCS} > make.output || bdie "Error in make sc"
-    make -j${PROCS} >> 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${PROCS} > make.output || bdie "Error in make sc"
-    make -j${PROCS} >> 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 2a4ec83f19a19ba37f34c96da30b7713f06b85d4..56bf695cb4fff28d31d1828e5bc3702c36bc6ef4 100644 (file)
@@ -16,7 +16,7 @@ package_specific_build() {
     make config prefix=${INSTALL_PATH} shared=1
     quit_if_fail "parmetis/metis make config failed"
     
-    make -j${PROCS}
+    make -j${JOBS}
     quit_if_fail "parmetis/metis make failed"
     
     make install
@@ -28,7 +28,7 @@ package_specific_build() {
     make config prefix=${INSTALL_PATH} shared=1 cc=$CC cxx=$CXX
     quit_if_fail "parmetis make config failed"
     
-    make -j${PROCS}
+    make -j${JOBS}
     quit_if_fail "parmetis make failed"
     
     make install
index d60cbb7bf27e9dd160f6d44e77e64a1b1daf2a92..525e83156160fc9ed41c606bb02dd090a288aed2 100644 (file)
@@ -39,7 +39,7 @@ CONFOPTS="
   --with-64-bit-indices=0
 "
 
-if [ "${NATIVE_OPTIMIZATIONS}" = "true" ]; then
+if [ ${NATIVE_OPTIMIZATIONS} = ON ]; then
     CONFOPTS="${CONFOPTS} \
       COPTFLAGS='-O3 -march=native -mtune=native' \
       CXXOPTFLAGS='-O3 -march=native -mtune=native' \
index 0b68d596ef4c216d94575f4c4c0b50a9dc54b341..6c26753b5380970c076dfd137007798979b589c0 100644 (file)
@@ -1,19 +1,24 @@
+################################################################################
+## SUPERLU_DIST                                                               ##
+################################################################################
+
 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
-CHECKSUM=0a99bbb5f6c26a9c1d7ab17ea35d4e6f
 
 BUILDCHAIN=cmake
+
 INSTALL_PATH=${INSTALL_PATH}/${NAME}
 
-CONFOPTS=" \
-    $CONFOPTS \
-    -D TPL_PARMETIS_INCLUDE_DIRS:PATH=${PARMETIS_DIR}/include \
-    -D TPL_PARMETIS_LIBRARIES:FILEPATH=${PARMETIS_DIR}/lib/libparmetis.${LDSUFFIX} \
-    -D CMAKE_C_FLAGS:STRING=\"-std=c99 -fPIC\" \
-    -D BUILD_SHARED_LIBS:BOOL=ON"
+CONFOPTS="${CONFOPTS} \
+  -D TPL_PARMETIS_INCLUDE_DIRS:PATH=${PARMETIS_DIR}/include \
+  -D TPL_PARMETIS_LIBRARIES:FILEPATH=${PARMETIS_DIR}/lib/libparmetis.${LDSUFFIX} \
+  -D CMAKE_C_FLAGS:STRING=\"-std=c99 -fPIC\" \
+  -D BUILD_SHARED_LIBS:BOOL=ON"
 
 package_specific_register () {
     export SUPERLU_DIR=${INSTALL_PATH}
index ffe01515d5ceaf19ae287104791708df9ab371ea..bb3ccdb33acbb262a3b3ce0c418cd0465027f0df 100644 (file)
@@ -1,3 +1,7 @@
+################################################################################
+## TRILINOS                                                                   ##
+################################################################################
+
 if [ -z "${TRILINOS_MAJOR_VERSION}" ]; then
     TRILINOS_MAJOR_VERSION=AUTO
 fi
@@ -40,84 +44,91 @@ BUILDCHAIN=cmake
 
 INSTALL_PATH=${INSTALL_PATH}/${NAME}
 
-#########################################################################
+################################################################################
 # If you have further options for trilinos, please set:
 #TRILINOS_CONFOPTS=""
 
-#########################################################################
+################################################################################
 # Please do not change the following options
 
 # Set blas and lapack directories
 if [ ! -z "${BLAS_DIR}" ]; then
     cecho ${INFO} "trilinos: configuration with BLAS_DIR=${BLAS_DIR}"
-    CONFOPTS="\
-        ${CONFOPTS} \
-        -D BLAS_LIBRARY_DIRS:STRING=${BLAS_DIR}"
+    CONFOPTS="${CONFOPTS} \
+      -D BLAS_LIBRARY_DIRS:STRING=${BLAS_DIR}"
 fi
 
 if [ ! -z "${LAPACK_DIR}" ]; then
     cecho ${INFO} "trilinos: configuration with LAPACK_DIR=${LAPACK_DIR}"
-    CONFOPTS="
-        ${CONFOPTS} \
-        -D LAPACK_LIBRARY_DIRS:STRING=${LAPACK_DIR}"
+    CONFOPTS="${CONFOPTS} \
+      -D LAPACK_LIBRARY_DIRS:STRING=${LAPACK_DIR}"
 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
         cecho ${INFO} "trilinos: configuration with BLAS_DIR=${MKL_DIR}"
         cecho ${INFO} "trilinos: configuration with LAPACK_DIR=${MKL_DIR}"
-        CONFOPTS=" \
-            ${CONFOPTS} \
-            -D BLAS_LIBRARY_DIRS:STRING=${MKL_DIR} \
-            -D LAPACK_LIBRARY_DIRS:STRING=${MKL_DIR}"
+        CONFOPTS="${CONFOPTS} \
+          -D BLAS_LIBRARY_DIRS:STRING=${MKL_DIR} \
+          -D LAPACK_LIBRARY_DIRS:STRING=${MKL_DIR}"
     fi
+
+    # Trilinos will complain that MKL does not support HAVE_TEUCHOS_BLASFLOAT. See
+    # the discussion in https://github.com/dealii/candi/pull/92 for more details.
+    cecho ${INFO} "trilinos: disabling some Tpetra instantiations because you are using MKL"
     
-    CONFOPTS=" \
-        ${CONFOPTS} \
-        -D BLAS_LIBRARY_NAMES:STRING='mkl_core;mkl_sequential' \
-        -D LAPACK_LIBRARY_NAMES:STRING=mkl_intel_lp64"
+    CONFOPTS="${CONFOPTS} \
+      -D BLAS_LIBRARY_NAMES:STRING='mkl_core;mkl_sequential' \
+      -D Tpetra_INST_FLOAT:BOOL=OFF \
+      -D Tpetra_INST_COMPLEX_FLOAT:BOOL=OFF \
+      -D LAPACK_LIBRARY_NAMES:STRING=mkl_intel_lp64"
+else
+    if [ ! -z "${BLAS_LIB}" ]; then
+        # We need to specify the full name if using openblas.package:
+        cecho ${INFO} "trilinos: configuration with BLAS_LIB=${BLAS_LIB}"
+        CONFOPTS="${CONFOPTS} \
+          -D TPL_BLAS_LIBRARIES:STRING=${BLAS_LIB} \
+          -D TPL_LAPACK_LIBRARIES:STRING=${BLAS_LIB}"
+    fi
 fi
 
 # Set compilers & compiler options
 if [ ! -z "${CC}" ]; then
-    CONFOPTS="\
-        ${CONFOPTS} \
-        -D CMAKE_C_COMPILER=${CC}"
+    CONFOPTS="${CONFOPTS} \
+      -D CMAKE_C_COMPILER=${CC}"
 fi
 
 if [ ! -z "${CXX}" ]; then
-    CONFOPTS="\
-        ${CONFOPTS} \
-        -D CMAKE_CXX_COMPILER=${CXX}"
+    CONFOPTS="${CONFOPTS} \
+      -D CMAKE_CXX_COMPILER=${CXX}"
 fi
 
 if [ ! -z "${FC}" ]; then
-    CONFOPTS="\
-        ${CONFOPTS} \
-        -D CMAKE_Fortran_COMPILER=${FC}"
+    CONFOPTS="${CONFOPTS} \
+      -D CMAKE_Fortran_COMPILER=${FC}"
 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 -O5 \
-          -D Trilinos_EXTRA_LINK_FLAGS:STRING=-lgfortran"
+  -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'"
 
 # Add ParMETIS, if present
 if [ ! -z "${PARMETIS_DIR}" ]; then
     cecho ${INFO} "trilinos: configuration with ParMETIS"
-    
+
     # NOTE: if parmetis v4.0.3 is not found, but installed, add
     #  -D HAVE_PARMETIS_VERSION_4_0_3=ON"
-       
-    CONFOPTS="\
-        ${CONFOPTS} \
-        ${TRILINOS_PARMETIS_CONFOPTS} \
-        -D TPL_ENABLE_ParMETIS:BOOL=ON \
-        -D TPL_ParMETIS_LIBRARIES:FILEPATH='${PARMETIS_DIR}/lib/libparmetis.${LDSUFFIX};${PARMETIS_DIR}/lib/libmetis.${LDSUFFIX}' \
-        -D TPL_ParMETIS_INCLUDE_DIRS:PATH=${PARMETIS_DIR}/include"
+
+    CONFOPTS="${CONFOPTS} \
+      ${TRILINOS_PARMETIS_CONFOPTS} \
+      -D TPL_ENABLE_ParMETIS:BOOL=ON \
+      -D TPL_ParMETIS_LIBRARIES:FILEPATH='${PARMETIS_DIR}/lib/libparmetis.${LDSUFFIX};${PARMETIS_DIR}/lib/libmetis.${LDSUFFIX}' \
+      -D TPL_ParMETIS_INCLUDE_DIRS:PATH=${PARMETIS_DIR}/include"
 fi
 
 # Add SuperLU_dist, if present
@@ -145,7 +156,7 @@ CONFOPTS="${TRILINOS_CONFOPTS} \
           -D TPL_ENABLE_MPI:BOOL=ON \
           -D Trilinos_ENABLE_OpenMP:BOOL=OFF \
           -D TPL_ENABLE_TBB:BOOL=OFF \
-          -D Trilinos_VERBOSE_CONFIGURE:BOOL=FALSE \
+          -D Trilinos_VERBOSE_CONFIGURE:BOOL=OFF \
           -D Trilinos_ENABLE_Sacado:BOOL=ON \
           -D Trilinos_ENABLE_Stratimikos:BOOL=ON \
           -D Trilinos_ENABLE_Belos:BOOL=ON \
diff --git a/deal.II-toolchain/platforms/.single b/deal.II-toolchain/platforms/.single
deleted file mode 100644 (file)
index e69de29..0000000
index 5cdfb76964df330f41ad5b85d774b1426c9a807f..b078096756bfca07ce90c5a4d20711b2afec20ee 100644 (file)
@@ -32,7 +32,7 @@ TRILINOS_CONFOPTS=" \
 -D LAPACK_INCLUDE_DIRS=$CRAY_LIBSCI_PREFIX_DIR/include \
 -D LAPACK_LIBRARY_NAMES=sci_gnu"
 
-DEAL_CONFOPTS=" \
+DEAL_II_CONFOPTS=" \
 -D DEAL_II_COMPILER_HAS_FUSE_LD_GOLD=OFF \
 -D DEAL_II_WITH_LAPACK=OFF \
 -D DEAL_II_WITH_BLAS=OFF \
diff --git a/deal.II-toolchain/platforms/deprecated/fedora22.platform b/deal.II-toolchain/platforms/deprecated/fedora22.platform
deleted file mode 100644 (file)
index 290e917..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-# Fedora 22
-
-# 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/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}"
similarity index 88%
rename from deal.II-toolchain/platforms/supported/ubuntu14.platform
rename to deal.II-toolchain/platforms/deprecated/ubuntu14.platform
index 1ffa4ff19ce102060d23cf7f50351fcab5670292..7ee026d367b5f3c94f2a3f7d305fd8702bdc9e08 100644 (file)
@@ -20,7 +20,7 @@
 # version number is not set to AUTO.
 # The last point is due to own compilers (e.g. intel) which support
 # Trilinos 12.
-if [ ${STABLE_BUILD} == "true" ] && [ ${DEAL_II_VERSION} == "v8.3.0" ] && [ ${TRILINOS_MAJOR_VERSION} == "AUTO" ]; then
+if [ ${DEAL_II_VERSION} ~= "master" ] && [ ${DEAL_II_VERSION} == "v8.3.0" ] && [ ${TRILINOS_MAJOR_VERSION} == "AUTO" ]; then
   TRILINOS_MAJOR_VERSION=11
 fi
 
similarity index 89%
rename from deal.II-toolchain/platforms/supported/ubuntu17.platform
rename to deal.II-toolchain/platforms/deprecated/ubuntu17.platform
index 50043333b75b00f7af72332adde056cfc17ed2f7..3be159c7b6b863376560c0375dd679ecfe769efb 100644 (file)
@@ -7,7 +7,7 @@
 #   automake autoconf gfortran \
 #   openmpi-bin openmpi-common libopenmpi-dev cmake subversion git \
 #   libblas-dev liblapack-dev libblas3 liblapack3 \
-#   libsuitesparse-dev libtool libboost-all-dev \
+#   libsuitesparse-dev libtool libboost-all-dev zlib1g-dev \
 #   splint tcl tcl-dev environment-modules qt4-dev-tools
 #
 # Then run candi again.
diff --git a/deal.II-toolchain/platforms/supported/arch.platform b/deal.II-toolchain/platforms/supported/arch.platform
new file mode 100644 (file)
index 0000000..3df0229
--- /dev/null
@@ -0,0 +1,16 @@
+# Arch Linux / Manjaro
+
+# 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
+#
+##
+
+#
+# Define the additional packages for this platform.
+#PACKAGES="once:cmake ${PACKAGES}"
+
index 466df91949b2544543d3e0068c8e9f5030cafae0..b1bfe3fafcffc141f69b6259eb2b43575670bdfd 100644 (file)
@@ -5,6 +5,7 @@
 #
 # 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 \
@@ -12,6 +13,8 @@
 # blas blas-devel lapack lapack-devel \
 # doxygen graphviz graphviz-devel qt-devel
 # 
+# Be sure to switch to the recent compilers with
+# $ scl enable devtoolset-9 bash 
 # Please load the 'openmpi' compiler with
 # $  module load mpi/openmpi-x86_64
 # and then set the compiler enviroment variables to
@@ -27,5 +30,5 @@ TRILINOS_PARMETIS_CONFOPTS="\
 
 #
 # Define the additional packages for this platform.
-#PACKAGES="once:cmake ${PACKAGES}"
+PACKAGES="once:cmake ${PACKAGES}"
 
similarity index 74%
rename from deal.II-toolchain/platforms/supported/fedora27.platform
rename to deal.II-toolchain/platforms/supported/fedora.platform
index e141d8ffe2671fd8ab71a421dfc955662311e7c2..7960dc3ac49084608fed0e060b7542f4b1956197 100644 (file)
@@ -1,14 +1,14 @@
-# Fedora 27
+# 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 \
+# @development-tools gcc-c++ cmake patch libtool lua lua-devel \
+# doxygen graphviz graphviz-devel \
 # blas blas-devel lapack lapack-devel \
-# doxygen graphviz graphviz-devel qt-devel \
-# metis metis-devel 
+# openmpi openmpi-devel \
+# metis metis-devel
 # 
 # Please load the 'openmpi' compiler with
 # $  module load mpi/openmpi-x86_64
@@ -20,4 +20,3 @@
 #
 # Define the additional packages for this platform.
 #PACKAGES="once:cmake ${PACKAGES}"
-
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/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/macos_bigsur.platform b/deal.II-toolchain/platforms/supported/macos_bigsur.platform
new file mode 100644 (file)
index 0000000..b4c4116
--- /dev/null
@@ -0,0 +1,38 @@
+# macOS Big Sur (11.4)
+#
+# macOS support is experimental and requires:
+# - 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
+# $ xcode-select --install
+# 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
+#
+# Put the following definitions into your bashrc to use gcc (instead of apple clang):
+#   export OMPI_CXX=g++-9
+#   export OMPI_CC=gcc-9
+#   export OMPI_FC=gfortran-9
+#
+# (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 94%
rename from deal.II-toolchain/platforms/supported/elcapitan.platform
rename to deal.II-toolchain/platforms/supported/macos_elcapitan.platform
index 824ffb21643be4d4253a628c21be7993d4336b3d..62bb54bc6ad22f3556d02a92c399f9d1ce5e2566 100644 (file)
@@ -18,7 +18,7 @@
 # 
 # Install the following via Homebrew
 # $ brew install cmake
-# $ brew install openmpi --c++11 --with-mpi-thread-multiple
+# $ brew install openmpi
 # 
 # (Optional) Install the following via Homebrew
 # $ brew install wget
similarity index 93%
rename from deal.II-toolchain/platforms/supported/highsierra.platform
rename to deal.II-toolchain/platforms/supported/macos_highsierra.platform
index b501c047463966d5816f05ce8beef226ebb64a20..0d54c34975baad91aca42ea381ccd4d981f13d45 100644 (file)
@@ -18,7 +18,7 @@
 # 
 # Install the following via Homebrew
 # $ brew install cmake
-# $ brew install openmpi --c++11 --with-mpi-thread-multiple
+# $ brew install openmpi
 # 
 # (Optional) Install the following via Homebrew
 # $ brew install wget
diff --git a/deal.II-toolchain/platforms/supported/opensuse12.platform b/deal.II-toolchain/platforms/supported/opensuse12.platform
deleted file mode 100644 (file)
index cb0c3e3..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# openSUSE 12
-# 
-# This build script assumes that you have several packages already
-# installed via openSUSE's zypper using the following commands:
-#
-# > su -c 'zypper -n in -t pattern devel_basis devel_C_C++ devel_qt4'
-# 
-# > su -c 'zypper -n in Modules gcc-fortran subversion git cmake \
-#   openmpi openmpi-devel splint blas-devel lapack-devel \
-#   doxygen graphviz graphviz-devel'
-# 
-# Then reboot and run candi again.
-# 
-# NOTE: There is a small "bug" in openmpi 1.6, you must set the following
-#       softlink to run mpi-programs:
-#       > su -c 'mkdir /usr/lib64/mpi/gcc/openmpi/etc'
-# 
-#       > su -c 'ln -s /etc/openmpi-default-hostfile \
-#         /usr/lib64/mpi/gcc/openmpi/etc/openmpi-default-hostfile'
-##
-
-#
-# Define the additional packages for this platform.
-#PACKAGES="once:cmake ${PACKAGES}"
-
diff --git a/deal.II-toolchain/platforms/supported/opensuse13.platform b/deal.II-toolchain/platforms/supported/opensuse13.platform
deleted file mode 100644 (file)
index 09c00d5..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-# openSUSE 13
-# 
-# This build script assumes that you have several packages already
-# installed via openSUSE's zypper using the following commands:
-#
-# > su -c 'zypper -n in -t pattern devel_basis devel_C_C++ devel_qt4'
-# 
-# and
-# 
-# > su -c 'zypper -n in Modules gcc-fortran subversion git cmake \
-#   openmpi openmpi-devel splint blas-devel lapack-devel \
-#   doxygen graphviz graphviz-devel'
-# 
-# Then reboot and run candi again.
-##
-
-#
-# Define the additional packages for this platform.
-#PACKAGES="once:cmake ${PACKAGES}"
-
index 263c1c0f697810051af9e9e6739e4bb998f052ea..be44182063e545070068c4de8a44723df34631ab 100644 (file)
@@ -4,10 +4,10 @@
 # installed via ubuntu's apt-get using the following commands:
 #
 # > sudo apt-get install build-essential lsb-release wget \
-#   automake autoconf gfortran \
+#   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 \
+#   libsuitesparse-dev libtool libboost-all-dev zlib1g-dev \
 #   splint tcl tcl-dev environment-modules qt4-dev-tools
 #
 # Then run candi again.
index 7bfcf97ecaedd5d3b5aea1fa40be45630aa836eb..454824ae9b7774c6c736911e6d0543166d169370 100644 (file)
@@ -4,10 +4,10 @@
 # installed via ubuntu's apt-get using the following commands:
 #
 # > sudo apt-get install build-essential lsb-release wget \
-#   automake autoconf gfortran \
+#   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 \
+#   libsuitesparse-dev libtool libboost-all-dev zlib1g-dev \
 #   splint tcl tcl-dev environment-modules qt4-dev-tools
 #
 # Then run candi again.
diff --git a/deal.II-toolchain/platforms/supported/ubuntu20.platform b/deal.II-toolchain/platforms/supported/ubuntu20.platform
new file mode 100644 (file)
index 0000000..b474e83
--- /dev/null
@@ -0,0 +1,32 @@
+# 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 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.
+#
+#
+# To use native compiler optimizations on Intel's 11th-Gen (TigerLake)
+# you may need to use the GNU Compiler collection Version 10 or newer.
+# To priorize v10 over the default v9, do
+#
+#   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.
+##
+
+# 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.