From 092d71c3df5318064f9df95a508cdb8b12343344 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Tue, 4 Jul 2017 00:11:03 +0200 Subject: [PATCH 01/15] COMP: improve support for non-system python locations (issue #17) --- etc/tools/ParaViewFunctions | 139 ++++++++++++++++++++++-------------- makeParaView | 8 +++ 2 files changed, 95 insertions(+), 52 deletions(-) diff --git a/etc/tools/ParaViewFunctions b/etc/tools/ParaViewFunctions index a53bdda..00adaeb 100644 --- a/etc/tools/ParaViewFunctions +++ b/etc/tools/ParaViewFunctions @@ -27,6 +27,18 @@ # Description # ParaView make/install helper functions # +# Note +# Obtainining paths via 'python-config' is possible, but may not always +# resolve properly: +# +# python-config --includes +# >> +# -I/usr/include/python2.7 -I/usr/include/python2.7 +# +# python-config --libs +# >> +# -lpython2.7 -lpthread -ldl -lutil -lm +# #------------------------------------------------------------------------------ # Variables referenced by the functions. Initialization at the end of the file. @@ -159,68 +171,91 @@ addMpiSupport() # addPythonSupport() { - if [ "${withPYTHON:=false}" != true ] + if [ "${withPYTHON:-false}" != true ] then return fi - if pythonBin=$(which python 2>/dev/null) - then - if [ -n "$PYTHON_LIBRARY" ] - then - # Check $PYTHON_LIBRARY if it has been set - if [ ! -e "$PYTHON_LIBRARY" ] - then - echo "*** Error: libpython not found at location specified " \ - "by -pythnon-lib input: PYTHON_LIBRARY=$PYTHON_LIBRARY" - fi - else - # Try to get $PYTHON_LIBRARY from dynamically linked binary - PYTHON_LIBRARY=$(ldd $pythonBin | \ - sed -ne '/libpython/s/.* => \(.*\) (.*/\1/p') + local pythonBin pythonConfig pythonMajor - [ -e "$PYTHON_LIBRARY" ] || { - echo "*** Error: Unable to determine path to python library." - } - fi - - [ -e "$PYTHON_LIBRARY" ] || { - echo " Please set the full path to the python library " - echo " (including libpython) using the -python-lib option, " - echo " or deactivate python support by not using the -python " - echo " option" - exit 1 - } - - pythonMajor=$(echo $PYTHON_LIBRARY | sed 's/.*libpython\(.*\)\.so.*/\1/') - pythonInclude=/usr/include/python$pythonMajor - - # Note - we could also allow for a PYTHON_INCLUDE variable ... - [ -d "$pythonInclude" -a -f "$pythonInclude/Python.h" ] || { - echo " No python headers found in $pythonInclude/" - echo " Please install python headers or deactivate " - echo " python support by not using the -python option" - exit 1 - } - - addCMakeVariable "PARAVIEW_ENABLE_PYTHON=ON" - addCMakeVariable "PYTHON_INCLUDE_DIRS=$pythonInclude" - addCMakeVariable "PYTHON_LIBRARY=$PYTHON_LIBRARY" - - echo "----" - echo "Python information:" - echo " executable : $pythonBin" - echo " version : $pythonMajor" - echo " include path : $pythonInclude" - echo " library : $PYTHON_LIBRARY" - - unset pythonBin pythonInclude pythonMajor - else + pythonBin=$(which python 2>/dev/null) || { echo "*** Error: python not found" echo "*** Deactivate python support by not using the -python " echo "*** option" exit 1 + } + + if [ -n "$PYTHON_LIBRARY" ] + then + + # PYTHON_LIBRARY set: + [ -e "$PYTHON_LIBRARY" ] || \ + echo "*** Error: libpython not found at location specified " \ + "by -python-lib : PYTHON_LIBRARY=$PYTHON_LIBRARY" + + else + + # Fallback: get PYTHON_LIBRARY from dynamically linked binary + + PYTHON_LIBRARY=$(ldd $pythonBin | \ + sed -ne '/libpython/s/^.* => \(.*\) (.*/\1/p') + + [ -e "$PYTHON_LIBRARY" ] || { + echo "*** Error: Unable to determine path to python library." + } + fi + + [ -e "$PYTHON_LIBRARY" ] || { + echo " Please set the full path to the python library " + echo " (including libpython) using the -python-lib option, " + echo " or deactivate python support by not using the -python " + echo " option" + exit 1 + } + + # Guess major from library + pythonMajor=$(echo $PYTHON_LIBRARY | sed 's/.*libpython\(.*\)\.so.*/\1/') + + if [ -n "$PYTHON_INCLUDE" ] + then + + # PYTHON_INCLUDE set: + [ -d "$PYTHON_INCLUDE" -a -f "$PYTHON_INCLUDE/Python.h" ] || \ + echo "*** Error: Python.h not found at location specified " \ + "by -python-include : PYTHON_INCLUDE=$PYTHON_INCLUDE" + + elif pythonConfig=$(which python-config 2>/dev/null) + then + # Guess from python-config + # parse '-I/usr/include/python2.7 -I/usr/include/python2.7' + # -> '/usr/include/python2.7' + PYTHON_INCLUDE=$(python-config --includes | sed -ne 's/^-I\([^ ][^ ]*\).*$/\1/p') + + else + + # Fallback to system headers + PYTHON_INCLUDE=/usr/include/python$pythonMajor + + fi + + [ -d "$PYTHON_INCLUDE" -a -f "$PYTHON_INCLUDE/Python.h" ] || { + echo " No python headers found in $PYTHON_INCLUDE/" + echo " Please install python headers or deactivate " + echo " python support by not using the -python option" + exit 1 + } + + addCMakeVariable "PARAVIEW_ENABLE_PYTHON=ON" + addCMakeVariable "PYTHON_INCLUDE_DIRS=$PYTHON_INCLUDE" + addCMakeVariable "PYTHON_LIBRARY=$PYTHON_LIBRARY" + + echo "----" + echo "Python information:" + echo " executable : $pythonBin" + echo " version : $pythonMajor" + echo " include path : $PYTHON_INCLUDE" + echo " library : $PYTHON_LIBRARY" } diff --git a/makeParaView b/makeParaView index 666e5e0..f509270 100755 --- a/makeParaView +++ b/makeParaView @@ -78,6 +78,8 @@ options: -mpi with mpi -mpi=N with max 'N' mpi processes. N=0 for no upper-limit. -python with python + -python-include DIR + location of python headers (current: ${PYTHON_INCLUDE:-none}) -python-lib PATH path to python library (current: ${PYTHON_LIBRARY:-none}) -cmake PATH with cmake from the path given -qmake PATH with the Qt version corresponding to the qmake path given @@ -233,6 +235,12 @@ do -no-python) withPYTHON=false ;; + -python-include) + [ "$#" -ge 2 ] || die "'$1' option requires an argument" + withPYTHON=true + PYTHON_INCLUDE="${2%%/}" + shift + ;; -python-lib) [ "$#" -ge 2 ] || die "'$1' option requires an argument" withPYTHON=true From ec80e1df97a67b4a7580ffc208f088495db8ec20 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 12 Jul 2017 11:28:59 +0200 Subject: [PATCH 02/15] COMP: improve consistency for Intel-MPI and non-icc compilers (issue #524) --- Allwmake | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Allwmake b/Allwmake index 06fc4ff..ef0cf20 100755 --- a/Allwmake +++ b/Allwmake @@ -145,6 +145,9 @@ then export CCS="${CC:-$WM_CC}" # CCS (serial compiler) default=$(CC) export CCP=$(whichMpicc) # CCP (parallel compiler) default=mpicc + # Consistency for Intel-MPI and non-icc compilers + [ -n "$I_MPI_CC" ] || export I_MPI_CC="${CC:-$WM_CC}" + make realclean 2>/dev/null # Extra safety make -j $WM_NCOMPPROCS scotch \ && make \ @@ -209,6 +212,9 @@ then export CCS="${CC:-$WM_CC}" # CCS (serial compiler) default=$(CC) export CCP=$(whichMpicc) # CCP (parallel compiler) default=mpicc + # Consistency for Intel-MPI and non-icc compilers + [ -n "$I_MPI_CC" ] || export I_MPI_CC="${CC:-$WM_CC}" + make realclean 2>/dev/null # Extra safety make -j $WM_NCOMPPROCS ptscotch \ && make \ From 7f4a904b90817afbdeee94aac4fdf4fdea29b509 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Thu, 3 Aug 2017 08:14:32 +0200 Subject: [PATCH 03/15] COMP: no explicit handling of mpi-profiling for openmpi (fixes #18) - previously explicitly disabled mpi-profiling, but now let openmpi configure it itself. - add config support for mpi-threads --- makeOPENMPI | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/makeOPENMPI b/makeOPENMPI index a61f954..1b58d2c 100755 --- a/makeOPENMPI +++ b/makeOPENMPI @@ -71,6 +71,9 @@ _foamEtc config.sh/mpi mpiPACKAGE=${FOAM_MPI:-openmpi-system} +# Configure with/without mpi-threads +unset optMpiThreads + #------------------------------------------------------------------------------ usage() { exec 1>&2 @@ -80,6 +83,8 @@ usage() { usage: ${0##*/} [OPTION] [openmpi-VERSION] options: -gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX + -no-thread disable multiple mpi threads + -thread enable multiple mpi threads -help * build openmpi with @@ -100,6 +105,8 @@ do '') ;; # Ignore empty -h | -help) usage ;; -gcc) useGcc ;; + -no-thread*) optMpiThreads=disable ;; + -thread*) optMpiThreads=enable ;; openmpi-[0-9]* | openmpi_[0-9]* | openmpi-system ) mpiPACKAGE="${1%%/}" @@ -136,10 +143,10 @@ MPI_ARCH_PATH=$installBASE/$mpiPACKAGE if [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi.so" ] then - echo "Already has shared library" + echo "Already has shared library: $MPI_ARCH_PATH" elif [ -r "$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/libmpi.a" ] then - echo "Already has static library" + echo "Already has static library: $MPI_ARCH_PATH" else echo "Starting build: $WM_MPLIB ($mpiPACKAGE)" echo @@ -157,6 +164,12 @@ else configOpt="$configOpt --with-verbs=$ibDir --with-verbs-lib=$ibLib" fi + # Explicitly enable/disable multiple mpi threads + if [ -n "$optMpiThreads" ] + then + configOpt="$configOpt -${optMpiThreads}-mpi-thread-multiple" + fi + # end of configuration options # ---------------------------- @@ -178,7 +191,6 @@ else --disable-orterun-prefix-by-default \ --enable-shared --disable-static \ --enable-mpi-fortran=none \ - --disable-mpi-profile \ $configOpt \ && set +x \ && make -j $WM_NCOMPPROCS \ From 0f9fe6b86349ab2848a8e8467e9c945d54d482c9 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Thu, 3 Aug 2017 09:42:33 +0200 Subject: [PATCH 04/15] COMP: paraview mpi config not being passed to vtk backend? --- etc/tools/ParaViewFunctions | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/etc/tools/ParaViewFunctions b/etc/tools/ParaViewFunctions index 00adaeb..fb728e5 100644 --- a/etc/tools/ParaViewFunctions +++ b/etc/tools/ParaViewFunctions @@ -128,10 +128,10 @@ setParaViewVersion() # addCMakeVariable() { - while [ -n "$1" ] + local i + for i do - CMAKE_VARIABLES="$CMAKE_VARIABLES -D$1" - shift + [ -n "$i" ] && CMAKE_VARIABLES="$CMAKE_VARIABLES -D$i" done } @@ -158,7 +158,7 @@ addMpiSupport() return fi - addCMakeVariable "PARAVIEW_USE_MPI=ON VTK_USE_MPI=ON" + addCMakeVariable "PARAVIEW_USE_MPI=ON" "VTK_USE_MPI=ON" if [ "${MPI_MAX_PROCS:=0}" -gt 1 ] then addCMakeVariable "VTK_MPI_MAX_NUMPROCS=$MPI_MAX_PROCS" From 19f241fae21d7c21c53b5269125e06a083bd91c5 Mon Sep 17 00:00:00 2001 From: Andrew Heather <> Date: Thu, 7 Sep 2017 14:38:19 +0100 Subject: [PATCH 05/15] ENH: Updated makeOPENMPI script to support new collocated IO --- makeOPENMPI | 1 + 1 file changed, 1 insertion(+) diff --git a/makeOPENMPI b/makeOPENMPI index 1b58d2c..6cbed41 100755 --- a/makeOPENMPI +++ b/makeOPENMPI @@ -191,6 +191,7 @@ else --disable-orterun-prefix-by-default \ --enable-shared --disable-static \ --enable-mpi-fortran=none \ + --enable-mpi-thread-multiple \ $configOpt \ && set +x \ && make -j $WM_NCOMPPROCS \ From c0de94d846c7ad7678eba9be8774ff1303e36147 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Tue, 12 Sep 2017 09:43:18 +0200 Subject: [PATCH 06/15] STYLE: drop -thread/-no-thread option for makeOPENMPI - made redundant by 19f241f. Multiple threads are needed by the collated format and are now always enabled. --- makeOPENMPI | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/makeOPENMPI b/makeOPENMPI index 6cbed41..f60f7c0 100755 --- a/makeOPENMPI +++ b/makeOPENMPI @@ -71,9 +71,6 @@ _foamEtc config.sh/mpi mpiPACKAGE=${FOAM_MPI:-openmpi-system} -# Configure with/without mpi-threads -unset optMpiThreads - #------------------------------------------------------------------------------ usage() { exec 1>&2 @@ -83,8 +80,6 @@ usage() { usage: ${0##*/} [OPTION] [openmpi-VERSION] options: -gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX - -no-thread disable multiple mpi threads - -thread enable multiple mpi threads -help * build openmpi with @@ -105,8 +100,6 @@ do '') ;; # Ignore empty -h | -help) usage ;; -gcc) useGcc ;; - -no-thread*) optMpiThreads=disable ;; - -thread*) optMpiThreads=enable ;; openmpi-[0-9]* | openmpi_[0-9]* | openmpi-system ) mpiPACKAGE="${1%%/}" @@ -164,12 +157,6 @@ else configOpt="$configOpt --with-verbs=$ibDir --with-verbs-lib=$ibLib" fi - # Explicitly enable/disable multiple mpi threads - if [ -n "$optMpiThreads" ] - then - configOpt="$configOpt -${optMpiThreads}-mpi-thread-multiple" - fi - # end of configuration options # ---------------------------- From 51435f2e56aa862cffea1081d1c1b90c9076cd28 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Mon, 18 Sep 2017 13:40:49 +0200 Subject: [PATCH 07/15] COMP: change ordering of statements to prevent premature termination after make COMP: VTK- prefix not being trimmed from the name --- etc/tools/vtkFunctions | 3 ++- makeVTK | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/etc/tools/vtkFunctions b/etc/tools/vtkFunctions index eece891..3cea401 100644 --- a/etc/tools/vtkFunctions +++ b/etc/tools/vtkFunctions @@ -169,11 +169,12 @@ makeVTK() cd $VTK_BUILD_DIR || exit 1 # Change to build folder echo " Starting make" time make -j $WM_NCOMPPROCS - echo " Done make" # Remove lib if it is a link # (how this was previously handled before 'make install' worked) [ -L lib ] && rm -f lib 2>/dev/null + + echo " Done make" # Last statement for clean return code } diff --git a/makeVTK b/makeVTK index 99ead3d..8ce17b6 100755 --- a/makeVTK +++ b/makeVTK @@ -54,7 +54,7 @@ unset vtk_version mesa_version # Purge current values # vtk version from OpenFOAM etc/config.sh file: _foamEtc config.sh/vtk -VTK_VERSION=$vtk_version +VTK_VERSION="${vtk_version##*-}" # Without prefix # New rendering backend (starting with vtk 7?). withGL2=auto # auto-config based on version From 0c7fa1cc7c5bfc646e8cbceb6b53241b5ab1c057 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Fri, 29 Sep 2017 13:35:50 +0200 Subject: [PATCH 08/15] COMP: have scotch use deterministic behaviour (closes #20) --- etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM | 1 + 1 file changed, 1 insertion(+) diff --git a/etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM b/etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM index c6f1bce..1733136 100644 --- a/etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM +++ b/etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM @@ -20,6 +20,7 @@ CCD = $(CCP) CFLAGS = $(WM_CFLAGS) -O3 \ -DCOMMON_FILE_COMPRESS_GZ \ -DCOMMON_RANDOM_FIXED_SEED \ + -DSCOTCH_DETERMINISTIC \ -DSCOTCH_RENAME \ -Drestrict=__restrict From bc7fb088109179c7ac89b97d7937f406c514a23d Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Fri, 29 Sep 2017 17:13:20 +0200 Subject: [PATCH 09/15] STYLE: relocated etc/wmakeFiles as makeFiles --- Allwmake | 2 +- etc/{wmakeFiles => makeFiles}/libccmio/files | 2 +- etc/makeFiles/libccmio/options | 3 +++ .../scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM | 0 etc/tools/ThirdPartyFunctions | 4 ++-- etc/wmakeFiles/libccmio/options | 3 --- 6 files changed, 7 insertions(+), 7 deletions(-) rename etc/{wmakeFiles => makeFiles}/libccmio/files (86%) create mode 100644 etc/makeFiles/libccmio/options rename etc/{wmakeFiles => makeFiles}/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM (100%) delete mode 100644 etc/wmakeFiles/libccmio/options diff --git a/Allwmake b/Allwmake index ef0cf20..6546e15 100755 --- a/Allwmake +++ b/Allwmake @@ -107,7 +107,7 @@ echo " $SCOTCH_ARCH_PATH" SCOTCH_SOURCE_DIR=$sourceBASE/$SCOTCH_VERSION # Needs generalizing, but works fairly well -scotchMakefile=../../etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM +scotchMakefile=../../etc/makeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM if [ -f $SCOTCH_ARCH_PATH/include/scotch.h \ -a -r $FOAM_EXT_LIBBIN/libscotch.so \ diff --git a/etc/wmakeFiles/libccmio/files b/etc/makeFiles/libccmio/files similarity index 86% rename from etc/wmakeFiles/libccmio/files rename to etc/makeFiles/libccmio/files index 9949c76..57e04e3 100644 --- a/etc/wmakeFiles/libccmio/files +++ b/etc/makeFiles/libccmio/files @@ -1,4 +1,4 @@ -/* NOTE: make any changes to this file in etc/wmakeFiles/ */ +/* NOTE: make any changes to this file in etc/makeFiles/ */ libadf/ADF_interface.c libadf/ADF_internals.c diff --git a/etc/makeFiles/libccmio/options b/etc/makeFiles/libccmio/options new file mode 100644 index 0000000..267c586 --- /dev/null +++ b/etc/makeFiles/libccmio/options @@ -0,0 +1,3 @@ +/* NOTE: make any changes to this file in etc/makeFiles/ */ + +/* EXE_INC = */ diff --git a/etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM b/etc/makeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM similarity index 100% rename from etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM rename to etc/makeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM diff --git a/etc/tools/ThirdPartyFunctions b/etc/tools/ThirdPartyFunctions index 6c5c6a7..788d5b7 100644 --- a/etc/tools/ThirdPartyFunctions +++ b/etc/tools/ThirdPartyFunctions @@ -417,7 +417,7 @@ downloadFile() # -# Copy Make/{files,options} from etc/wmakeFiles/PACKAGE +# Copy Make/{files,options} from etc/makeFiles/PACKAGE # # $1 = PACKAGE # $2 = TARGET DIRECTORY (optional) @@ -432,7 +432,7 @@ cpMakeFiles() local dst="${2:-.}" echo "cpMakeFiles" $pkg $dst - wmakeFiles=$WM_THIRD_PARTY_DIR/etc/wmakeFiles/$pkg + wmakeFiles=$WM_THIRD_PARTY_DIR/etc/makeFiles/$pkg for i in $(cd $wmakeFiles && find . -type f) do diff --git a/etc/wmakeFiles/libccmio/options b/etc/wmakeFiles/libccmio/options deleted file mode 100644 index 5f4fb60..0000000 --- a/etc/wmakeFiles/libccmio/options +++ /dev/null @@ -1,3 +0,0 @@ -/* NOTE: make any changes to this file in etc/wmakeFiles/ */ - -/* EXE_INC = */ From 6f32862d26fd35af972821b361963c62766d4487 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Mon, 9 Oct 2017 15:17:10 +0200 Subject: [PATCH 10/15] ENH: add -memcheck config option for makeOPENMPI --- makeOPENMPI | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/makeOPENMPI b/makeOPENMPI index 3d7c6eb..52e708c 100755 --- a/makeOPENMPI +++ b/makeOPENMPI @@ -79,7 +79,8 @@ usage() { usage: ${0##*/} [OPTION] [openmpi-VERSION] options: - -gcc force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX + -gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX + -memcheck Configure with --enable-memcheck (requires valgrind.h) -help * build openmpi with @@ -93,6 +94,8 @@ USAGE [ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CXX" ] && export CXX="$WM_CXX" +unset optMemchecker + # Parse options while [ "$#" -gt 0 ] do @@ -100,6 +103,7 @@ do '') ;; # Ignore empty -h | -help) usage ;; -gcc) useGcc ;; + -memcheck*) optMemchecker=true ;; openmpi-[0-9]* | openmpi_[0-9]* | openmpi-system ) mpiPACKAGE="${1%%/}" @@ -160,6 +164,11 @@ else fi done + if [ "$optMemchecker" = true ] + then + configOpt="$configOpt --enable-memchecker --with-valgrind" + fi + # end of configuration options # ---------------------------- From 491b3390bb3b024354c46563a5a6ab4fea380f45 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 11 Oct 2017 09:50:16 +0200 Subject: [PATCH 11/15] ENH: add build scripts for KaHIP and METIS --- Allclean | 13 +++ Allwmake | 78 ++++++-------- BUILD.md | 54 ++++++---- etc/makeFiles/kahip/files | 70 ++++++++++++ etc/makeFiles/kahip/options | 14 +++ makeCCMIO | 41 ++++++-- makeCGAL | 8 +- makeFFTW | 4 +- makeKAHIP | 205 ++++++++++++++++++++++++++++++++++++ makeMETIS | 201 +++++++++++++++++++++++++++++++++++ makeMGridGen | 26 ++--- 11 files changed, 622 insertions(+), 92 deletions(-) create mode 100644 etc/makeFiles/kahip/files create mode 100644 etc/makeFiles/kahip/options create mode 100755 makeKAHIP create mode 100755 makeMETIS diff --git a/Allclean b/Allclean index b50475c..429a3f5 100755 --- a/Allclean +++ b/Allclean @@ -94,6 +94,19 @@ do done +# Clean various packages via 'wclean' +for i in libccmio*/Make kahip*/lib/Make +do + [ -d "$i" ] && ( + echo + echo "${i%/Make}" + echo " wclean" + echo + cd ${i%/Make} && wclean + ) +done + + # Clean out-of-source build directories if [ -d build ] then diff --git a/Allwmake b/Allwmake index 6546e15..ce04428 100755 --- a/Allwmake +++ b/Allwmake @@ -65,8 +65,7 @@ warnBuildIssues() warnNotFound() { - echo " Optional component ($1) was not found" - echo + echo "Optional component ($1) was not found" } #------------------------------------------------------------------------------ @@ -101,7 +100,7 @@ fi echo echo ======================================== -echo "Build Scotch decomposition library $SCOTCH_VERSION" +echo "Scotch decomposition ($SCOTCH_VERSION)" echo " $SCOTCH_ARCH_PATH" SCOTCH_SOURCE_DIR=$sourceBASE/$SCOTCH_VERSION @@ -113,8 +112,8 @@ if [ -f $SCOTCH_ARCH_PATH/include/scotch.h \ -a -r $FOAM_EXT_LIBBIN/libscotch.so \ -a -r $FOAM_EXT_LIBBIN/libscotcherrexit.so ] then - echo " scotch header in $SCOTCH_ARCH_PATH/include" - echo " scotch libs in $FOAM_EXT_LIBBIN" + echo " scotch include: $SCOTCH_ARCH_PATH/include" + echo " scotch library: $FOAM_EXT_LIBBIN" elif [ -d "$SCOTCH_SOURCE_DIR" ] then ( @@ -176,15 +175,15 @@ if [ "${FOAM_MPI:-dummy}" != dummy ] && \ then echo echo ======================================== - echo "Build pt-scotch decomposition library $SCOTCH_VERSION (with $FOAM_MPI)" + echo "pt-scotch decomposition ($SCOTCH_VERSION with $FOAM_MPI)" echo " $SCOTCH_ARCH_PATH" if [ -f $SCOTCH_ARCH_PATH/include/$FOAM_MPI/ptscotch.h \ -a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libptscotch.so \ -a -r $FOAM_EXT_LIBBIN/$FOAM_MPI/libptscotcherrexit.so ] then - echo " ptscotch header in $SCOTCH_ARCH_PATH/include/$FOAM_MPI" - echo " ptscotch libs in $FOAM_EXT_LIBBIN/$FOAM_MPI" + echo " ptscotch include: $SCOTCH_ARCH_PATH/include/$FOAM_MPI" + echo " ptscotch library: $FOAM_EXT_LIBBIN/$FOAM_MPI" else ( cd $SCOTCH_SOURCE_DIR/src || exit 1 @@ -239,55 +238,46 @@ fi #------------------------------------------------------------------------------ -# Metis is optional echo echo ======================================== -echo Build Metis decomposition - -# Get METIS_VERSION, METIS_ARCH_PATH -if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/metis) +# Get KAHIP_ARCH_PATH +if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/kahip) then . $settings fi - -METIS_SOURCE_DIR=$sourceBASE/$METIS_VERSION - -if [ -f $METIS_ARCH_PATH/include/metis.h \ - -a -r $FOAM_EXT_LIBBIN/libmetis.so ] +if [ -n "$KAHIP_ARCH_PATH" ] then - echo " metis header in $METIS_ARCH_PATH/include" - echo " metis libs in $FOAM_EXT_LIBBIN" -elif [ -d "$METIS_SOURCE_DIR" ] -then -( - cd $METIS_SOURCE_DIR || exit 1 - export GIT_DIR=$PWD/.git # Mask seeing our own git-repo - rm -rf $METIS_ARCH_PATH - - # Adjust metis integer size to match OpenFOAM label-size - sed -i -e 's=\(#define IDXTYPEWIDTH\).*=\1 '$WM_LABEL_SIZE'=' \ - include/metis.h - - # No config option for the library location. - # - build normally and use mv to relocate it - - make config shared=1 prefix=$METIS_ARCH_PATH \ - && make -j $WM_NCOMPPROCS install \ - && mv $METIS_ARCH_PATH/lib/libmetis.so $FOAM_EXT_LIBBIN - - rmdir $METIS_ARCH_PATH/lib 2>/dev/null || true # Failed rmdir is uncritical -) || warnBuildIssues METIS + echo KaHIP decomposition + ./makeKAHIP -test "$KAHIP_ARCH_PATH" || \ + ./makeKAHIP || warnBuildIssues KAHIP else - warnNotFound METIS + warnNotFound KAHIP # METIS is optional +fi + +#------------------------------------------------------------------------------ +echo +echo ======================================== + +# Get METIS_ARCH_PATH +if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/metis) +then + . $settings +fi +if [ -n "$METIS_ARCH_PATH" ] +then + echo Metis decomposition + ./makeMETIS -test "$METIS_ARCH_PATH" || \ + ./makeMETIS || warnBuildIssues METIS +else + warnNotFound METIS # METIS is optional fi - #------------------------------------------------------------------------------ echo echo ======================================== -echo Build CGAL if [ -n "$CGAL_ARCH_PATH" ] then + echo "CGAL/boost" ./makeCGAL -test "$CGAL_ARCH_PATH" "$BOOST_ARCH_PATH" || \ ./makeCGAL || warnBuildIssues CGAL else @@ -296,9 +286,9 @@ fi echo echo ======================================== -echo Build FFTW if [ -n "$FFTW_ARCH_PATH" ] then + echo FFTW ./makeFFTW -test "$FFTW_ARCH_PATH" || \ ./makeFFTW || warnBuildIssues FFTW else diff --git a/BUILD.md b/BUILD.md index b66b633..751c7c6 100644 --- a/BUILD.md +++ b/BUILD.md @@ -109,7 +109,7 @@ ThirdParty components prior to building OpenFOAM itself. - This will be automatically invoked by the top-level OpenFOAM `Allwmake`, but can also be invoked directly to find possible build errors. - Builds an mpi library (openmpi or mpich), scotch decomposition, boost, CGAL, FFTW. - - If the optional metis directory is found, it will also be compiled. + - If the optional kahip or metis directories are found, they will also be compiled. 4. `makeParaView` *(optional but highly recommended)* - This is optional, but extremely useful for visualization and for run-time post-processing function objects. @@ -122,16 +122,26 @@ ThirdParty components prior to building OpenFOAM itself. #### Optional Components `makeADIOS` -- Only required for ADIOS support, +- Only required for [ADIOS](#parallel) support, which is currently staged in the [add-ons repository][link AddOns]. `makeCGAL` -- Builds third-party boost and CGAL. +- Builds [boost](#general-packages) and [CGAL](#general-packages). Automatically invoked from the ThirdParty `Allwmake`, but can be invoked directly to resolve possible build errors. `makeFFTW` -- Builds third-party FFTW. +- Builds [FFTW](#general-packages). + Automatically invoked from the ThirdParty `Allwmake`, + but can be invoked directly to resolve possible build errors. + +`makeKAHIP` +- Builds [KaHIP](#parallel) decomposition library. + Automatically invoked from the ThirdParty `Allwmake`, + but can be invoked directly to resolve possible build errors. + +`makeMETIS` +- Builds [METIS](#parallel) decomposition library. Automatically invoked from the ThirdParty `Allwmake`, but can be invoked directly to resolve possible build errors. @@ -147,11 +157,11 @@ ThirdParty components prior to building OpenFOAM itself. `makeMesa`, `makeVTK` - Additional support for building offscreen rendering components. Useful if you want to render on computer servers without graphics cards. - The `makeParaView.example` and `makeVTK.example` files provide some useful + The `makeParaView.example` and `makeVTK.example` files offer some suggestions about compiling such a configuration. `makeQt` -- Script to build a [third-party installation of Qt](#makeQt), including qmake. +- Script to build a [Qt](#makeQt), including qmake. - Possibly needed for `makeParaView`. - The associated `etc/relocateQt` may be of independent use. Read the file for more details. @@ -312,15 +322,6 @@ GNU *configure* can only be used prior to clang version 3.9. | [llvm][page llvm] | [download][link llvm] -### Parallel Processing - -| Name | Location -|-----------------------|------------------------ -| [adios][page adios] | [repo][repo adios] or [github download][link adios] or [alt download][altlink adios] -| [scotch, ptscotch][page scotch] | [download][link scotch] -| [openmpi][page openmpi] | [download][link openmpi]. The newer [openmpi][newer openmpi] make exhibit stability issues. - - ### General | Name | Location @@ -334,6 +335,17 @@ GNU *configure* can only be used prior to clang version 3.9. | gperftools | [repo][repo gperftools] or [download][link gperftools] +### Parallel Processing + +| Name | Location +|-----------------------|------------------------ +| [openmpi][page openmpi] | [download][link openmpi]. The newer [openmpi][newer openmpi] make exhibit stability issues. +| [adios][page adios] | [repo][repo adios] or [github download][link adios] or [alt download][altlink adios] +| [scotch, ptscotch][page scotch] | [download][link scotch] +| [kahip][page kahip] | [download][link kahip] +| [metis][page metis] | [download][link metis] + + ### Visualization | Name | Location @@ -405,6 +417,12 @@ The minimum gcc/g++ requirements for building various components. [page scotch]: https://www.labri.fr/perso/pelegrin/scotch/ [link scotch]: https://gforge.inria.fr/frs/download.php/file/34099/scotch_6.0.3.tar.gz +[page kahip]: http://algo2.iti.kit.edu/documents/kahip/ +[link kahip]: http://algo2.iti.kit.edu/schulz/software_releases/KaHIP_2.00.tar.gz + +[page metis]: http://glaros.dtc.umn.edu/gkhome/metis/metis/overview +[link metis]: http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz + [page openmpi]: http://www.open-mpi.org/ [link openmpi]: https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.4.tar.bz2 [newer openmpi]: https://www.open-mpi.org/software/ompi/v2.1/downloads/openmpi-2.1.1.tar.bz2 @@ -452,7 +470,7 @@ The minimum gcc/g++ requirements for building various components. [link AddOns]: https://develop.openfoam.com/Community/OpenFOAM-addOns -[link community-projects]: http://www.openfoam.com/services/community-projects.php +[link community-projects]: http://www.openfoam.com/community/projects.php @@ -460,8 +478,8 @@ The minimum gcc/g++ requirements for building various components. - [Community AddOns][link AddOns] repository - [Collaborative and Community-based Developments][link community-projects] -- [Download](http://www.openfoam.com/releases) and - [installation instructions](http://www.openfoam.com/download/installation.php) +- [Download](http://www.openfoam.com/download) and + [installation instructions](http://www.openfoam.com/code/build-guide.php) - [Documentation](http://www.openfoam.com/documentation) - [Reporting bugs/issues](http://www.openfoam.com/code/bug-reporting.php) (including bugs/suggestions/feature requests) in OpenFOAM+ - [Contacting OpenCFD](http://www.openfoam.com/contact) diff --git a/etc/makeFiles/kahip/files b/etc/makeFiles/kahip/files new file mode 100644 index 0000000..9ecb867 --- /dev/null +++ b/etc/makeFiles/kahip/files @@ -0,0 +1,70 @@ +/* NOTE: make any changes to this file in etc/wmakeFiles/ */ + +interface/kaHIP_interface.cpp + +/* List obtained from SConscript, libkaffpa_files = [ ... ] entry */ + +data_structure/graph_hierarchy.cpp +algorithms/strongly_connected_components.cpp +algorithms/topological_sort.cpp +algorithms/push_relabel.cpp +io/graph_io.cpp +tools/quality_metrics.cpp +tools/random_functions.cpp +tools/graph_extractor.cpp +tools/misc.cpp +tools/partition_snapshooter.cpp +partition/graph_partitioner.cpp +partition/w_cycles/wcycle_partitioner.cpp +partition/coarsening/coarsening.cpp +partition/coarsening/contraction.cpp +partition/coarsening/edge_rating/edge_ratings.cpp +partition/coarsening/matching/matching.cpp +partition/coarsening/matching/random_matching.cpp +partition/coarsening/matching/gpa/path.cpp +partition/coarsening/matching/gpa/gpa_matching.cpp +partition/coarsening/matching/gpa/path_set.cpp +partition/coarsening/clustering/node_ordering.cpp +partition/coarsening/clustering/size_constraint_label_propagation.cpp +partition/initial_partitioning/initial_partitioning.cpp +partition/initial_partitioning/initial_partitioner.cpp +partition/initial_partitioning/initial_partition_bipartition.cpp +partition/initial_partitioning/initial_refinement/initial_refinement.cpp +partition/initial_partitioning/bipartition.cpp +partition/initial_partitioning/initial_node_separator.cpp +partition/uncoarsening/uncoarsening.cpp +partition/uncoarsening/separator/area_bfs.cpp +partition/uncoarsening/separator/vertex_separator_algorithm.cpp +partition/uncoarsening/separator/vertex_separator_flow_solver.cpp +partition/uncoarsening/refinement/cycle_improvements/greedy_neg_cycle.cpp +partition/uncoarsening/refinement/cycle_improvements/problem_factory.cpp +partition/uncoarsening/refinement/cycle_improvements/augmented_Qgraph.cpp +partition/uncoarsening/refinement/mixed_refinement.cpp +partition/uncoarsening/refinement/label_propagation_refinement/label_propagation_refinement.cpp +partition/uncoarsening/refinement/refinement.cpp +partition/uncoarsening/refinement/quotient_graph_refinement/2way_fm_refinement/two_way_fm.cpp +partition/uncoarsening/refinement/quotient_graph_refinement/flow_refinement/two_way_flow_refinement.cpp +partition/uncoarsening/refinement/quotient_graph_refinement/flow_refinement/boundary_bfs.cpp +partition/uncoarsening/refinement/quotient_graph_refinement/flow_refinement/flow_solving_kernel/cut_flow_problem_solver.cpp +partition/uncoarsening/refinement/quotient_graph_refinement/flow_refinement/most_balanced_minimum_cuts/most_balanced_minimum_cuts.cpp +partition/uncoarsening/refinement/quotient_graph_refinement/quotient_graph_refinement.cpp +partition/uncoarsening/refinement/quotient_graph_refinement/complete_boundary.cpp +partition/uncoarsening/refinement/quotient_graph_refinement/partial_boundary.cpp +partition/uncoarsening/refinement/quotient_graph_refinement/quotient_graph_scheduling/quotient_graph_scheduling.cpp +partition/uncoarsening/refinement/quotient_graph_refinement/quotient_graph_scheduling/simple_quotient_graph_scheduler.cpp +partition/uncoarsening/refinement/quotient_graph_refinement/quotient_graph_scheduling/active_block_quotient_graph_scheduler.cpp +partition/uncoarsening/refinement/kway_graph_refinement/kway_graph_refinement.cpp +partition/uncoarsening/refinement/kway_graph_refinement/kway_graph_refinement_core.cpp +partition/uncoarsening/refinement/kway_graph_refinement/kway_graph_refinement_commons.cpp +partition/uncoarsening/refinement/cycle_improvements/augmented_Qgraph_fabric.cpp +partition/uncoarsening/refinement/cycle_improvements/advanced_models.cpp +partition/uncoarsening/refinement/kway_graph_refinement/multitry_kway_fm.cpp +partition/uncoarsening/refinement/node_separators/greedy_ns_local_search.cpp +partition/uncoarsening/refinement/node_separators/fm_ns_local_search.cpp +partition/uncoarsening/refinement/node_separators/localized_fm_ns_local_search.cpp +algorithms/cycle_search.cpp +partition/uncoarsening/refinement/cycle_improvements/cycle_refinement.cpp +partition/uncoarsening/refinement/tabu_search/tabu_search.cpp + + +LIB = $(FOAM_EXT_LIBBIN)/libkahip diff --git a/etc/makeFiles/kahip/options b/etc/makeFiles/kahip/options new file mode 100644 index 0000000..3c0ce03 --- /dev/null +++ b/etc/makeFiles/kahip/options @@ -0,0 +1,14 @@ +/* + * NOTE: make any changes to this file in etc/wmakeFiles/ + * Must use -DNDEBUG to disable kahip debug mode. + * Using -DMODE_NODESEP is not strictly required for building the library. +*/ + +EXE_INC = \ + ${c++LESSWARN} \ + -DNDEBUG -DMODE_NODESEP \ + -I$(KAHIP_LIB_SRC) \ + -I$(KAHIP_LIB_SRC)/partition \ + -I$(KAHIP_LIB_SRC)/partition/uncoarsening/refinement/quotient_graph_refinement/flow_refinement + +LIB_LIBS = diff --git a/makeCCMIO b/makeCCMIO index 2e1b976..64e48a8 100755 --- a/makeCCMIO +++ b/makeCCMIO @@ -111,29 +111,48 @@ CCMIO_ARCH_PATH=$installBASE/$ccmioPACKAGE # Sources must be available [ -d "$CCMIO_SOURCE_DIR" ] || die "Missing sources: '$ccmioPACKAGE'" +# +# Manual installation +# +install() +{ + # Ensure a clean build next time + wclean + + local incdir=$CCMIO_ARCH_PATH/include/libccmio + + # Make headers available: + mkdir -m 0755 -p $incdir + + /bin/cp -pv libccmio/ccmio*.h $incdir +} + +echo "Starting build: $ccmioPACKAGE ($targetType)" +echo ( cd $CCMIO_SOURCE_DIR || exit 1 export GIT_DIR=$PWD/.git # Mask seeing our own git-repo - incDIR=$CCMIO_ARCH_PATH/include/libccmio - libDIR=$CCMIO_ARCH_PATH/lib + rm -rf $CCMIO_ARCH_PATH + rm -f $FOAM_EXT_LIBBIN/libccmio.so - mkdir -p $incDIR 2>/dev/null - mkdir -p $libDIR 2>/dev/null + libdir=$CCMIO_ARCH_PATH/lib cpMakeFiles libccmio 2>/dev/null # Place static libraries in sub-directory: if [ "$targetType" = lib ] then - export FOAM_EXT_LIBBIN=$libDIR + mkdir -m 0755 -p $libdir 2>/dev/null + export FOAM_EXT_LIBBIN=$libdir fi - if wmake $targetType - then - # Make headers available: - /bin/cp -pv libccmio/ccmio*.h $incDIR - fi -) + wmake -j $WM_NCOMPPROCS -s $targetType \ + && echo "Built: ccmio" \ + && install +) || { + echo "Error building: ccmio" + exit 1 +} #------------------------------------------------------------------------------ diff --git a/makeCGAL b/makeCGAL index 7c27be6..b2260c7 100755 --- a/makeCGAL +++ b/makeCGAL @@ -44,8 +44,8 @@ then dir="$2" # <- CGAL_ARCH_PATH if [ -d "$dir/include" -a -r "$dir/lib$WM_COMPILER_LIB_ARCH/libCGAL.so" ] then - echo " CGAL headers in $dir/include" - echo " CGAL libs in $dir/lib$WM_COMPILER_LIB_ARCH" + echo " CGAL include: $dir/include" + echo " CGAL library: $dir/lib$WM_COMPILER_LIB_ARCH" # Additional information about boost dir="$3" # <- BOOST_ARCH_PATH for root in "$dir" /usr @@ -53,8 +53,8 @@ then if [ -d "$root/include/boost" \ -a -r "$root/lib$WM_COMPILER_LIB_ARCH/libboost_system.so" ] then - echo " BOOST headers in $root/include" - echo " BOOST libs in $root/lib$WM_COMPILER_LIB_ARCH" + echo " boost include: $root/include" + echo " boost library: $root/lib$WM_COMPILER_LIB_ARCH" break fi done diff --git a/makeFFTW b/makeFFTW index dd8ea35..7f77cba 100755 --- a/makeFFTW +++ b/makeFFTW @@ -38,8 +38,8 @@ then dir="$2" # <- FFTW_ARCH_PATH if [ -d "$dir/include" -a -r "$dir/lib$WM_COMPILER_LIB_ARCH/libfftw3.so" ] then - echo " FFTW headers in $dir/include" - echo " FFTW libs in $dir/lib$WM_COMPILER_LIB_ARCH" + echo " fftw include: $dir/include" + echo " fftw library: $dir/lib$WM_COMPILER_LIB_ARCH" exit 0 else exit 2 diff --git a/makeKAHIP b/makeKAHIP new file mode 100755 index 0000000..b2eebbd --- /dev/null +++ b/makeKAHIP @@ -0,0 +1,205 @@ +#!/bin/sh +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 2017 OpenCFD Ltd. +# \\/ M anipulation | +#------------------------------------------------------------------------------ +# License +# This file is part of OpenFOAM. +# +# OpenFOAM is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenFOAM. If not, see . +# +# Script +# makeKAHIP +# +# Description +# Build the KaHIP library (int32 only). +# +# ---------------------------------------------- +# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE +#------------------------------------------------------------------------------ +# Short-circuit test for an installation +if [ "$1" = "-test" ] +then + [ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; } + dir="$2" # <- KAHIP_ARCH_PATH + if [ -d "$dir/include" ] + then + for lib in \ + $FOAM_EXT_LIBBIN/libkahip.so \ + $dir/lib/libkahip.a \ + $dir/lib/libkahip.so \ + $dir/lib$WM_COMPILER_LIB_ARCH/libkahip.a \ + $dir/lib$WM_COMPILER_LIB_ARCH/libkahip.so \ + ; + do + if [ -r "$lib" ] + then + echo " kahip include: $dir/include" + echo " kahip library: ${lib%/*}" + exit 0 + fi + done + fi + exit 2 +fi +#------------------------------------------------------------------------------ +# Run from third-party directory only +cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || { + echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR" + echo " Check your OpenFOAM environment and installation" + exit 1 +} +[ -n "$FOAM_EXT_LIBBIN" ] || { + echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set" + echo " Check your OpenFOAM environment and installation" + exit 1 +} +. etc/tools/ThirdPartyFunctions +#------------------------------------------------------------------------------ +_foamEtc config.sh/kahip + +kahipPACKAGE=${KAHIP_VERSION:-kahip-system} +targetType=libso + +#------------------------------------------------------------------------------ +usage() +{ + exec 1>&2 + while [ "$#" -ge 1 ]; do echo "$1"; shift; done + /bin/cat</dev/null + + if [ -e ../interface -a ! -e interface ] + then + ln -s ../interface interface + fi + + # Place static libraries in sub-directory: + if [ "$targetType" = lib ] + then + mkdir -m 0755 -p $libdir 2>/dev/null + export FOAM_EXT_LIBBIN=$libdir + fi + + # Location of lib sources for wmake + export KAHIP_LIB_SRC=$PWD + + wmake -j $WM_NCOMPPROCS -s $targetType \ + && echo "Built: kahip" \ + && install +) || { + echo "Error building: kahip" + exit 1 +} + + +#------------------------------------------------------------------------------ diff --git a/makeMETIS b/makeMETIS new file mode 100755 index 0000000..67793d3 --- /dev/null +++ b/makeMETIS @@ -0,0 +1,201 @@ +#!/bin/sh +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 2017 OpenCFD Ltd. +# \\/ M anipulation | +#------------------------------------------------------------------------------ +# License +# This file is part of OpenFOAM. +# +# OpenFOAM is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenFOAM. If not, see . +# +# Script +# makeMETIS +# +# Description +# Build script for METIS +# +# ---------------------------------------------- +# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE +#------------------------------------------------------------------------------ +# Short-circuit test for an installation +if [ "$1" = "-test" ] +then + [ "$#" -eq 2 ] || { echo "${0##*/} -test : needs 1 argument"; exit 1; } + dir="$2" # <- METIS_ARCH_PATH + if [ -d "$dir/include" ] + then + for lib in \ + $FOAM_EXT_LIBBIN/libmetis.so \ + $dir/lib/libmetis.a \ + $dir/lib/libmetis.so \ + $dir/lib$WM_COMPILER_LIB_ARCH/libmetis.a \ + $dir/lib$WM_COMPILER_LIB_ARCH/libmetis.so \ + ; + do + if [ -r "$lib" ] + then + echo " metis include: $dir/include" + echo " metis library: ${lib%/*}" + exit 0 + fi + done + fi + exit 2 +fi +#------------------------------------------------------------------------------ +# Run from third-party directory only +cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || { + echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR" + echo " Check your OpenFOAM environment and installation" + exit 1 +} +[ -n "$FOAM_EXT_LIBBIN" ] || { + echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set" + echo " Check your OpenFOAM environment and installation" + exit 1 +} +. etc/tools/ThirdPartyFunctions +#------------------------------------------------------------------------------ +_foamEtc config.sh/metis + +metisPACKAGE=${METIS_VERSION:-metis-system} +targetType=libso + +#------------------------------------------------------------------------------ +usage() { + exec 1>&2 + while [ "$#" -ge 1 ]; do echo "$1"; shift; done + cat</dev/null # Failed rmdir is uncritical + + echo "Installing: $FOAM_EXT_LIBBIN/libmetis.so" + fi + return 0 +} + +echo "Starting build: $metisPACKAGE ($targetType)" +echo +( + # Configuration options: + unset configOpt + if [ "$targetType" = libso ] + then + configOpt="shared=1" + fi + + cd $METIS_SOURCE_DIR || exit 1 + export GIT_DIR=$PWD/.git # Mask seeing our own git-repo + + rm -rf $METIS_ARCH_PATH + rm -f $FOAM_EXT_LIBBIN/libmetis.so + + # Adjust metis integer size to match OpenFOAM label-size + sed -i -e 's=\(#define IDXTYPEWIDTH\).*=\1 '$WM_LABEL_SIZE'=' \ + include/metis.h + + # No config option for the library location. + # - build normally and use mv to relocate it + + make config $configOpt prefix=$METIS_ARCH_PATH \ + && make -j $WM_NCOMPPROCS install \ + && echo "Built: metis" \ + && install +) || { + echo "Error building: metis" + exit 1 +} + + +#------------------------------------------------------------------------------ diff --git a/makeMGridGen b/makeMGridGen index fdf395f..872680f 100755 --- a/makeMGridGen +++ b/makeMGridGen @@ -124,23 +124,23 @@ echo # install() { - echo "Install into $MGRIDGEN_ARCH_PATH" + echo "Install into $MGRIDGEN_ARCH_PATH" - local bindir=$MGRIDGEN_ARCH_PATH/bin - local incdir=$MGRIDGEN_ARCH_PATH/include - local libdir=$MGRIDGEN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH + local bindir=$MGRIDGEN_ARCH_PATH/bin + local incdir=$MGRIDGEN_ARCH_PATH/include + local libdir=$MGRIDGEN_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH - for dir in $MGRIDGEN_ARCH_PATH $bindir $incdir $libdir - do - mkdir -m 0755 -p $dir - done + for dir in $MGRIDGEN_ARCH_PATH $bindir $incdir $libdir + do + mkdir -m 0755 -p $dir + done - cp -vf mgridgen.h $incdir - cp -vf libmgrid.a $libdir - cp -vf mgridgen $bindir + cp -vf mgridgen.h $incdir + cp -vf libmgrid.a $libdir + cp -vf mgridgen $bindir - chmod -R 0644 $incdir/* $libdir/* - chmod -R 0755 $bindir/* + chmod -R 0644 $incdir/* $libdir/* + chmod -R 0755 $bindir/* } From 816173b7c4b0f2b550b2e848fa4bff6bdba0685e Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Fri, 8 Dec 2017 18:05:11 +0000 Subject: [PATCH 12/15] CONFIG: update versions ENH: add support of additional configure options to some make scripts - remove hard-coded --verbs from makeOPENMPI in favour of letting the user provide it via the command-line for makeOPENMPI. eg, makeOPENMPI openmpi-1.10.6 -- --with-verbs=DIRECTORY ... --- Allclean | 18 ++--------- Allwmake | 18 ++--------- BUILD.md | 40 +++++++++++++---------- README.md | 20 ++++++++---- SOURCES.txt | 60 +++++++++++++++++++++++++++++++++++ etc/makeFiles/kahip/options | 1 + etc/pkgconfigAdjust | 16 ++-------- etc/pkgconfigPrefix | 16 ++-------- etc/relocateQt | 16 ++-------- etc/tools/ParaViewFunctions | 16 ++-------- etc/tools/QtFunctions | 16 ++-------- etc/tools/ThirdPartyFunctions | 16 ++-------- etc/tools/vtkFunctions | 16 ++-------- makeADIOS | 41 +++++++++++------------- makeCCMIO | 16 ++-------- makeCGAL | 16 ++-------- makeCmake | 16 ++-------- makeFFTW | 16 ++-------- makeGcc | 16 ++-------- makeGperftools | 16 ++-------- makeKAHIP | 16 ++-------- makeLLVM | 28 ++++++---------- makeMETIS | 16 ++-------- makeMGridGen | 18 ++--------- makeMPICH | 32 +++++++++---------- makeMesa | 37 ++++++++++----------- makeOPENMPI | 57 +++++++++++++++------------------ makeOPENMPI.example | 14 ++++++++ makeParaView | 18 ++--------- makeQt | 31 ++++++++---------- makeTecio | 16 ++-------- makeVTK | 16 ++-------- minCmake | 16 ++-------- sources.txt | 48 ---------------------------- 34 files changed, 260 insertions(+), 509 deletions(-) create mode 100644 SOURCES.txt create mode 100755 makeOPENMPI.example delete mode 100644 sources.txt diff --git a/Allclean b/Allclean index 429a3f5..4a9fb4a 100755 --- a/Allclean +++ b/Allclean @@ -7,26 +7,14 @@ # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # Allclean # # Description -# Clean script for ThirdParty applications and libraries +# Clean script for ThirdParty applications/libraries # # ---------------------------------------------- # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE diff --git a/Allwmake b/Allwmake index ce04428..1d0c9d1 100755 --- a/Allwmake +++ b/Allwmake @@ -7,26 +7,14 @@ # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # Allwmake # # Description -# Build script for ThirdParty +# Build script for ThirdParty applications/libraries # # ---------------------------------------------- # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE diff --git a/BUILD.md b/BUILD.md index 751c7c6..1d4c0d0 100644 --- a/BUILD.md +++ b/BUILD.md @@ -198,13 +198,13 @@ and save some disk space. sources that are bundled with ParaView. For example, by using a symbolic link: - ln -s ParaView-v5.4.0/VTK VTK-8.1.0 + ln -s ParaView-v5.4.1/VTK VTK-8.1.0 The appropriate VTK version number can be found from the contents of the `vtkVersion.cmake` file. For example, - $ cat ParaView-v5.4.0/VTK/CMake/vtkVersion.cmake + $ cat ParaView-v5.4.1/VTK/CMake/vtkVersion.cmake # VTK version number components. set(VTK_MAJOR_VERSION 8) @@ -217,7 +217,7 @@ and save some disk space. required. See additional notes below about [making Qt](#makeQt) if necessary. -#### 5.4.0 +#### 5.4.x - Compiles without patching. No known issues with the native OpenFOAM reader. @@ -318,8 +318,9 @@ GNU *configure* can only be used prior to clang version 3.9. | Name | Location |-----------------------|------------------------ -| [clang][page clang] | [download][link clang] -| [llvm][page llvm] | [download][link llvm] +| [clang][page clang] | [download][link clang] or [newer][newer clang] +| [llvm][page llvm] | [download][link llvm] or [newer][newer llvm] +| [openmp][page omp] | [download][link omp] or [newer][newer omp] ### General @@ -352,7 +353,7 @@ GNU *configure* can only be used prior to clang version 3.9. |-----------------------|------------------------ | [MESA][page mesa] | [download][link mesa] or [older 13][older13 mesa], [older 11][older11 mesa] | [ParaView][page ParaView] | [download][link ParaView] -| [Qt][page Qt] | [repo][repo Qt] or [download][link Qt]. The newer [Qt5][newer Qt5] only works with ParaView-5.3.0 and later. +| [Qt][page Qt] | Either the [older QT4][link Qt4] or the [newer QT5][link Qt5], which only works with ParaView-5.3.0 and later. ### CMake Minimum Requirements @@ -362,13 +363,14 @@ The minimum CMake requirements for building various components. 2.8 llvm-3.4.2 2.8.8 ParaView-5.0.1 2.8.11 CGAL-4.9 + 2.8.11 CGAL-4.11 2.8.12.2 llvm-3.7.0 2.8.12.2 llvm-3.8.0 2.8.4 cmake-3.6.0 3.3 ParaView-5.1.2 3.3 ParaView-5.2.0 3.3 ParaView-5.3.0 - 3.3 ParaView-5.4.0 + 3.3 ParaView-5.4.1 3.4.3 llvm-3.9.1 3.4.3 llvm-4.0.0 3.5 ParaView-5.1.0 @@ -397,21 +399,24 @@ The minimum gcc/g++ requirements for building various components. -[page clang]: http://llvm.org/ [page llvm]: http://llvm.org/ +[page clang]: http://clang.llvm.org/ +[page omp]: http://openmp.llvm.org/ [link clang]: http://llvm.org/releases/3.7.1/cfe-3.7.1.src.tar.xz [link llvm]: http://llvm.org/releases/3.7.1/llvm-3.7.1.src.tar.xz +[link omp]: http://llvm.org/releases/3.7.1/openmp-3.7.1.src.tar.xz -[newer clang]: http://llvm.org/releases/4.0.0/cfe-4.0.0.src.tar.xz -[newer llvm]: http://llvm.org/releases/4.0.0/llvm-4.0.0.src.tar.xz +[newer clang]: http://llvm.org/releases/4.0.1/cfe-4.0.1.src.tar.xz +[newer llvm]: http://llvm.org/releases/4.0.1/llvm-4.0.1.src.tar.xz +[newer omp]: http://llvm.org/releases/4.0.1/openmp-4.0.1.src.tar.xz [page adios]: https://www.olcf.ornl.gov/center-projects/adios/ [repo adios]: https://github.com/ornladios/ADIOS -[link adios]: https://github.com/ornladios/ADIOS/archive/v1.11.1.tar.gz -[altlink adios]: http://users.nccs.gov/%7Epnorbert/adios-1.11.1.tar.gz +[link adios]: https://github.com/ornladios/ADIOS/archive/v1.13.0.tar.gz +[altlink adios]: http://users.nccs.gov/%7Epnorbert/adios-1.13.0.tar.gz [page zfp]: http://computation.llnl.gov/projects/floating-point-compression/zfp-versions [page scotch]: https://www.labri.fr/perso/pelegrin/scotch/ @@ -439,7 +444,7 @@ The minimum gcc/g++ requirements for building various components. [link CGAL]: https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.9.1/CGAL-4.9.1.tar.xz [page FFTW]: http://www.fftw.org/ -[link FFTW]: http://www.fftw.org/fftw-3.3.6-pl1.tar.gz +[link FFTW]: http://www.fftw.org/fftw-3.3.7.tar.gz [page cgns]: http://cgns.github.io/ [link ccmio]: http://portal.nersc.gov/project/visit/third_party/libccmio-2.6.1.tar.gz (check usage conditions) @@ -455,7 +460,7 @@ The minimum gcc/g++ requirements for building various components. [page ParaView]: http://www.paraview.org/ -[link ParaView]: http://www.paraview.org/files/v5.4/ParaView-v5.4.0.tar.gz +[link ParaView]: http://www.paraview.org/files/v5.4/ParaView-v5.4.1.tar.gz [page mesa]: http://mesa3d.org/ [link mesa]: ftp://ftp.freedesktop.org/pub/mesa/mesa-17.1.1.tar.xz @@ -464,8 +469,8 @@ The minimum gcc/g++ requirements for building various components. [page Qt]: https://www.qt.io/download-open-source/ [repo Qt]: http://code.qt.io/cgit/qt-creator/qt-creator.git -[link Qt]: http://download.qt.io/official_releases/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz -[newer Qt5]: http://download.qt.io/official_releases/qt/5.9/5.9.0/single/qt-everywhere-opensource-src-5.9.0.tar.xz +[link Qt4]: http://download.qt.io/official_releases/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz +[link Qt5]: http://download.qt.io/official_releases/qt/5.9/5.9.3/single/qt-everywhere-opensource-src-5.9.3.tar.xz @@ -481,8 +486,9 @@ The minimum gcc/g++ requirements for building various components. - [Download](http://www.openfoam.com/download) and [installation instructions](http://www.openfoam.com/code/build-guide.php) - [Documentation](http://www.openfoam.com/documentation) -- [Reporting bugs/issues](http://www.openfoam.com/code/bug-reporting.php) (including bugs/suggestions/feature requests) in OpenFOAM+ +- [Reporting bugs/issues](http://www.openfoam.com/code/bug-reporting.php) (including bugs/suggestions/feature requests) in OpenFOAM - [Contacting OpenCFD](http://www.openfoam.com/contact) + --- Copyright 2016-2017 OpenCFD Ltd diff --git a/README.md b/README.md index 975a68d..2454982 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | | - | \\ / A nd | Copyright (C) 2016 OpenCFD Ltd. | + | \\ / A nd | Copyright (C) 2016-2017 OpenCFD Ltd. | | \\/ M anipulation | | |--------------------------------------------------------------------------| --> @@ -65,19 +65,25 @@ ThirdParty components prior to building OpenFOAM itself. ### Build Details -More details can be found the ThirdParty ./BUILD.md information. +More details can be found the ThirdParty BUILD.md information. + + + +[link AddOns]: https://develop.openfoam.com/Community/OpenFOAM-addOns +[link community-projects]: http://www.openfoam.com/community/projects.php ## Additional OpenFOAM Links -- [Download](http://www.openfoam.com/releases) and - [installation instructions](http://www.openfoam.com/download/installation.php) +- [Community AddOns][link AddOns] repository +- [Collaborative and Community-based Developments][link community-projects] +- [Download](http://www.openfoam.com/download) and + [installation instructions](http://www.openfoam.com/code/build-guide.php) - [Documentation](http://www.openfoam.com/documentation) -- [Reporting bugs/issues (including bugs/suggestions/feature requests) in OpenFOAM+](http://www.openfoam.com/code/bug-reporting.php) -- [Collaborative and Community-based Developments](http://www.openfoam.com/services/community-projects.php) +- [Reporting bugs/issues](http://www.openfoam.com/code/bug-reporting.php) (including bugs/suggestions/feature requests) in OpenFOAM - [Contacting OpenCFD](http://www.openfoam.com/contact) --- -Copyright 2016 OpenCFD Ltd +Copyright 2016-2017 OpenCFD Ltd diff --git a/SOURCES.txt b/SOURCES.txt new file mode 100644 index 0000000..0ee90d2 --- /dev/null +++ b/SOURCES.txt @@ -0,0 +1,60 @@ +Quick summary of third-party versions for recent OpenFOAM versions. + +OpenFOAM-1712 +--------------- +CGAL-4.9.1 +ParaView-5.4.1 *minor* +boost_1_64_0 +fftw-3.3.7 *minor* +openmpi-1.10.4 +scotch_6.0.3 + + +OpenFOAM-1706 +--------------- +CGAL-4.9.1 *minor* +ParaView-5.4.0 *update* +boost_1_64_0 *update* +fftw-3.3.6-pl1 *minor* +openmpi-1.10.4 +scotch_6.0.3 + + +OpenFOAM-1612 +--------------- +CGAL-4.9 *update* +ParaView-5.0.1 *update* +boost_1_62_0 *update* +fftw-3.3.5 *minor* +openmpi-1.10.4 *minor* +scotch_6.0.3 + + +OpenFOAM-1606 +--------------- +CGAL-4.8 *update* +ParaView-5.0.1 *update* +boost_1_61_0 *new* +fftw-3.3.4 *new* +openmpi-1.10.2 *minor* +scotch_6.0.3 + + +OpenFOAM-v3.0+ +--------------- +CGAL-4.7 *update* +ParaView-4.4.0 *update* +openmpi-1.10.0 *update* +scotch_6.0.3 + + +OpenFOAM-v2.4+ +--------------- +CGAL-4.6 +ParaView-4.1.0 +cmake-2.8.12.1 +openmpi-1.8.5 +scotch_6.0.3 + + +--------------- diff --git a/etc/makeFiles/kahip/options b/etc/makeFiles/kahip/options index 3c0ce03..b13ca4a 100644 --- a/etc/makeFiles/kahip/options +++ b/etc/makeFiles/kahip/options @@ -6,6 +6,7 @@ EXE_INC = \ ${c++LESSWARN} \ + ${COMP_OPENMP} \ -DNDEBUG -DMODE_NODESEP \ -I$(KAHIP_LIB_SRC) \ -I$(KAHIP_LIB_SRC)/partition \ diff --git a/etc/pkgconfigAdjust b/etc/pkgconfigAdjust index 26932a1..b8f47fd 100755 --- a/etc/pkgconfigAdjust +++ b/etc/pkgconfigAdjust @@ -7,20 +7,8 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # etc/pkgconfigAdjust diff --git a/etc/pkgconfigPrefix b/etc/pkgconfigPrefix index 469de6d..17c1f61 100755 --- a/etc/pkgconfigPrefix +++ b/etc/pkgconfigPrefix @@ -7,20 +7,8 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # etc/pkgconfigPrefix diff --git a/etc/relocateQt b/etc/relocateQt index 4b20454..bfbff26 100755 --- a/etc/relocateQt +++ b/etc/relocateQt @@ -7,20 +7,8 @@ # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # etc/relocateQt diff --git a/etc/tools/ParaViewFunctions b/etc/tools/ParaViewFunctions index fb728e5..33e3949 100644 --- a/etc/tools/ParaViewFunctions +++ b/etc/tools/ParaViewFunctions @@ -6,20 +6,8 @@ # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # File # etc/tools/ParaViewFunctions diff --git a/etc/tools/QtFunctions b/etc/tools/QtFunctions index 6a6556f..c67f533 100644 --- a/etc/tools/QtFunctions +++ b/etc/tools/QtFunctions @@ -6,20 +6,8 @@ # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # File # etc/tools/QtFunction diff --git a/etc/tools/ThirdPartyFunctions b/etc/tools/ThirdPartyFunctions index 788d5b7..6d8a294 100644 --- a/etc/tools/ThirdPartyFunctions +++ b/etc/tools/ThirdPartyFunctions @@ -6,20 +6,8 @@ # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # File # etc/tools/ThirdPartyFunctions diff --git a/etc/tools/vtkFunctions b/etc/tools/vtkFunctions index 3cea401..c0b4d98 100644 --- a/etc/tools/vtkFunctions +++ b/etc/tools/vtkFunctions @@ -6,20 +6,8 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # File # etc/tools/vtkFunctions diff --git a/makeADIOS b/makeADIOS index f558be3..ed57758 100755 --- a/makeADIOS +++ b/makeADIOS @@ -7,20 +7,8 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeADIOS @@ -51,7 +39,7 @@ usage() { while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat<. +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeCCMIO diff --git a/makeCGAL b/makeCGAL index b2260c7..5b13fb1 100755 --- a/makeCGAL +++ b/makeCGAL @@ -7,20 +7,8 @@ # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeCGAL diff --git a/makeCmake b/makeCmake index f8d0cdb..96b3c24 100755 --- a/makeCmake +++ b/makeCmake @@ -7,20 +7,8 @@ # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeCmake diff --git a/makeFFTW b/makeFFTW index 7f77cba..d5ae7a9 100755 --- a/makeFFTW +++ b/makeFFTW @@ -7,20 +7,8 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeFFTW diff --git a/makeGcc b/makeGcc index cfe9c08..90192e1 100755 --- a/makeGcc +++ b/makeGcc @@ -7,20 +7,8 @@ # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeGcc diff --git a/makeGperftools b/makeGperftools index 4ad0f94..47c2d03 100755 --- a/makeGperftools +++ b/makeGperftools @@ -7,20 +7,8 @@ # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeGperftools diff --git a/makeKAHIP b/makeKAHIP index b2eebbd..a17b14b 100755 --- a/makeKAHIP +++ b/makeKAHIP @@ -7,20 +7,8 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeKAHIP diff --git a/makeLLVM b/makeLLVM index 102cce3..b5141a2 100755 --- a/makeLLVM +++ b/makeLLVM @@ -7,20 +7,8 @@ # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeLLVM @@ -35,12 +23,16 @@ # For example, when building from tar files (version 4.0.0) # # 1) Unpack LLVM: -# tar -xJf llvm-4.0.0.src.tar.xz -# mv llvm-4.0.0.src llvm-4.0.0 +# tar -xJf llvm-4.0.1.src.tar.xz +# mv llvm-4.0.1.src llvm-4.0.1 # # 2) Unpack Clang (also know as cfe): -# tar -xJf cfe-4.0.0.src.tar.xz -# mv cfe-4.0.0.src llvm-4.0.0/tools/clang +# tar -xJf cfe-4.0.1.src.tar.xz +# mv cfe-4.0.1.src llvm-4.0.1/tools/clang +# +# 3) Unpack openmp (optional): +# tar -xJf openmp-4.0.1.src.tar.xz +# mv openmp-4.0.1.src llvm-4.0.1/tools/openmp # # ---------------------------------------------- # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE diff --git a/makeMETIS b/makeMETIS index 67793d3..cdcff2e 100755 --- a/makeMETIS +++ b/makeMETIS @@ -7,20 +7,8 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeMETIS diff --git a/makeMGridGen b/makeMGridGen index 872680f..72d8f55 100755 --- a/makeMGridGen +++ b/makeMGridGen @@ -7,20 +7,8 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeMGridGen @@ -91,7 +79,7 @@ done [ -n "$mgridgenPACKAGE" ] || die "The mgridgen-VERSION was not specified" -# nothing to build +# Nothing to build if _foamIsNone "$mgridgenPACKAGE" then echo "Using mgridgen-none (skip ThirdParty build of MGridGen)" diff --git a/makeMPICH b/makeMPICH index 2332153..d361caa 100755 --- a/makeMPICH +++ b/makeMPICH @@ -7,20 +7,8 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeMPICH @@ -77,7 +65,7 @@ usage() { while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat<. +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeMesa @@ -59,7 +47,7 @@ usage() { while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat<. +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeOPENMPI @@ -77,10 +65,12 @@ usage() { while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat<. +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeParaView @@ -299,7 +287,7 @@ done [ -n "$ParaView_VERSION" ] || die "The paraview-VERSION was not specified" -# nothing to build +# Nothing to build if _foamIsNone "$ParaView_VERSION" then echo "Using paraview-none (skip ThirdParty build of ParaView)" diff --git a/makeQt b/makeQt index e50bcb5..44e691e 100755 --- a/makeQt +++ b/makeQt @@ -7,20 +7,8 @@ # \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd. #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeQt @@ -45,7 +33,7 @@ usage() { while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat<. +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeTecio diff --git a/makeVTK b/makeVTK index 8ce17b6..670fcad 100755 --- a/makeVTK +++ b/makeVTK @@ -7,20 +7,8 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # makeVTK diff --git a/minCmake b/minCmake index 66693fe..bf749d6 100755 --- a/minCmake +++ b/minCmake @@ -7,20 +7,8 @@ # \\/ M anipulation | #------------------------------------------------------------------------------ # License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see . +# This file is part of OpenFOAM, licensed under GNU General Public License +# . # # Script # minCmake diff --git a/sources.txt b/sources.txt deleted file mode 100644 index 5518442..0000000 --- a/sources.txt +++ /dev/null @@ -1,48 +0,0 @@ -Third-Party Sources -=================== - -OpenFOAM-1706 ---------------- -CGAL-4.9.1 -ParaView-5.4.0 -boost_1_64_0 -fftw-3.3.6-pl1 -openmpi-1.10.4 -scotch_6.0.3 - - -OpenFOAM-1612 ---------------- -CGAL-4.9 -ParaView-5.0.1 -boost_1_62_0 -fftw-3.3.5 -openmpi-1.10.4 -scotch_6.0.3 - - -OpenFOAM-1606 ---------------- -CGAL-4.8 -ParaView-5.0.1 -boost_1_61_0 -fftw-3.3.4 -openmpi-1.10.2 -scotch_6.0.3 - - -OpenFOAM v3.0+ ---------------- -CGAL-4.7 -ParaView-4.4.0 -openmpi-1.10.0 -scotch_6.0.3 - - -OpenFOAM+ 2.4 ---------------- -CGAL-4.6 -ParaView-4.1.0 -cmake-2.8.12.1 -openmpi-1.8.5 -scotch_6.0.3 From 5fcd29aa9933cc28a99219cde14f9b0ed3dec47e Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Fri, 15 Dec 2017 14:36:36 +0100 Subject: [PATCH 13/15] STYLE: remove patches and support for older paraview and adios --- BUILD.md | 26 +--- etc/patches/ADIOS-1.11.0 | 12 -- etc/patches/adios-1.11.0 | 1 - etc/patches/mkdiff-paraview-5.0.1 | 27 ---- etc/patches/paraview-4.4.0 | 44 ------ etc/patches/paraview-5.0.0 | 1 - etc/patches/paraview-5.0.1 | 221 ------------------------------ etc/patches/paraview-5.1.0 | 1 - etc/patches/paraview-5.1.2 | 65 --------- makeParaView | 4 +- 10 files changed, 5 insertions(+), 397 deletions(-) delete mode 100644 etc/patches/ADIOS-1.11.0 delete mode 120000 etc/patches/adios-1.11.0 delete mode 100644 etc/patches/mkdiff-paraview-5.0.1 delete mode 100644 etc/patches/paraview-4.4.0 delete mode 120000 etc/patches/paraview-5.0.0 delete mode 100644 etc/patches/paraview-5.0.1 delete mode 120000 etc/patches/paraview-5.1.0 delete mode 100644 etc/patches/paraview-5.1.2 diff --git a/BUILD.md b/BUILD.md index 1d4c0d0..43aa999 100644 --- a/BUILD.md +++ b/BUILD.md @@ -221,23 +221,8 @@ and save some disk space. - Compiles without patching. No known issues with the native OpenFOAM reader. -#### 5.3.0 -- Compiles without patching. - The native OpenFOAM reader has a bug reading tetrahedrals. - -#### 5.2.0 -- Compiles without patching, but the native OpenFOAM reader is - broken in this version. - -#### 4.4.0/5.0.0/5.0.1/5.1.2 -- When using `makeParaView`, the following patches will be automatically - applied (see the `etc/patches` directory): - - Bugfix for STL reader - affects 4.4.0 only. - - Broken installation (ui_pqExportStateWizard.h) - affects 4.4.0/5.0.0/5.0.1/5.1.x - - Building with gcc-6.1.0 - affects 4.4.0/5.0.0/5.0.1 (patch applied for 5.0.1) - - The SciberQuestToolKit plugin fails to compile with gcc-6.1.0 and causes - the compilation of ParaView to halt. The easiest solution is to delete - the ParaView-5.0.1/Plugins/SciberQuestToolKit directory. +#### 5.3.0 and older are neither recommended nor supported +- Various compilation issues and known bugs. ### ADIOS - The github release currently requires GNU autoconf tools (eg, @@ -260,7 +245,7 @@ and save some disk space. 3. Build ParaView using this third-party QT. For example, - ./makeParaView -qt-4.8.7 5.0.1 + ./makeParaView -qt-4.8.7 5.4.1 - ParaView versions prior to 5.3.0 do not properly support QT5. @@ -361,19 +346,14 @@ GNU *configure* can only be used prior to clang version 3.9. The minimum CMake requirements for building various components. 2.8 llvm-3.4.2 - 2.8.8 ParaView-5.0.1 2.8.11 CGAL-4.9 2.8.11 CGAL-4.11 2.8.12.2 llvm-3.7.0 2.8.12.2 llvm-3.8.0 2.8.4 cmake-3.6.0 - 3.3 ParaView-5.1.2 - 3.3 ParaView-5.2.0 - 3.3 ParaView-5.3.0 3.3 ParaView-5.4.1 3.4.3 llvm-3.9.1 3.4.3 llvm-4.0.0 - 3.5 ParaView-5.1.0 ### GCC Minimum Requirements diff --git a/etc/patches/ADIOS-1.11.0 b/etc/patches/ADIOS-1.11.0 deleted file mode 100644 index 60ca0dd..0000000 --- a/etc/patches/ADIOS-1.11.0 +++ /dev/null @@ -1,12 +0,0 @@ ---- ADIOS-1.11.0/src/core/adios_transform_methods.c.orig 2016-11-17 19:46:11.000000000 +0100 -+++ ADIOS-1.11.0/src/core/adios_transform_methods.c 2016-12-14 15:19:39.870832445 +0100 -@@ -7,6 +7,9 @@ - - ADIOS_AVAILABLE_TRANSFORM_METHODS * adios_available_transform_methods() - { -+ /* Ensure the transforms are initialized before accessing */ -+ adios_transform_read_init(); -+ - int i, n; - n = 0; - for (i = (int)adios_transform_none; i < num_adios_transform_types; i++) { diff --git a/etc/patches/adios-1.11.0 b/etc/patches/adios-1.11.0 deleted file mode 120000 index ab6c15d..0000000 --- a/etc/patches/adios-1.11.0 +++ /dev/null @@ -1 +0,0 @@ -ADIOS-1.11.0 \ No newline at end of file diff --git a/etc/patches/mkdiff-paraview-5.0.1 b/etc/patches/mkdiff-paraview-5.0.1 deleted file mode 100644 index b727ef9..0000000 --- a/etc/patches/mkdiff-paraview-5.0.1 +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# simple script to generate patches -paraview=ParaView-5.0.1 -if [ "$#" -gt 0 ] -then - paraview="${1%%/}" -fi - -[ -d "$paraview" ] || { - echo "No directory '$paraview'" 1>&2 - exit 2 -} - -for i in \ - $paraview/VTK/CMake/vtkCompilerExtras.cmake \ - $paraview/VTK/CMake/GenerateExportHeader.cmake \ - $paraview/Qt/Components/CMakeLists.txt \ - $paraview/CMake/generate_qhp.cmake \ - $paraview/CMake/ParaViewMacros.cmake \ - $paraview/CMake/generate_proxydocumentation.cmake \ - ; -do - diff -uw $i.orig $i -done - -# ----------------------------------------------------------------------------- diff --git a/etc/patches/paraview-4.4.0 b/etc/patches/paraview-4.4.0 deleted file mode 100644 index 92ff39b..0000000 --- a/etc/patches/paraview-4.4.0 +++ /dev/null @@ -1,44 +0,0 @@ ---- ParaView-4.4.0/VTK/IO/Geometry/vtkSTLReader.cxx.orig 2015-09-11 19:59:24.000000000 +0200 -+++ ParaView-4.4.0/VTK/IO/Geometry/vtkSTLReader.cxx 2016-06-19 12:59:50.769770143 +0200 -@@ -448,7 +448,7 @@ - done = done || (fscanf(fp,"%s", line)==EOF); - } - } -- if (!done) -+ else if (!done) - { - done = (fgets(line, 255, fp) == 0); - lineCount++; ---- ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake.orig 2016-03-28 17:07:10.000000000 +0200 -+++ ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake 2016-06-11 15:10:14.820958942 +0200 -@@ -32,7 +32,7 @@ - OUTPUT_VARIABLE _gcc_version_info - ERROR_VARIABLE _gcc_version_info) - -- string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]*" -+ string (REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]*" - _gcc_version "${_gcc_version_info}") - if(NOT _gcc_version) - string (REGEX REPLACE ".*\\(GCC\\).*([34]\\.[0-9]).*" "\\1.0" ---- ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake.orig 2016-03-28 17:07:10.000000000 +0200 -+++ ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake 2016-06-11 15:12:16.344357746 +0200 -@@ -166,7 +166,7 @@ - execute_process(COMMAND ${CMAKE_C_COMPILER} ARGS --version - OUTPUT_VARIABLE _gcc_version_info - ERROR_VARIABLE _gcc_version_info) -- string(REGEX MATCH "[345]\\.[0-9]\\.[0-9]*" -+ string(REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]*" - _gcc_version "${_gcc_version_info}") - # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the - # patch level, handle this here: ---- ParaView-5.0.1/Qt/Components/CMakeLists.txt.orig 2016-06-13 09:27:27.827849525 +0200 -+++ ParaView-5.0.1/Qt/Components/CMakeLists.txt 2016-06-13 09:29:28.599318445 +0200 -@@ -640,7 +640,7 @@ - #the pqSGExportStateWizard has subclasses that directly access - #the UI file, and currently we don't have a clean way to break this hard - #dependency, so for no we install this ui file. --if(PARAVIEW_INSTALL_DEVELOPMENT_FILES) -+if(PARAVIEW_INSTALL_DEVELOPMENT_FILES AND PARAVIEW_ENABLE_PYTHON) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h" - DESTINATION "${VTK_INSTALL_INCLUDE_DIR}") - endif() diff --git a/etc/patches/paraview-5.0.0 b/etc/patches/paraview-5.0.0 deleted file mode 120000 index 1f0fde9..0000000 --- a/etc/patches/paraview-5.0.0 +++ /dev/null @@ -1 +0,0 @@ -paraview-5.0.1 \ No newline at end of file diff --git a/etc/patches/paraview-5.0.1 b/etc/patches/paraview-5.0.1 deleted file mode 100644 index c4126f9..0000000 --- a/etc/patches/paraview-5.0.1 +++ /dev/null @@ -1,221 +0,0 @@ ---- ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake.orig 2016-03-28 17:07:10.000000000 +0200 -+++ ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake 2016-12-13 17:21:25.382720945 +0100 -@@ -32,7 +32,7 @@ - OUTPUT_VARIABLE _gcc_version_info - ERROR_VARIABLE _gcc_version_info) - -- string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]*" -+ string (REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]*" - _gcc_version "${_gcc_version_info}") - if(NOT _gcc_version) - string (REGEX REPLACE ".*\\(GCC\\).*([34]\\.[0-9]).*" "\\1.0" ---- ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake.orig 2016-03-28 17:07:10.000000000 +0200 -+++ ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake 2016-12-13 17:21:25.382720945 +0100 -@@ -166,7 +166,7 @@ - execute_process(COMMAND ${CMAKE_C_COMPILER} ARGS --version - OUTPUT_VARIABLE _gcc_version_info - ERROR_VARIABLE _gcc_version_info) -- string(REGEX MATCH "[345]\\.[0-9]\\.[0-9]*" -+ string(REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]*" - _gcc_version "${_gcc_version_info}") - # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the - # patch level, handle this here: ---- ParaView-5.0.1/Qt/Components/CMakeLists.txt.orig 2016-03-28 17:07:03.000000000 +0200 -+++ ParaView-5.0.1/Qt/Components/CMakeLists.txt 2016-12-13 17:38:42.713553032 +0100 -@@ -656,7 +656,7 @@ - #the pqSGExportStateWizard has subclasses that directly access - #the UI file, and currently we don't have a clean way to break this hard - #dependency, so for no we install this ui file. --if(PARAVIEW_INSTALL_DEVELOPMENT_FILES) -+if(PARAVIEW_INSTALL_DEVELOPMENT_FILES AND PARAVIEW_ENABLE_PYTHON) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h" - DESTINATION "${VTK_INSTALL_INCLUDE_DIR}") - endif() ---- ParaView-5.0.1/CMake/generate_qhp.cmake.orig 2016-03-28 17:06:22.000000000 +0200 -+++ ParaView-5.0.1/CMake/generate_qhp.cmake 2016-12-13 17:21:25.382720945 +0100 -@@ -44,7 +48,9 @@ - message(FATAL_ERROR "Missing one of the required arguments!!") - endif () - --string (REPLACE "+" ";" file_patterns "${file_patterns}") -+# Recover original ';' separated list. -+string(REPLACE "_s" ";" file_patterns "${file_patterns}") -+string(REPLACE "_u" "_" file_patterns "${file_patterns}") - - get_filename_component(working_dir "${output_file}" PATH) - ---- ParaView-5.0.1/CMake/ParaViewMacros.cmake.orig 2016-03-28 17:07:03.000000000 +0200 -+++ ParaView-5.0.1/CMake/ParaViewMacros.cmake 2016-12-13 17:21:25.382720945 +0100 -@@ -219,15 +226,21 @@ - set (xmls_string "") - foreach (xml ${xmls}) - get_filename_component(xml "${xml}" ABSOLUTE) -- set (xmls_string "${xmls_string}${xml}+") -+ set (xmls_string "${xmls_string}${xml};") - endforeach() - - set (gui_xmls_string "") - foreach (gui_xml ${gui_xmls}) - get_filename_component(gui_xml "${gui_xml}" ABSOLUTE) -- set (gui_xmls_string "${gui_xmls_string}${gui_xml}+") -+ set (gui_xmls_string "${gui_xmls_string}${gui_xml};") - endforeach() - -+ # Escape ';' in lists -+ string(REPLACE "_" "_u" xmls_string "${xmls_string}") -+ string(REPLACE ";" "_s" xmls_string "${xmls_string}") -+ string(REPLACE "_" "_u" gui_xmls_string "${gui_xmls_string}") -+ string(REPLACE ";" "_s" gui_xmls_string "${gui_xmls_string}") -+ - set (all_xmls ${xmls} ${gui_xmls}) - list (GET all_xmls 0 first_xml) - if (NOT first_xml) ---- ParaView-5.0.1/CMake/generate_proxydocumentation.cmake.orig 2016-03-28 17:06:22.000000000 +0200 -+++ ParaView-5.0.1/CMake/generate_proxydocumentation.cmake 2016-12-13 17:21:25.382720945 +0100 -@@ -21,8 +21,10 @@ - endif() - - # input_xmls is a pseudo-list. Convert it to a real CMake list. --string(REPLACE "+" ";" input_xmls "${input_xmls}") --string(REPLACE "+" ";" input_gui_xmls "${input_gui_xmls}") -+string(REPLACE "_s" ";" input_xmls "${input_xmls}") -+string(REPLACE "_u" "_" input_xmls "${input_xmls}") -+string(REPLACE "_s" ";" input_gui_xmls "${input_gui_xmls}") -+string(REPLACE "_u" "_" input_gui_xmls "${input_gui_xmls}") - - set (xslt_xml) - ---- ParaView-5.0.1/VTK/CMake/vtkOpenGL.cmake.orig 2016-03-28 17:07:10.000000000 +0200 -+++ ParaView-5.0.1/VTK/CMake/vtkOpenGL.cmake 2017-01-19 10:23:19.170743269 +0100 -@@ -19,9 +19,11 @@ - # OSMesa logic for offscreen mesa rendering. - option(VTK_OPENGL_HAS_OSMESA - "The OpenGL library being used supports off screen Mesa calls" OFF) -+ - # EGL offscreen rendering - option(VTK_USE_OFFSCREEN_EGL - "Use EGL for OpenGL client API for offscreen rendering." OFF) -+ - set(VTK_EGL_DEVICE_INDEX 0 CACHE STRING - "Index of the EGL device (graphics card) to use.") - -@@ -33,21 +35,26 @@ - endif() - - option(VTK_USE_OFFSCREEN "Use off screen calls by default" OFF) -+ - unset(VTK_CAN_DO_OFFSCREEN) -+unset(VTK_CAN_DO_ONSCREEN) -+ - if(VTK_OPENGL_HAS_OSMESA OR WIN32 OR VTK_USE_OFFSCREEN_EGL) - set(VTK_CAN_DO_OFFSCREEN 1) - endif() -+ - if(VTK_USE_X OR VTK_USE_COCOA OR WIN32 OR ANDROID OR APPLE_IOS) -- set(VTK_USE_OSMESA FALSE) -+ set(VTK_USE_OSMESA ${VTK_OPENGL_HAS_OSMESA}) - if (VTK_USE_OFFSCREEN_EGL) - message(FATAL_ERROR "VTK_USE_OFFSCREEN_EGL set together with one of (" - "VTK_USE_X, VTK_USE_COCOA, WIN32, ANDROID OR APPLE_IOS). " - "You cannot use both offscreen and one of the listed windowing systems.") - endif() -+ set(VTK_CAN_DO_ONSCREEN 1) - elseif(VTK_USE_OFFSCREEN_EGL) - set(VTK_USE_OSMESA FALSE) - else() -- set(VTK_USE_OSMESA TRUE) -+ set(VTK_USE_OSMESA ${VTK_OPENGL_HAS_OSMESA}) - endif() - - mark_as_advanced(VTK_USE_X VTK_OPENGL_HAS_OSMESA VTK_USE_OFFSCREEN_EGL -@@ -56,10 +63,17 @@ - if(VTK_USE_OSMESA) - find_package(OSMesa REQUIRED) - include_directories(SYSTEM ${OSMESA_INCLUDE_DIR}) --elseif(VTK_USE_OFFSCREEN_EGL) -+endif() -+ -+if(VTK_USE_OFFSCREEN_EGL) - find_package(EGL REQUIRED) - include_directories(SYSTEM ${EGL_INCLUDE_DIR}) --else() -+endif() -+ -+if(VTK_CAN_DO_ONSCREEN) -+ # OpenGL libraries are explicity needed if windowing system-based API is being -+ # used. Otherwise, if only doing OFFSCREEN, the GL API is provided by the -+ # offscreen library be it EGL or OSMESA. - find_package(OpenGL REQUIRED) - include_directories(SYSTEM ${OPENGL_INCLUDE_DIR}) - if(APPLE) -@@ -83,9 +97,11 @@ - function(vtk_opengl_link target) - if(VTK_USE_OSMESA) - vtk_module_link_libraries(${target} LINK_PRIVATE ${OSMESA_LIBRARY}) -- elseif(VTK_USE_OFFSCREEN_EGL) -+ endif() -+ if(VTK_USE_OFFSCREEN_EGL) - vtk_module_link_libraries(${target} LINK_PRIVATE ${EGL_LIBRARIES}) -- else() -+ endif() -+ if(VTK_CAN_DO_ONSCREEN) - vtk_module_link_libraries(${target} LINK_PRIVATE ${OPENGL_LIBRARIES}) - endif() - endfunction() ---- ParaView-5.0.1/VTK/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx.orig 2016-03-28 17:07:10.000000000 +0200 -+++ ParaView-5.0.1/VTK/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx 2017-01-19 15:24:21.783214877 +0100 -@@ -30,10 +30,25 @@ - typedef ptrdiff_t GLsizeiptr; - #include "GL/glx.h" - -+ -+#ifndef GLAPI -+#define GLAPI extern -+#endif -+ -+#ifndef GLAPIENTRY -+#define GLAPIENTRY -+#endif -+ -+#ifndef APIENTRY -+#define APIENTRY GLAPIENTRY -+#endif -+ - #include "vtkToolkits.h" - - #ifdef VTK_USE_OSMESA - #include -+ -+typedef OSMesaContext GLAPIENTRY (*OSMesaCreateContextAttribs_func)( const int *attribList, OSMesaContext sharelist ); - #endif - - #include "vtkCommand.h" -@@ -757,6 +772,28 @@ - this->Size[1] = height; - this->OwnWindow = 1; - } -+ -+#if (OSMESA_MAJOR_VERSION * 100 + OSMESA_MINOR_VERSION >= 1102) && defined(OSMESA_CONTEXT_MAJOR_VERSION) -+ static const int attribs[] = { -+ OSMESA_FORMAT, OSMESA_RGBA, -+ OSMESA_DEPTH_BITS, 32, -+ OSMESA_STENCIL_BITS, 0, -+ OSMESA_ACCUM_BITS, 0, -+ OSMESA_PROFILE, OSMESA_CORE_PROFILE, -+ OSMESA_CONTEXT_MAJOR_VERSION, 3, -+ OSMESA_CONTEXT_MINOR_VERSION, 2, -+ 0 }; -+ -+ OSMesaCreateContextAttribs_func OSMesaCreateContextAttribs = -+ (OSMesaCreateContextAttribs_func) -+ OSMesaGetProcAddress("OSMesaCreateContextAttribs"); -+ -+ if (OSMesaCreateContextAttribs != NULL) -+ { -+ this->Internal->OffScreenContextId = OSMesaCreateContextAttribs(attribs, NULL); -+ } -+#endif -+ // if we still have no context fall back to the generic signature - if (!this->Internal->OffScreenContextId) - { - this->Internal->OffScreenContextId = OSMesaCreateContext(GL_RGBA, NULL); diff --git a/etc/patches/paraview-5.1.0 b/etc/patches/paraview-5.1.0 deleted file mode 120000 index 36a4164..0000000 --- a/etc/patches/paraview-5.1.0 +++ /dev/null @@ -1 +0,0 @@ -paraview-5.1.2 \ No newline at end of file diff --git a/etc/patches/paraview-5.1.2 b/etc/patches/paraview-5.1.2 deleted file mode 100644 index ccfc7c1..0000000 --- a/etc/patches/paraview-5.1.2 +++ /dev/null @@ -1,65 +0,0 @@ ---- ParaView-5.1.2/Qt/Components/CMakeLists.txt.orig 2016-07-26 21:52:16.000000000 +0200 -+++ ParaView-5.1.2/Qt/Components/CMakeLists.txt 2016-12-13 17:38:42.713553032 +0100 -@@ -591,7 +591,7 @@ - #the pqSGExportStateWizard has subclasses that directly access - #the UI file, and currently we don't have a clean way to break this hard - #dependency, so for no we install this ui file. --if(PARAVIEW_INSTALL_DEVELOPMENT_FILES) -+if(PARAVIEW_INSTALL_DEVELOPMENT_FILES AND PARAVIEW_ENABLE_PYTHON) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h" - DESTINATION "${VTK_INSTALL_INCLUDE_DIR}") - endif() ---- ParaView-5.1.2/CMake/generate_qhp.cmake.orig 2016-03-28 17:06:22.000000000 +0200 -+++ ParaView-5.1.2/CMake/generate_qhp.cmake 2016-12-13 17:21:25.382720945 +0100 -@@ -44,7 +48,9 @@ - message(FATAL_ERROR "Missing one of the required arguments!!") - endif () - --string (REPLACE "+" ";" file_patterns "${file_patterns}") -+# Recover original ';' separated list. -+string(REPLACE "_s" ";" file_patterns "${file_patterns}") -+string(REPLACE "_u" "_" file_patterns "${file_patterns}") - - get_filename_component(working_dir "${output_file}" PATH) - ---- ParaView-5.1.2/CMake/ParaViewMacros.cmake.orig 2016-03-28 17:07:03.000000000 +0200 -+++ ParaView-5.1.2/CMake/ParaViewMacros.cmake 2016-12-13 17:21:25.382720945 +0100 -@@ -219,15 +226,21 @@ - set (xmls_string "") - foreach (xml ${xmls}) - get_filename_component(xml "${xml}" ABSOLUTE) -- set (xmls_string "${xmls_string}${xml}+") -+ set (xmls_string "${xmls_string}${xml};") - endforeach() - - set (gui_xmls_string "") - foreach (gui_xml ${gui_xmls}) - get_filename_component(gui_xml "${gui_xml}" ABSOLUTE) -- set (gui_xmls_string "${gui_xmls_string}${gui_xml}+") -+ set (gui_xmls_string "${gui_xmls_string}${gui_xml};") - endforeach() - -+ # Escape ';' in lists -+ string(REPLACE "_" "_u" xmls_string "${xmls_string}") -+ string(REPLACE ";" "_s" xmls_string "${xmls_string}") -+ string(REPLACE "_" "_u" gui_xmls_string "${gui_xmls_string}") -+ string(REPLACE ";" "_s" gui_xmls_string "${gui_xmls_string}") -+ - set (all_xmls ${xmls} ${gui_xmls}) - list (GET all_xmls 0 first_xml) - if (NOT first_xml) ---- ParaView-5.1.2/CMake/generate_proxydocumentation.cmake.orig 2016-03-28 17:06:22.000000000 +0200 -+++ ParaView-5.1.2/CMake/generate_proxydocumentation.cmake 2016-12-13 17:21:25.382720945 +0100 -@@ -21,8 +21,10 @@ - endif() - - # input_xmls is a pseudo-list. Convert it to a real CMake list. --string(REPLACE "+" ";" input_xmls "${input_xmls}") --string(REPLACE "+" ";" input_gui_xmls "${input_gui_xmls}") -+string(REPLACE "_s" ";" input_xmls "${input_xmls}") -+string(REPLACE "_u" "_" input_xmls "${input_xmls}") -+string(REPLACE "_s" ";" input_gui_xmls "${input_gui_xmls}") -+string(REPLACE "_u" "_" input_gui_xmls "${input_gui_xmls}") - - set (xslt_xml) - diff --git a/makeParaView b/makeParaView index b568b34..402e5ee 100755 --- a/makeParaView +++ b/makeParaView @@ -14,7 +14,7 @@ # makeParaView # # Description -# Make and install ParaView 4 or 5. +# Make and install ParaView. # The ParaView sources should be located under one of these locations: # - $WM_THIRD_PARTY_DIR/ParaView-VERSION # - $WM_THIRD_PARTY_DIR/ParaView-vVERSION @@ -103,7 +103,7 @@ For finer control, the build stages can be selected or deselected individually: To make a different paraview version, simply specify on the command-line. For example, - ./makeParaview 5.0.1 + ./makeParaview 5.4.1 Or change the \$WM_PROJECT_DIR/etc/config.sh/paraview settings. From 6485db81a9a14c08a813f57e000a034bc083e827 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Sun, 17 Dec 2017 12:15:06 +0100 Subject: [PATCH 14/15] COMP: use 'cc' instead of 'mpicc' on Cray (issue #28) - the cray 'cc' handles mpi paths, there is no mpicc --- SOURCES.txt | 19 ++++++++++++++----- etc/tools/ParaViewFunctions | 2 +- etc/tools/ThirdPartyFunctions | 16 ++++++++++------ 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/SOURCES.txt b/SOURCES.txt index 0ee90d2..008f8f4 100644 --- a/SOURCES.txt +++ b/SOURCES.txt @@ -1,4 +1,4 @@ -Quick summary of third-party versions for recent OpenFOAM versions. +Short summary of third-party software versions for recent OpenFOAM versions. OpenFOAM-1712 --------------- @@ -8,6 +8,7 @@ boost_1_64_0 fftw-3.3.7 *minor* openmpi-1.10.4 scotch_6.0.3 +kahip-2.00d *new* OpenFOAM-1706 @@ -50,11 +51,19 @@ scotch_6.0.3 OpenFOAM-v2.4+ --------------- -CGAL-4.6 +CGAL-4.6 *update* ParaView-4.1.0 -cmake-2.8.12.1 -openmpi-1.8.5 -scotch_6.0.3 +openmpi-1.8.5 *update* +scotch_6.0.3 *update* + + +--------------- +OpenFOAM-v2.3 +--------------- +CGAL-4.3 +ParaView-4.1.0 +openmpi-1.6.5 +scotch_6.0.0 --------------- diff --git a/etc/tools/ParaViewFunctions b/etc/tools/ParaViewFunctions index 33e3949..b5330c9 100644 --- a/etc/tools/ParaViewFunctions +++ b/etc/tools/ParaViewFunctions @@ -16,7 +16,7 @@ # ParaView make/install helper functions # # Note -# Obtainining paths via 'python-config' is possible, but may not always +# Obtaining paths via 'python-config' is possible, but may not always # resolve properly: # # python-config --includes diff --git a/etc/tools/ThirdPartyFunctions b/etc/tools/ThirdPartyFunctions index 6d8a294..8ac3ef7 100644 --- a/etc/tools/ThirdPartyFunctions +++ b/etc/tools/ThirdPartyFunctions @@ -13,7 +13,7 @@ # etc/tools/ThirdPartyFunctions # # Description -# Functions for managing the third-party packages +# Various functions used in building ThirdParty packages # # Define the standard buildBASE and installBASE for the platform # Define WM_NCOMPPROCS always. @@ -46,16 +46,21 @@ useGccFlag() done } -# Return mpiicc (for INTELMPI) or mpicc etc. +# Return by default or if possible for INTELMPI. +# Cray doesn't have , but its manages mpi paths directly. +# NOTE: could further refine based on $CC or $WM_CC, but not yet needed whichMpicc() { - local mpicc + local mpicc=$(command -v mpicc) case "$WM_MPLIB" in (INTELMPI) - mpicc=$(command -v mpiicc) # Try using intel 'mpiicc' + mpicc=$(command -v mpiicc) # Intel available? + ;; + (CRAY-MPI*) + : ${mpicc:=cc} # Cray if there is no ;; esac - echo "${mpicc:-mpicc}" # mpiicc | mpicc + echo "${mpicc:-mpicc}" } #------------------------------------------------------------------------------ @@ -105,7 +110,6 @@ else WM_NCOMPPROCS=1 fi export WM_NCOMPPROCS -# echo "Building on $WM_NCOMPPROCS cores" # From 03075ef079e3e588fe8953b18f58b602fcb20948 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Tue, 19 Dec 2017 10:21:07 +0100 Subject: [PATCH 15/15] STYLE: update some build comments regarding min gcc for clang --- BUILD.md | 13 +++++++++++-- README.md | 1 + SOURCES.txt | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/BUILD.md b/BUILD.md index 43aa999..d8737ee 100644 --- a/BUILD.md +++ b/BUILD.md @@ -297,8 +297,12 @@ install the 32-bit development libraries by default. The minimum version of clang required is 3.3. *Attention*: If you are building a newer version of clang, you may need to -update your CMake beforehand. -GNU *configure* can only be used prior to clang version 3.9. +update your CMake beforehand since GNU *configure* can only be used prior +to clang version 3.9. + +If your system gcc is particularly old +(see [minimum gcc requirements for clang](#min-gcc)) +you may have additional hurdles to using the newest versions of clang. | Name | Location @@ -365,6 +369,10 @@ The minimum gcc/g++ requirements for building various components. 4.7 llvm-3.5.2 4.4 llvm-3.4.2 +If your system gcc/g++ is too old to build the desired llvm/clang +version, you may need to build a lower llvm/clang version and then use +that clang compiler for building the newer llvm/clang version. + [page gcc]: http://gcc.gnu.org/releases.html @@ -457,6 +465,7 @@ The minimum gcc/g++ requirements for building various components. [link AddOns]: https://develop.openfoam.com/Community/OpenFOAM-addOns [link community-projects]: http://www.openfoam.com/community/projects.php +--- ## Additional OpenFOAM Links diff --git a/README.md b/README.md index 2454982..e8571a5 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,7 @@ More details can be found the ThirdParty BUILD.md information. [link AddOns]: https://develop.openfoam.com/Community/OpenFOAM-addOns [link community-projects]: http://www.openfoam.com/community/projects.php +--- ## Additional OpenFOAM Links diff --git a/SOURCES.txt b/SOURCES.txt index 008f8f4..0d8c44f 100644 --- a/SOURCES.txt +++ b/SOURCES.txt @@ -49,7 +49,7 @@ openmpi-1.10.0 *update* scotch_6.0.3 -OpenFOAM-v2.4+ +OpenFOAM-v2.4 --------------- CGAL-4.6 *update* ParaView-4.1.0