From 59be96faedea69a8a613b07998ebc2a1dc120396 Mon Sep 17 00:00:00 2001 From: mark Date: Tue, 14 Mar 2017 15:37:21 +0100 Subject: [PATCH] ENH: remove reliance on OpenFOAM etc/config.sh/functions file. - similar functionality in etc/tools/ThirdPartyFunctions to improve the independence of ThirdParty while reducing clutter in the callers. - add useGcc function for convenience - mask seeing our own git-repo when building STYLE: various items - eliminate old user-editable configuration in files - now command-line only. - use *_BUILD_DIR instead of *_BINARY_DIR for more clarity of the purpose - drop use of '-q' option for wmakeCheckPwd (already has stderr redirect) - drop checkVersion for makeParaView since it stopped working properly with newer paraview version CONFIG: update list of versions --- Allclean | 7 ++- Allwmake | 79 ++++++++++++++++++--------------- BUILD.md | 49 ++++++++++----------- etc/pkgconfigAdjust | 8 ++-- etc/pkgconfigPrefix | 8 ++-- etc/relocateQt | 16 +++---- etc/tools/ParaViewFunctions | 50 ++++++--------------- etc/tools/QtFunctions | 7 +++ etc/tools/ThirdPartyFunctions | 24 ++++++++++ etc/tools/vtkFunctions | 27 ++++++------ makeADIOS | 31 ++++++------- makeCCMIO | 49 +++++++++++---------- makeCGAL | 51 ++++++++++----------- makeCmake | 18 ++++---- makeFFTW | 26 +++++------ makeGcc | 47 ++++++++++++-------- makeGperftools | 26 +++++------ makeLLVM | 44 +++++++++---------- makeMPICH | 37 ++++++++-------- makeMesa | 35 ++++++++------- makeOPENMPI | 35 ++++++++------- makeParaView | 83 +++++++++++++---------------------- makeQt | 19 +++----- makeTecio | 67 +++++++++++++--------------- makeVTK | 62 ++++++++++---------------- minCmake | 4 +- 26 files changed, 437 insertions(+), 472 deletions(-) diff --git a/Allclean b/Allclean index 6c3e0b0..b50475c 100755 --- a/Allclean +++ b/Allclean @@ -32,7 +32,7 @@ # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ # Run from third-party directory only -cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +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 @@ -66,7 +66,10 @@ fi #------------------------------------------------------------------------------ # Clean various packages via 'distclean' -for i in openmpi-* metis-* adios-* ADIOS-* +for i in \ + openmpi-* metis-* adios-* ADIOS-* gperftools-* qt-* \ + gmp-* mpfr-* mpc-* gcc-* llvm-* \ +; do [ -d "$i" ] && ( echo diff --git a/Allwmake b/Allwmake index 066fc48..8ca2948 100755 --- a/Allwmake +++ b/Allwmake @@ -32,7 +32,7 @@ # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ # Run from third-party directory only -cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +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 @@ -44,7 +44,7 @@ cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { } . etc/tools/ThirdPartyFunctions #------------------------------------------------------------------------------ -# Export WM settings in a form that GNU configure recognizes +# Compiler/linker settings for CMake/configure [ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CXX" ] && export CXX="$WM_CXX" [ -n "$WM_CFLAGS" ] && export CFLAGS="$WM_CFLAGS" @@ -105,7 +105,7 @@ echo " $SCOTCH_ARCH_PATH" SCOTCH_SOURCE_DIR=$sourceBASE/$SCOTCH_VERSION -# This needs generalizing, but works fairly well +# Needs generalizing, but works fairly well scotchMakefile=../../etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM if [ -f $SCOTCH_ARCH_PATH/include/scotch.h \ @@ -118,53 +118,56 @@ elif [ -d "$SCOTCH_SOURCE_DIR" ] then ( cd $SCOTCH_SOURCE_DIR/src || exit 1 + export GIT_DIR=$SCOTCH_SOURCE_DIR/.git # Mask seeing our own git-repo rm -rf $SCOTCH_ARCH_PATH applyPatch $SCOTCH_VERSION .. # patch at parent-level prefixDIR=$SCOTCH_ARCH_PATH + incDIR=$SCOTCH_ARCH_PATH/include libDIR=$FOAM_EXT_LIBBIN mkdir -p $prefixDIR 2>/dev/null - mkdir -p $libDIR 2>/dev/null + mkdir -p $incDIR 2>/dev/null + mkdir -p $libDIR 2>/dev/null - configOpt="prefix=$prefixDIR libdir=$libDIR" + # 'CC' already set (eg, from WM_CC) - set scotch-specific 'CCS' too + [ -n "$CC" ] && export CCS="$CC" if [ -f $scotchMakefile ] then rm -f Makefile.inc ln -s $scotchMakefile Makefile.inc fi - [ -f Makefile.inc ] || { echo " Error: scotch needs an appropriate Makefile.inc" exit 1 } - # handle non-gcc compilers - unset configEnv - [ "${WM_CC:-gcc}" != gcc ] && configEnv="CC=$WM_CC CCS=$WM_CC" + make realclean 2>/dev/null # Extra safety - make realclean 2>/dev/null # for safety + make -j $WM_NCOMPPROCS scotch \ + && make \ + prefix=$prefixDIR \ + includedir=$incDIR \ + libdir=$libDIR \ + install - make -j $WM_NCOMPPROCS $configEnv scotch \ - && make $configOpt install - - # cleanup, could also remove Makefile.inc - make realclean 2>/dev/null + make realclean 2>/dev/null || true # Failed cleanup is uncritical ) || warnBuildIssues SCOTCH else warnNotFound SCOTCH fi # Build ptscotch if MPI (ThirdParty or system) is available -# and normal scotch was build (has include and library) +# and normal scotch was built (has include and library) if [ "${FOAM_MPI:-dummy}" != dummy ] && \ [ -f $SCOTCH_ARCH_PATH/include/scotch.h \ -a -r $FOAM_EXT_LIBBIN/libscotch.so ] || \ { + # Report that the above tests failed and pass-through the failure echo - echo " WARNING: skipping pt-scotch - 'scotch.h' include file not found!" + echo " WARNING: skipping pt-scotch - no mpi or not found" false } then @@ -182,6 +185,7 @@ then else ( cd $SCOTCH_SOURCE_DIR/src || exit 1 + export GIT_DIR=$SCOTCH_SOURCE_DIR/.git # Mask seeing our own git-repo echo prefixDIR=$SCOTCH_ARCH_PATH @@ -189,42 +193,44 @@ then libDIR=$FOAM_EXT_LIBBIN/$FOAM_MPI mkdir -p $prefixDIR 2>/dev/null - mkdir -p $libDIR 2>/dev/null + mkdir -p $incDIR 2>/dev/null + mkdir -p $libDIR 2>/dev/null - configOpt="prefix=$prefixDIR includedir=$incDIR libdir=$libDIR" + # 'CC' already set (eg, from WM_CC) - set scotch-specific 'CCS' too + [ -n "$CC" ] && export CCS="$CC" if [ -f $scotchMakefile ] then rm -f Makefile.inc ln -s $scotchMakefile Makefile.inc fi - [ -f Makefile.inc ] || { - echo " Error: scotch needs an appropriate Makefile.inc" + echo " Error: ptscotch needs an appropriate Makefile.inc" exit 1 } - # handle non-gcc compilers - unset configEnv - [ "${WM_CC:-gcc}" != gcc ] && configEnv="CC=$WM_CC CCS=$WM_CC" + make realclean 2>/dev/null # Extra safety - make realclean 2>/dev/null # for safety + make -j $WM_NCOMPPROCS ptscotch \ + && make \ + prefix=$prefixDIR \ + includedir=$incDIR \ + libdir=$libDIR \ + install - make -j $WM_NCOMPPROCS $configEnv ptscotch \ - && make $configOpt install - - # cleanup, could also remove Makefile.inc - make realclean 2>/dev/null - ) + make realclean 2>/dev/null || true # Failed cleanup is uncritical + ) || warnBuildIssues PTSCOTCH fi - # verify existence of ptscotch include + # Verify existence of ptscotch include [ -f $SCOTCH_ARCH_PATH/include/$FOAM_MPI/ptscotch.h ] || { echo echo " WARNING: required include file 'ptscotch.h' not found!" } fi +# Could now remove $SCOTCH_SOURCE_DIR/src/Makefile.inc + #------------------------------------------------------------------------------ @@ -233,7 +239,7 @@ echo echo ======================================== echo Build Metis decomposition -# get METIS_VERSION, METIS_ARCH_PATH +# Get METIS_VERSION, METIS_ARCH_PATH if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/metis) then . $settings @@ -250,6 +256,7 @@ 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 @@ -260,10 +267,10 @@ then # - 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 + && make -j $WM_NCOMPPROCS install \ + && mv $METIS_ARCH_PATH/lib/libmetis.so $FOAM_EXT_LIBBIN - rmdir $METIS_ARCH_PATH/lib 2>/dev/null || true # failure is not critical + rmdir $METIS_ARCH_PATH/lib 2>/dev/null || true # Failed rmdir is uncritical ) || warnBuildIssues METIS else warnNotFound METIS diff --git a/BUILD.md b/BUILD.md index 44206e8..43ca1f9 100644 --- a/BUILD.md +++ b/BUILD.md @@ -184,13 +184,13 @@ and save some disk space. sources that are bundled with ParaView. For example, by using a symbolic link: - ln -s ParaView-5.0.1/VTK VTK-7.1.0 + ln -s ParaView-v5.3.0/VTK VTK-7.1.0 The appropriate VTK version number can be found from the contents of the `vtkVersion.cmake` file. For example, - $ cat ParaView-5.0.1/VTK/CMake/vtkVersion.cmake + $ cat ParaView-v5.3.0/VTK/CMake/vtkVersion.cmake # VTK version number components. set(VTK_MAJOR_VERSION 7) @@ -198,18 +198,17 @@ and save some disk space. set(VTK_BUILD_VERSION 0) ### ParaView -- **ParaView-5.0.1** is the last version for which the OpenFOAM reader - modules (eg, to visualize a `blockMeshDict`) work in their present form. - - Building ParaView requires CMake, qmake and a `qt` development files. Use the `-cmake`, `-qmake` and `-qt-*` options for `makeParaView` as required. See additional notes below about [making Qt](#makeQt) if necessary. +#### 5.3.0 +- Compiles without patching. + No known issues with the native OpenFOAM reader. + #### 5.2.0 -- Compiles without patching, but the OpenFOAM reader modules - (eg, to visualize a `blockMeshDict`) have not yet been migrated - to this version. Note that the native OpenFOAM reader appears to be +- Compiles without patching, but the native OpenFOAM reader appears to be partially broken in this version. #### 4.4.0/5.0.0/5.0.1/5.1.2 @@ -245,7 +244,7 @@ and save some disk space. ./makeParaView -qt-4.8.7 5.0.1 -- ParaView does not yet support QT5 (Dec-2016, but this will soon change). +- ParaView versions prior to 5.3.0 do not properly support QT5. - If you relocate the third-party directory to another location (eg, you built in your home directory, but want to install it in a @@ -332,8 +331,8 @@ GNU *configure* can only be used prior to clang version 3.9. | Name | Location |-----------------------|------------------------ | [MESA][page mesa] | [download][link mesa] or [older][older mesa] -| [ParaView][page ParaView] | [download][link ParaView]. The reader modules do not yet work with the newest paraview versions. -| [Qt][page Qt] | [repo][repo Qt] or [download][link Qt]. The newer [Qt5][newer Qt5] is **not** currently supported by ParaView. +| [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. ### CMake Minimum Requirements @@ -348,7 +347,8 @@ The minimum CMake requirements for building various components. 2.8.4 cmake-3.6.0 3.3 ParaView-5.1.2 3.3 ParaView-5.2.0 - 3.4.3 llvm-3.9.0.src + 3.3 ParaView-5.3.0 + 3.4.3 llvm-3.9.1 3.5 ParaView-5.1.0 @@ -378,26 +378,26 @@ The minimum gcc/g++ requirements for building various components. [page clang]: http://llvm.org/ [page llvm]: http://llvm.org/ -[link clang]: http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz -[link llvm]: http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz +[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 -[newer clang]: http://llvm.org/releases/3.9.0/cfe-3.9.0.src.tar.xz -[newer llvm]: http://llvm.org/releases/3.9.0/llvm-3.9.0.src.tar.xz +[newer clang]: http://llvm.org/releases/3.9.1/cfe-3.9.1.src.tar.xz +[newer llvm]: http://llvm.org/releases/3.9.1/llvm-3.9.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.0.tar.gz -[altlink adios]: http://users.nccs.gov/%7Epnorbert/adios-1.11.0.tar.gz +[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 [page zfp]: http://computation.llnl.gov/projects/floating-point-compression/zfp-versions [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 openmpi]: http://www.open-mpi.org/ -[link openmpi]: http://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.0/downloads/openmpi-2.0.1.tar.bz2 +[older openmpi]: http://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.6.tar.bz2 +[link openmpi]: https://www.open-mpi.org/software/ompi/v2.0/downloads/openmpi-2.0.2.tar.bz2 @@ -412,7 +412,7 @@ The minimum gcc/g++ requirements for building various components. [older CGAL]: https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.8.2/CGAL-4.8.2.tar.xz [page FFTW]: http://www.fftw.org/ -[link FFTW]: http://www.fftw.org/fftw-3.3.5.tar.gz +[link FFTW]: http://www.fftw.org/fftw-3.3.6-pl1.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) @@ -428,11 +428,8 @@ The minimum gcc/g++ requirements for building various components. [page ParaView]: http://www.paraview.org/ -[link ParaView]: http://www.paraview.org/files/v5.0/ParaView-v5.0.1-source.tar.gz - -[older ParaView-44]: http://www.paraview.org/files/v4.4/ParaView-v4.4.0-source.tar.gz -[newer ParaView-51]: http://www.paraview.org/files/v5.1/ParaView-v5.1.2-source.tar.gz -[newer ParaView-52]: http://www.paraview.org/files/v5.2/ParaView-v5.2.0.tar.gz +[link ParaView]: http://www.paraview.org/files/v5.3/ParaView-v5.3.0.tar.gz +[older ParaView]: http://www.paraview.org/files/v5.0/ParaView-v5.0.1-source.tar.gz [page mesa]: http://mesa3d.org/ [link mesa]: ftp://ftp.freedesktop.org/pub/mesa/13.0.3/mesa-13.0.3.tar.xz diff --git a/etc/pkgconfigAdjust b/etc/pkgconfigAdjust index cfb77de..26932a1 100755 --- a/etc/pkgconfigAdjust +++ b/etc/pkgconfigAdjust @@ -46,7 +46,7 @@ # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ # Run from third-party (parent) directory only -wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || { echo "Error (${0##*/}) : current directory is not \$WM_THIRD_PARTY_DIR" echo " Check your OpenFOAM environment and installation" exit 1 @@ -75,9 +75,9 @@ USAGE while [ "$#" -gt 0 ] do case "$1" in - -h | -help) - usage - ;; + '') ;; # Ignore empty + -h | -help) usage ;; + *) pkgconfigAdjust "$1" ;; diff --git a/etc/pkgconfigPrefix b/etc/pkgconfigPrefix index 5c8156e..469de6d 100755 --- a/etc/pkgconfigPrefix +++ b/etc/pkgconfigPrefix @@ -44,7 +44,7 @@ # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ # Run from third-party (parent) directory only -wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || { echo "Error (${0##*/}) : current directory is not \$WM_THIRD_PARTY_DIR" echo " Check your OpenFOAM environment and installation" exit 1 @@ -72,9 +72,9 @@ USAGE while [ "$#" -gt 0 ] do case "$1" in - -h | -help) - usage - ;; + '') ;; # Ignore empty + -h | -help) usage ;; + *) pkgconfigNewPrefix "$1" ;; diff --git a/etc/relocateQt b/etc/relocateQt index 7a10433..4b20454 100755 --- a/etc/relocateQt +++ b/etc/relocateQt @@ -32,7 +32,7 @@ # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ # Run from third-party (parent) directory only -wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || { echo "Error (${0##*/}) : current directory is not \$WM_THIRD_PARTY_DIR" echo " Check your OpenFOAM environment and installation" exit 1 @@ -40,8 +40,6 @@ wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { . etc/tools/ThirdPartyFunctions . etc/tools/QtFunctions #------------------------------------------------------------------------------ -unset qtVERSION # No default version -#------------------------------------------------------------------------------ usage() { exec 1>&2 while [ "$#" -ge 1 ]; do echo "$1"; shift; done @@ -61,17 +59,17 @@ USAGE exit 1 } #------------------------------------------------------------------------------ -unset forceOpt +unset optForce # Parse options while [ "$#" -gt 0 ] do case "$1" in - -h | -help) - usage - ;; + '') ;; # Ignore empty + -h | -help) usage ;; + -f | -force) - forceOpt=true + optForce=true ;; -qt-[1-9]* | [1-9]* | qt-*) # -qt-VERSION, VERSION, qt-VERSION, qt-everywhere-opensource-src-VERSION @@ -91,7 +89,7 @@ QT_ARCH_PATH=$installBASE/qt-$qtVERSION [ -n "$qtVERSION" ] || die "No QT version specified" [ -d "$QT_ARCH_PATH" ] || die "No QT installation" -if [ "${forceOpt:-false}" = true ] +if [ "${optForce:-false}" = true ] then # Create qt.conf and adjust locations to use '${prefix}' internally finalizeQt diff --git a/etc/tools/ParaViewFunctions b/etc/tools/ParaViewFunctions index ba4a32a..a53bdda 100644 --- a/etc/tools/ParaViewFunctions +++ b/etc/tools/ParaViewFunctions @@ -48,7 +48,7 @@ BUILD_TYPE=Release # The cmake build type # ParaView_VERSION and ParaView_MAJOR should already have been set # # ParaView_SOURCE_DIR : location of the original sources -# ParaView_BINARY_DIR : location of the build +# ParaView_BUILD_DIR : location of the build # ParaView_DIR : location of the installed program # setParaViewDirs() @@ -73,18 +73,17 @@ setParaViewDirs() exit 1 } - ParaView_BINARY_DIR=$buildBASE/ParaView-$ParaView_VERSION$BUILD_SUFFIX + ParaView_BUILD_DIR=$buildBASE/ParaView-$ParaView_VERSION$BUILD_SUFFIX ParaView_DIR=$installBASE/ParaView-$ParaView_VERSION$BUILD_SUFFIX - export ParaView_SOURCE_DIR ParaView_BINARY_DIR ParaView_DIR + export ParaView_SOURCE_DIR ParaView_BUILD_DIR ParaView_DIR echo echo "ParaView_SOURCE_DIR=$ParaView_SOURCE_DIR" - echo "ParaView_BINARY_DIR=$ParaView_BINARY_DIR" + echo "ParaView_BUILD_DIR=$ParaView_BUILD_DIR" echo "ParaView_DIR=$ParaView_DIR" - # Prevent git queries from using the ThirdParty repository - export GIT_DIR=$ParaView_SOURCE_DIR/.git + export GIT_DIR=$ParaView_SOURCE_DIR/.git # Mask seeing our own git-repo } @@ -112,27 +111,6 @@ setParaViewVersion() #------------------------------------------------------------------------------ -# -# Compare version information (specified vs what is found in CMakeLists.txt) -# Parse this type of content: -# set (PARAVIEW_VERSION_FULL "5.0.1") -# -checkVersion() -{ - local ver=$( - sed -ne 's/^ *set *( *PARAVIEW_VERSION_FULL[ "]*\([.0-9]*\).*$/\1/ip' \ - $ParaView_SOURCE_DIR/CMakeLists.txt - ) - - if [ "$ParaView_VERSION" != "$ver" ] - then - echo "(${ver:-none}) mismatch?" - else - echo "(${ver:-none})" - fi -} - - # # Set CMake cache variables # @@ -375,17 +353,17 @@ configParaView() local cmake=$(findCMake) # Remove any existing build folder and recreate - if [ -d $ParaView_BINARY_DIR ] + if [ -d $ParaView_BUILD_DIR ] then echo "removing old build directory" - echo " $ParaView_BINARY_DIR" - rm -rf $ParaView_BINARY_DIR + echo " $ParaView_BUILD_DIR" + rm -rf $ParaView_BUILD_DIR fi - mkdir -p $ParaView_BINARY_DIR + mkdir -p $ParaView_BUILD_DIR addCMakeVariable "CMAKE_BUILD_TYPE=$BUILD_TYPE" - cd $ParaView_BINARY_DIR || exit 1 # Change to build folder + cd $ParaView_BUILD_DIR || exit 1 # Change to build folder echo "----" echo "Configuring paraview-$ParaView_VERSION (major version: $ParaView_MAJOR)" @@ -395,7 +373,7 @@ configParaView() echo " GL2 rendering : ${withGL2:-false}" echo " QT dev support : ${withQT:-true}" echo " Source : $ParaView_SOURCE_DIR" - echo " Build : $ParaView_BINARY_DIR" + echo " Build : $ParaView_BUILD_DIR" echo " Target : $ParaView_DIR" echo " cmake : $cmake" echo " Build suffix : ${BUILD_SUFFIX:-none}" @@ -423,7 +401,7 @@ configParaView() # makeParaView() { - cd $ParaView_BINARY_DIR || exit 1 # Change to build folder + cd $ParaView_BUILD_DIR || exit 1 # Change to build folder echo " Starting make" time make -j $WM_NCOMPPROCS echo " Done make" @@ -442,7 +420,7 @@ makeParaView() # installParaView() { - cd $ParaView_BINARY_DIR || exit 1 # Change to build folder + cd $ParaView_BUILD_DIR || exit 1 # Change to build folder echo " Installing ParaView to $ParaView_DIR" make install @@ -468,7 +446,7 @@ INFO # Non-system installation of QT? if [ "$qmake" != /usr/bin/qmake -a -d "$qtLib" ] then - cat<< INFO + /bin/cat</dev/null || { +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 } . etc/tools/ThirdPartyFunctions #------------------------------------------------------------------------------ -# ADIOS version from OpenFOAM etc/config.sh file -. $WM_PROJECT_DIR/etc/config.sh/functions -unset -f _foamAddPath _foamAddLib _foamAddMan # get settings only -_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/ADIOS) + +# ADIOS version from OpenFOAM etc/config.sh file: +_foamEtc config.sh/ADIOS adiosPACKAGE=${adios_version:-adios-none} + #------------------------------------------------------------------------------ usage() { exec 1>&2 @@ -64,7 +64,7 @@ USAGE exit 1 } #------------------------------------------------------------------------------ -# Export WM settings in a form that GNU configure recognizes +# Compiler settings for CMake/configure [ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CXX" ] && export CXX="$WM_CXX" [ -n "$WM_CFLAGS" ] && export CFLAGS="$WM_CFLAGS" @@ -74,13 +74,10 @@ USAGE while [ "$#" -gt 0 ] do case "$1" in - -h | -help) - usage - ;; - -gcc) - export CC=gcc # use gcc/g++ - export CXX=g++ - ;; + '') ;; # Ignore empty + -h | -help) usage ;; + -gcc) useGcc ;; + -cmake) [ "$#" -ge 2 ] || die "'$1' option requires an argument" CMAKE_PATH="${2%%/}" @@ -280,9 +277,9 @@ then buildDIR=$buildBASE/$adiosPACKAGE cd $ADIOS_SOURCE_DIR || exit 1 - [ -e Makefile ] && make distclean 2>/dev/null + export GIT_DIR=$PWD/.git # Mask seeing our own git-repo - export GIT_DIR=$ADIOS_SOURCE_DIR/.git + [ -e Makefile ] && make distclean 2>/dev/null applyPatch $adiosPACKAGE $ADIOS_SOURCE_DIR @@ -328,8 +325,7 @@ else ( buildDIR=$buildBASE/$adiosPACKAGE cd $ADIOS_SOURCE_DIR || exit 1 - - export GIT_DIR=$ADIOS_SOURCE_DIR/.git + export GIT_DIR=$PWD/.git # Mask seeing our own git-repo applyPatch $adiosPACKAGE $ADIOS_SOURCE_DIR @@ -354,6 +350,7 @@ else -DCMAKE_INSTALL_PREFIX=$ADIOS_ARCH_PATH \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_FORTRAN=FALSE \ + ${WM_QUIET:+-DCMAKE_RULE_MESSAGES=OFF} \ $ADIOS_SOURCE_DIR \ && make -j $WM_NCOMPPROCS all \ && make install \ diff --git a/makeCCMIO b/makeCCMIO index 02e7c21..2e1b976 100755 --- a/makeCCMIO +++ b/makeCCMIO @@ -32,7 +32,7 @@ # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ # Run from third-party directory only -cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +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 @@ -44,12 +44,13 @@ cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { } . etc/tools/ThirdPartyFunctions #------------------------------------------------------------------------------ -# libccmio version from OpenFOAM etc/config.sh file -. $WM_PROJECT_DIR/etc/config.sh/functions -_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/ccmio) + +# libccmio version from OpenFOAM etc/config.sh file: +_foamEtc config.sh/ccmio ccmioPACKAGE=${ccmio_version:-libccmio-2.6.1} -targetType=lib +targetType=lib # Default is static linkage + #------------------------------------------------------------------------------ usage() { @@ -59,6 +60,7 @@ usage() Usage: ${0##*/} [OPTION] [lib|libso] [libccmio-VERSION] options: + -gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX -help * Compile the proprietary libccmio library @@ -82,9 +84,10 @@ USAGE while [ "$#" -gt 0 ] do case "$1" in - -h | -help) - usage - ;; + '') ;; # Ignore empty + -h | -help) usage ;; + -gcc) useGcc ;; + lib|libso) targetType="$1" ;; @@ -98,19 +101,20 @@ do shift done -# assert: directory must be available -[ -d "$ccmioPACKAGE" ] || die "missing source directory '$ccmioPACKAGE'" - #------------------------------------------------------------------------------ -CCMIO_SOURCE_DIR=$sourceBASE/$ccmioPACKAGE -CCMIO_ARCH_PATH=$installBASE/$ccmioPACKAGE - # # Build LIBCCMIO # -echo "---------------" +CCMIO_SOURCE_DIR=$sourceBASE/$ccmioPACKAGE +CCMIO_ARCH_PATH=$installBASE/$ccmioPACKAGE + +# Sources must be available +[ -d "$CCMIO_SOURCE_DIR" ] || die "Missing sources: '$ccmioPACKAGE'" + ( 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 @@ -118,16 +122,17 @@ echo "---------------" mkdir -p $libDIR 2>/dev/null cpMakeFiles libccmio 2>/dev/null + + # Place static libraries in sub-directory: + if [ "$targetType" = lib ] + then + export FOAM_EXT_LIBBIN=$libDIR + fi + if wmake $targetType then - # make headers available: + # Make headers available: /bin/cp -pv libccmio/ccmio*.h $incDIR - - # relocate static libraries to sub-directory: - if [ "$targetType" = lib ] - then - /bin/mv -v $FOAM_EXT_LIBBIN/libccmio.a $libDIR - fi fi ) diff --git a/makeCGAL b/makeCGAL index e8b7045..7c27be6 100755 --- a/makeCGAL +++ b/makeCGAL @@ -65,26 +65,26 @@ then fi #------------------------------------------------------------------------------ # Run from third-party directory only -cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +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 } . etc/tools/ThirdPartyFunctions #------------------------------------------------------------------------------ -# CGAL, boost and gmp/mpfr versions from OpenFOAM etc/config.sh file -. $WM_PROJECT_DIR/etc/config.sh/functions -unset -f _foamAddPath _foamAddLib _foamAddMan # get settings only -unset BOOST_ARCH_PATH CGAL_ARCH_PATH # purge current values -# compiler first, let CGAL config override GMP (eg, when there is no GMP) -_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/compiler) -_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/CGAL) +unset BOOST_ARCH_PATH CGAL_ARCH_PATH # Purge current values + +# CGAL, boost and gmp/mpfr versions from OpenFOAM etc/config.sh files. +# Get compiler first and let CGAL config override GMP (eg, when there is no GMP) +_foamEtc config.sh/compiler +_foamEtc config.sh/CGAL boostPACKAGE=${boost_version:-boost-system} gmpPACKAGE=${gmp_version:-gmp-system} mpfrPACKAGE=${mpfr_version:-mpfr-system} cgalPACKAGE=$cgal_version + #------------------------------------------------------------------------------ usage() { exec 1>&2 @@ -116,7 +116,7 @@ USAGE exit 1 } #------------------------------------------------------------------------------ -# Ensure CMake gets the correct C/C++ compiler +# Compiler settings for CMake/configure [ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CXX" ] && export CXX="$WM_CXX" @@ -126,16 +126,10 @@ unset optHeadersOnly while [ "$#" -gt 0 ] do case "$1" in - -h | -help) - usage - ;; - '') - # discard empty arguments - ;; - -gcc) - export CC=gcc # use gcc/g++ - export CXX=g++ - ;; + '') ;; # Ignore empty + -h | -help) usage ;; + -gcc) useGcc ;; + -cmake) [ "$#" -ge 2 ] || die "'$1' option requires an argument" CMAKE_PATH="${2%%/}" @@ -222,6 +216,7 @@ else ( cd $BOOST_SOURCE_DIR || exit 1 + export GIT_DIR=$PWD/.git # Mask seeing our own git-repo rm -rf $BOOST_ARCH_PATH @@ -280,11 +275,11 @@ SUMMARY # CGAL-4.9 normally builds into 'lib64', older versions into 'lib'. # # CGAL_SOURCE_DIR : location of the original sources -# CGAL_BINARY_DIR : location of the build +# CGAL_BUILD_DIR : location of the build # CGAL_ARCH_PATH : installation directory CGAL_SOURCE_DIR=$sourceBASE/$cgalPACKAGE -CGAL_BINARY_DIR=$buildBASE/$cgalPACKAGE +CGAL_BUILD_DIR=$buildBASE/$cgalPACKAGE : ${CGAL_ARCH_PATH:=$installBASE/$cgalPACKAGE} # Fallback # gmp/mpfr are installed without compiler name @@ -379,21 +374,22 @@ fi ( # Remove any existing build folder and recreate - if [ -d $CGAL_BINARY_DIR ] + if [ -d $CGAL_BUILD_DIR ] then echo "removing old build directory" - echo " $CGAL_BINARY_DIR" - rm -rf $CGAL_BINARY_DIR + echo " $CGAL_BUILD_DIR" + rm -rf $CGAL_BUILD_DIR fi - mkdir -p $CGAL_BINARY_DIR + mkdir -p $CGAL_BUILD_DIR - cd $CGAL_BINARY_DIR || exit 1 + cd $CGAL_BUILD_DIR || exit 1 + export GIT_DIR=$CGAL_SOURCE_DIR/.git # Mask seeing our own git-repo unset configBoost configGmp configMpfr echo "----" echo "Configuring $cgalPACKAGE with boost $BOOST_VERSION" echo " Source : $CGAL_SOURCE_DIR" - echo " Build : $CGAL_BINARY_DIR" + echo " Build : $CGAL_BUILD_DIR" echo " Target : $CGAL_ARCH_PATH" @@ -479,6 +475,7 @@ CMAKE_OPTIONS -DWITH_CGAL_Qt5=OFF \ ${optHeadersOnly:+-DCGAL_HEADER_ONLY=TRUE} \ $configBoost $configGmp $configMpfr \ + ${WM_QUIET:+-DCMAKE_RULE_MESSAGES=OFF} \ $CGAL_SOURCE_DIR \ && set +x \ && make -j $WM_NCOMPPROCS \ diff --git a/makeCmake b/makeCmake index 5dce1b5..f8d0cdb 100755 --- a/makeCmake +++ b/makeCmake @@ -35,15 +35,17 @@ # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ # Run from third-party directory only -cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +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 } . etc/tools/ThirdPartyFunctions #------------------------------------------------------------------------------ + # Special purpose script - no default version. unset cmakePACKAGE + #------------------------------------------------------------------------------ usage() { exec 1>&2 @@ -63,7 +65,7 @@ USAGE exit 1 } #------------------------------------------------------------------------------ -# Ensure CMake gets the correct C/CC++ compiler +# Compiler settings for CMake/configure [ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CXX" ] && export CXX="$WM_CXX" @@ -72,13 +74,10 @@ unset optLink while [ "$#" -gt 0 ] do case "$1" in - -h | -help) - usage - ;; - -gcc) - export CC=gcc # use gcc/g++ - export CXX=g++ - ;; + '') ;; # Ignore empty + -h | -help) usage ;; + -gcc) useGcc ;; + -link) optLink=true ;; @@ -117,6 +116,7 @@ else buildDIR=$buildBASE/$cmakePACKAGE cd $CMAKE_SOURCE_DIR || exit 1 + export GIT_DIR=$PWD/.git # Mask seeing our own git-repo make distclean 2>/dev/null rm -rf $buildDIR diff --git a/makeFFTW b/makeFFTW index 437efab..dd8ea35 100755 --- a/makeFFTW +++ b/makeFFTW @@ -47,20 +47,19 @@ then fi #------------------------------------------------------------------------------ # Run from third-party directory only -cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +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 } . etc/tools/ThirdPartyFunctions #------------------------------------------------------------------------------ -# FFTW version from OpenFOAM etc/config.sh file -. $WM_PROJECT_DIR/etc/config.sh/functions -unset -f _foamAddPath _foamAddLib _foamAddMan # get settings only -_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/FFTW) +# FFTW version from OpenFOAM etc/config.sh file: +_foamEtc config.sh/FFTW fftwPACKAGE=${fftw_version:-fftw-system} + #------------------------------------------------------------------------------ usage() { exec 1>&2 @@ -79,7 +78,7 @@ USAGE exit 1 } #------------------------------------------------------------------------------ -# Ensure configure gets the correct C/C++ compiler +# Compiler settings for CMake/configure [ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CXX" ] && export CXX="$WM_CXX" @@ -87,16 +86,10 @@ USAGE while [ "$#" -gt 0 ] do case "$1" in - -h | -help) - usage - ;; - '') - # discard empty arguments - ;; - -gcc) - export CC=gcc # use gcc/g++ - export CXX=g++ - ;; + '') ;; # Ignore empty + -h | -help) usage ;; + -gcc) useGcc ;; + fftw-[0-9]* | fftw_[0-9]* | fftw-system ) fftwPACKAGE="${1%%/}" ;; @@ -146,6 +139,7 @@ else buildDIR=$buildBASE/$fftwPACKAGE cd $FFTW_SOURCE_DIR || exit 1 + export GIT_DIR=$PWD/.git # Mask seeing our own git-repo rm -rf $FFTW_ARCH_PATH rm -rf $buildDIR diff --git a/makeGcc b/makeGcc index 265d617..cfe9c08 100755 --- a/makeGcc +++ b/makeGcc @@ -44,24 +44,25 @@ # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ # Run from third-party directory only -cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +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 } . etc/tools/ThirdPartyFunctions #------------------------------------------------------------------------------ -# Default GCC, mpfr, gmp and mpc versions from OpenFOAM etc/config.sh file -WM_COMPILER_TYPE=ThirdParty # ensure we get the correct compiler settings -: ${WM_COMPILER:=Gcc} # this will still fail if 'Clang' was set -. $WM_PROJECT_DIR/etc/config.sh/functions -_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/compiler) +[ "${WM_COMPILER#Gcc}" = "$WM_COMPILER" ] && WM_COMPILER=Gcc # Force gcc +WM_COMPILER_TYPE=ThirdParty # Ensure we get the correct settings + +# Default GCC, mpfr, gmp and mpc versions from OpenFOAM etc/config.sh file: +_foamEtc config.sh/compiler gmpPACKAGE=${gmp_version:-gmp-system} mpfrPACKAGE=${mpfr_version:-mpfr-system} mpcPACKAGE=${mpc_version:-mpc-system} gccPACKAGE=$gcc_version + #------------------------------------------------------------------------------ usage() { exec 1>&2 @@ -94,9 +95,9 @@ unset optThreadSafe # unset=auto while [ "$#" -gt 0 ] do case "$1" in - -h | -help) - usage - ;; + '') ;; # Ignore empty + -h | -help) usage ;; + -multi*) optMultilib=enable ;; @@ -163,6 +164,18 @@ GMP_ARCH_PATH=$installBASE/$gmpPACKAGE MPFR_ARCH_PATH=$installBASE/$mpfrPACKAGE MPC_ARCH_PATH=$installBASE/$mpcPACKAGE +# Prefix to LD_LIBRARY_PATH, if it exists. 0 on success, 1 on failure +addLib() +{ + if [ -d "$1" ] + then + export LD_LIBRARY_PATH=$1:$LD_LIBRARY_PATH + return 0 + else + return 1 + fi +} + # ================ # Build GMP @@ -182,6 +195,7 @@ else buildDIR=$buildBASE/$gmpPACKAGE cd $sourceDIR || exit 1 + export GIT_DIR=$PWD/.git # Mask seeing our own git-repo make distclean 2>/dev/null rm -rf $buildDIR @@ -203,10 +217,8 @@ else } fi -if [ -d "$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" ] +if addLib "$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" then - _foamAddLib "$GMP_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" - configGMP=$(cat </dev/null rm -rf $buildDIR @@ -260,10 +273,8 @@ else } fi -if [ -d "$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" ] +if addLib "$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" then - _foamAddLib "$MPFR_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" - configMPFR=$(cat </dev/null rm -rf $buildDIR @@ -313,10 +325,8 @@ else } fi -if [ -d "$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" ] +if addLib "$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" then - _foamAddLib "$MPC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH" - configMPC=$(cat </dev/null rm -rf $buildDIR diff --git a/makeGperftools b/makeGperftools index 87cdc4c..4ad0f94 100755 --- a/makeGperftools +++ b/makeGperftools @@ -32,20 +32,19 @@ # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ # Run from third-party directory only -cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +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 } . etc/tools/ThirdPartyFunctions #------------------------------------------------------------------------------ -# Gperftools version from OpenFOAM etc/config.sh file -. $WM_PROJECT_DIR/etc/config.sh/functions -unset -f _foamAddPath _foamAddLib _foamAddMan # get settings only -_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/gperftools) +# Gperftools version from OpenFOAM etc/config.sh file: +_foamEtc config.sh/gperftools gperftoolsPACKAGE=${gperftools_version:-gperftools-system} + #------------------------------------------------------------------------------ usage() { exec 1>&2 @@ -64,7 +63,7 @@ USAGE exit 1 } #------------------------------------------------------------------------------ -# Ensure configure gets the correct C/C++ compiler +# Compiler settings for CMake/configure [ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CXX" ] && export CXX="$WM_CXX" @@ -72,13 +71,10 @@ USAGE while [ "$#" -gt 0 ] do case "$1" in - -h | -help) - usage - ;; - -gcc) - export CC=gcc # use gcc/g++ - export CXX=g++ - ;; + '') ;; # Ignore empty + -h | -help) usage ;; + -gcc) useGcc ;; + gperftools-[0-9]* | gperftools-svn* | gperftools-git) gperftoolsPACKAGE="${1%%/}" ;; @@ -119,8 +115,8 @@ else buildDIR=$buildBASE/$gperftoolsPACKAGE cd $GPERFTOOLS_SOURCE_DIR || exit 1 - - make distclean 2>/dev/null + export GIT_DIR=$PWD/.git # Mask seeing our own git-repo + [ -e Makefile ] && make distclean 2>/dev/null rm -rf $GPERFTOOLS_ARCH_PATH rm -rf $buildDIR diff --git a/makeLLVM b/makeLLVM index 1d45d3a..5da443f 100755 --- a/makeLLVM +++ b/makeLLVM @@ -46,21 +46,22 @@ # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ # Run from third-party directory only -cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +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 } . etc/tools/ThirdPartyFunctions #------------------------------------------------------------------------------ -# LLVM/Clang version from OpenFOAM etc/config.sh file -WM_COMPILER_TYPE=ThirdParty # ensure we get the correct compiler settings -WM_COMPILER=Clang # force values for 'clang' -. $WM_PROJECT_DIR/etc/config.sh/functions -_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/compiler) +[ "${WM_COMPILER#Clang}" = "$WM_COMPILER" ] && WM_COMPILER=Clang # Force clang +WM_COMPILER_TYPE=ThirdParty # Ensure we get the correct settings + +# LLVM/Clang version from OpenFOAM etc/config.sh file: +_foamEtc config.sh/compiler llvmPACKAGE=$clang_version + #------------------------------------------------------------------------------ usage() { exec 1>&2 @@ -80,7 +81,7 @@ USAGE exit 1 } #----------------------------------------------------------------------------- -# Ensure CMake gets the correct C/C++ compiler +# Compiler settings for CMake/configure [ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CXX" ] && export CXX="$WM_CXX" @@ -88,13 +89,10 @@ USAGE while [ "$#" -gt 0 ] do case "$1" in - -h | -help) - usage - ;; - -gcc) - export CC=gcc # use gcc/g++ - export CXX=g++ - ;; + '') ;; # Ignore empty + -h | -help) usage ;; + -gcc) useGcc ;; + -cmake) [ "$#" -ge 2 ] || die "'$1' option requires an argument" CMAKE_PATH="${2%%/}" @@ -119,12 +117,12 @@ installBASE=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH # Build LLVM (clang) # LLVM_SOURCE_DIR : location of the original sources -# LLVM_BINARY_DIR : location of the build +# LLVM_BUILD_DIR : location of the build # LLVM_ARCH_PATH : location of the installed program # - Strip any trailing '.src' from the proper names LLVM_SOURCE_DIR=$sourceBASE/$llvmPACKAGE -LLVM_BINARY_DIR=$buildBASE/${llvmPACKAGE%%.src} +LLVM_BUILD_DIR=$buildBASE/${llvmPACKAGE%%.src} LLVM_ARCH_PATH=$installBASE/${llvmPACKAGE%%.src} # @@ -143,11 +141,12 @@ then echo ( cd $LLVM_SOURCE_DIR || exit 1 + export GIT_DIR=$PWD/.git # Mask seeing our own git-repo make distclean 2>/dev/null - rm -rf $LLVM_BINARY_DIR - mkdir -p $LLVM_BINARY_DIR - cd $LLVM_BINARY_DIR + rm -rf $LLVM_BUILD_DIR + mkdir -p $LLVM_BUILD_DIR + cd $LLVM_BUILD_DIR set -x $LLVM_SOURCE_DIR/configure \ @@ -171,10 +170,11 @@ else echo ( cd $LLVM_SOURCE_DIR || exit 1 + export GIT_DIR=$PWD/.git # Mask seeing our own git-repo - rm -rf $LLVM_BINARY_DIR - mkdir -p $LLVM_BINARY_DIR - cd $LLVM_BINARY_DIR + rm -rf $LLVM_BUILD_DIR + mkdir -p $LLVM_BUILD_DIR + cd $LLVM_BUILD_DIR cmake=$(findCMake) diff --git a/makeMPICH b/makeMPICH index dd7b8fc..2332153 100755 --- a/makeMPICH +++ b/makeMPICH @@ -51,27 +51,33 @@ then fi #------------------------------------------------------------------------------ # Run from third-party directory only -cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +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 } . etc/tools/ThirdPartyFunctions +# Transition +# ~~~~~~~~~~ +_foamAddLib() { true; } +_foamAddMan() { true; } +_foamAddPath() { true; } #------------------------------------------------------------------------------ -# get mpich version -WM_MPLIB=MPICH # ensure we get the third-party settings -. $WM_PROJECT_DIR/etc/config.sh/functions -_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/mpi) +WM_MPLIB=MPICH # Ensure we get the correct MPI + +# mpich version from OpenFOAM etc/config.sh file: +_foamEtc config.sh/mpi mpiPACKAGE=${FOAM_MPI:-mpich-system} + #------------------------------------------------------------------------------ usage() { exec 1>&2 while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat</dev/null rm -rf $MPI_ARCH_PATH diff --git a/makeMesa b/makeMesa index edb8d81..31750cb 100755 --- a/makeMesa +++ b/makeMesa @@ -38,20 +38,21 @@ # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ # Run from third-party directory only -cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +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 } . etc/tools/ThirdPartyFunctions #------------------------------------------------------------------------------ -# MESA version from OpenFOAM etc/config.sh file -. $WM_PROJECT_DIR/etc/config.sh/functions -unset -f _foamAddPath _foamAddLib # get settings only -unset vtk_version mesa_version # purge current values -_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/vtk) +unset vtk_version mesa_version # Purge current values + +# mesa version from OpenFOAM etc/config.sh file: +_foamEtc config.sh/vtk + mesaPACKAGE=$mesa_version + #------------------------------------------------------------------------------ usage() { exec 1>&2 @@ -70,27 +71,28 @@ USAGE exit 1 } #------------------------------------------------------------------------------ -# Ensure configure gets the correct C/C++ compiler +# Compiler settings for CMake/configure [ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CXX" ] && export CXX="$WM_CXX" # Non-standard location for clang? -unset thirdPartyClang -if [ "$WM_COMPILER_TYPE" = ThirdParty -a "$WM_COMPILER" = Clang ] -then +case "$WM_COMPILER_TYPE-$WM_COMPILER" in +ThirdParty-Clang*) thirdPartyClang=true -fi + ;; +*) + unset thirdPartyClang + ;; +esac # Parse options while [ "$#" -gt 0 ] do case "$1" in - -h | -help) - usage - ;; + '') ;; # Ignore empty + -h | -help) usage ;; -gcc) - export CC=gcc # use gcc/g++ - export CXX=g++ + useGcc unset thirdPartyClang ;; mesa-*) @@ -171,6 +173,7 @@ adjustMESA() buildDIR=$buildBASE/$mesaPACKAGE cd $MESA_SOURCE_DIR || exit 1 + export GIT_DIR=$PWD/.git # Mask seeing our own git-repo # remove any existing build rm -rf $MESA_ARCH_PATH diff --git a/makeOPENMPI b/makeOPENMPI index a3a03ff..a61f954 100755 --- a/makeOPENMPI +++ b/makeOPENMPI @@ -51,20 +51,26 @@ then fi #------------------------------------------------------------------------------ # Run from third-party directory only -cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +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 } . etc/tools/ThirdPartyFunctions +# Transition +# ~~~~~~~~~~ +_foamAddLib() { true; } +_foamAddMan() { true; } +_foamAddPath() { true; } #------------------------------------------------------------------------------ -# get openmpi version -WM_MPLIB=OPENMPI # ensure we get the third-party settings -. $WM_PROJECT_DIR/etc/config.sh/functions -_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/mpi) +WM_MPLIB=OPENMPI # Ensure we get the correct MPI + +# openmpi version from OpenFOAM etc/config.sh file: +_foamEtc config.sh/mpi mpiPACKAGE=${FOAM_MPI:-openmpi-system} + #------------------------------------------------------------------------------ usage() { exec 1>&2 @@ -83,7 +89,7 @@ USAGE exit 1 } #------------------------------------------------------------------------------ -# Ensure configure gets the correct C/C++ compiler +# Compiler settings for CMake/configure [ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CXX" ] && export CXX="$WM_CXX" @@ -91,16 +97,10 @@ USAGE while [ "$#" -gt 0 ] do case "$1" in - -h | -help) - usage - ;; - '') - # discard empty arguments - ;; - -gcc) - export CC=gcc # use gcc/g++ - export CXX=g++ - ;; + '') ;; # Ignore empty + -h | -help) usage ;; + -gcc) useGcc ;; + openmpi-[0-9]* | openmpi_[0-9]* | openmpi-system ) mpiPACKAGE="${1%%/}" ;; @@ -163,6 +163,7 @@ else buildDIR=$buildBASE/$mpiPACKAGE cd $MPI_SOURCE_DIR || exit 1 + export GIT_DIR=$PWD/.git # Mask seeing our own git-repo [ -e Makefile ] && make distclean 2>/dev/null rm -rf $MPI_ARCH_PATH @@ -173,9 +174,9 @@ else set -x $MPI_SOURCE_DIR/configure \ --prefix=$MPI_ARCH_PATH \ + --libdir=$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \ --disable-orterun-prefix-by-default \ --enable-shared --disable-static \ - --libdir=$MPI_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH \ --enable-mpi-fortran=none \ --disable-mpi-profile \ $configOpt \ diff --git a/makeParaView b/makeParaView index 114da6a..4045767 100755 --- a/makeParaView +++ b/makeParaView @@ -33,11 +33,11 @@ # # Note the capitalization of ParaView in the directory names. # -# ------------------------------------------------ -# SOME USER-CONFIGURABLE SETTINGS WITHIN THIS FILE +# ---------------------------------------------- +# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ # Run from third-party directory only -cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +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 @@ -45,41 +45,24 @@ cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { . etc/tools/ThirdPartyFunctions . etc/tools/ParaViewFunctions #------------------------------------------------------------------------------ -# ParaView_VERSION from OpenFOAM etc/config.sh file -. $WM_PROJECT_DIR/etc/config.sh/functions -unset -f _foamAddPath _foamAddLib # get settings only -unset ParaView_VERSION # purge current values -_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/paraview) -: ${ParaView_VERSION##*-} -#------------------------------------------------------------------------------ -# -# USER DEFAULTS: -# ~~~~~~~~~~~~~~ +unset ParaView_VERSION # Purge current values -# MESA graphics support: -withMESA=false -MESA_INCLUDE="/usr/include/GL" -MESA_LIBRARY="/usr/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so" +# ParaView_VERSION from etc/config.sh file: +_foamEtc config.sh/paraview -# Python support: -# - The script will try to determine the appropriate python library. -# If that fails, specify the path using the PYTHON_LIBRARY variable below. -withPYTHON=false -PYTHON_LIBRARY="" -# PYTHON_LIBRARY="/usr/lib$WM_COMPILER_LIB_ARCH/libpython2.7.so.1.0" +ParaView_VERSION="${ParaView_VERSION##*-}" # Without prefix + +# Set initial ParaView_MAJOR based on current value of ParaView_VERSION +setParaViewVersion ${ParaView_VERSION:-none} # New rendering backend (starting with paraview 5.0). -# Default to auto-config based on paraview version -withGL2=auto +withGL2=auto # auto-config based on version -# -# NO FURTHER EDITING BELOW THIS LINE -# -#----------------------------------------------------------------------------- +#------------------------------------------------------------------------------ usage() { - : ${ParaView_VERSION:=none} # some dummy value for usage information exec 1>&2 + : ${ParaView_VERSION:=none} # some dummy value for usage information while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat</dev/null || { +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 @@ -40,9 +40,6 @@ cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { . etc/tools/ThirdPartyFunctions . etc/tools/QtFunctions #------------------------------------------------------------------------------ -qtTYPE=qt-everywhere-opensource-src -unset qtVERSION # No default version -#------------------------------------------------------------------------------ usage() { exec 1>&2 while [ "$#" -ge 1 ]; do echo "$1"; shift; done @@ -59,7 +56,7 @@ USAGE exit 1 } #------------------------------------------------------------------------------ -# Export WM settings in a form that GNU configure recognizes +# Compiler/linker settings for CMake/configure [ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CXX" ] && export CXX="$WM_CXX" [ -n "$WM_CFLAGS" ] && export CFLAGS="$WM_CFLAGS" @@ -69,13 +66,10 @@ USAGE while [ "$#" -gt 0 ] do case "$1" in - -h | -help) - usage - ;; - -gcc) - export CC=gcc # use gcc/g++ - export CXX=g++ - ;; + '') ;; # Ignore empty + -h | -help) usage ;; + -gcc) useGcc ;; + -qt-[1-9]* | [1-9]* | qt-*) # -qt-VERSION, VERSION, qt-VERSION, qt-everywhere-opensource-src-VERSION qtVERSION="${1%%/}"; @@ -145,6 +139,7 @@ else buildDIR=$buildBASE/$qtPACKAGE cd $QT_SOURCE_DIR || exit 1 + export GIT_DIR=$PWD/.git # Mask seeing our own git-repo [ -e Makefile ] && make distclean 2>/dev/null # Remove any existing build folder and recreate diff --git a/makeTecio b/makeTecio index 3628803..21a8076 100755 --- a/makeTecio +++ b/makeTecio @@ -32,7 +32,7 @@ # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ # Run from third-party directory only -cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +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 @@ -44,15 +44,14 @@ cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { } . etc/tools/ThirdPartyFunctions #------------------------------------------------------------------------------ -# Boost version (headers only) from OpenFOAM etc/config.sh file -. $WM_PROJECT_DIR/etc/config.sh/functions -unset -f _foamAddPath _foamAddLib _foamAddMan # get settings only -_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/CGAL) +# Boost version (headers only) from OpenFOAM etc/config.sh file: +_foamEtc config.sh/CGAL boostPACKAGE=${boost_version:-boost-system} tecioPACKAGE=tecio targetType=lib + #------------------------------------------------------------------------------ usage() { @@ -66,7 +65,6 @@ options: -gcc Force gcc/g++ instead of the values from \$WM_CC, \$WM_CXX -help - * Compile the proprietary libtecio library $tecioPACKAGE with $boostPACKAGE @@ -75,7 +73,7 @@ USAGE exit 1 } #------------------------------------------------------------------------------ -# Ensure CMake gets the correct C/C++ compiler +# Compiler settings for CMake/configure [ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CXX" ] && export CXX="$WM_CXX" @@ -83,13 +81,10 @@ USAGE while [ "$#" -gt 0 ] do case "$1" in - -h | -help) - usage - ;; - -gcc) - export CC=gcc # use gcc/g++ - export CXX=g++ - ;; + '') ;; # Ignore empty + -h | -help) usage ;; + -gcc) useGcc ;; + -cmake) [ "$#" -ge 2 ] || die "'$1' option requires an argument" CMAKE_PATH="${2%%/}" @@ -108,15 +103,23 @@ do shift done -# assert: directory must be available -[ -d "$tecioPACKAGE" ] || die "missing source directory '$tecioPACKAGE'" - - #------------------------------------------------------------------------------ +# Build TECIO library # +# TECIO_SOURCE_DIR : location of the original sources +# TECIO_BUILD_DIR : location of the build +# TECIO_ARCH_PATH : location of the installed program + +TECIO_SOURCE_DIR=$sourceBASE/$tecioPACKAGE/teciosrc +TECIO_BUILD_DIR=$buildBASE/$tecioPACKAGE +TECIO_ARCH_PATH=$installBASE/$tecioPACKAGE + +# Sources must be available +[ -d "$TECIO_SOURCE_DIR" ] || die "Missing sources '$tecioPACKAGE'" + + # Get Boost information # - only headers are required - : ${BOOST_ARCH_PATH:=$installBASE/$boostPACKAGE} # Fallback boostInc="$BOOST_ARCH_PATH/include" @@ -135,27 +138,17 @@ then fi -# Build TECIO library -# -# TECIO_SOURCE_DIR : location of the original sources -# TECIO_BINARY_DIR : location of the build -# TECIO_ARCH_PATH : location of the installed program - -TECIO_SOURCE_DIR=$sourceBASE/$tecioPACKAGE/teciosrc -TECIO_BINARY_DIR=$buildBASE/$tecioPACKAGE -TECIO_ARCH_PATH=$installBASE/$tecioPACKAGE - if [ -d "$TECIO_SOURCE_DIR" ] then ( # Remove any existing build folder and recreate - if [ -d $TECIO_BINARY_DIR ] + if [ -d $TECIO_BUILD_DIR ] then echo "removing old build directory" - echo " $TECIO_BINARY_DIR" - rm -rf $TECIO_BINARY_DIR + echo " $TECIO_BUILD_DIR" + rm -rf $TECIO_BUILD_DIR fi - mkdir -p $TECIO_BINARY_DIR + mkdir -p $TECIO_BUILD_DIR rm -rf $TECIO_ARCH_PATH @@ -163,7 +156,7 @@ then echo "----" echo "Configuring $tecioPACKAGE with boost $BOOST_VERSION" echo " Source : $TECIO_SOURCE_DIR" - echo " Build : $TECIO_BINARY_DIR" + echo " Build : $TECIO_BUILD_DIR" echo " Target : $TECIO_ARCH_PATH" if [ -d "$BOOST_ARCH_PATH" ] @@ -177,9 +170,9 @@ then echo "----" set -x - cd $TECIO_BINARY_DIR && $cmake \ + cd $TECIO_BUILD_DIR && $cmake \ -DCMAKE_INSTALL_PREFIX=$TECIO_ARCH_PATH \ - -DCMAKE_BINARY_TYPE=Release \ + -DCMAKE_BUILD_TYPE=Release \ -DBoost_INCLUDE_DIR=$boostInc \ $TECIO_SOURCE_DIR \ && make -j $WM_NCOMPPROCS \ @@ -189,7 +182,7 @@ then mkdir -p $TECIO_ARCH_PATH 2>/dev/null /bin/cp -pv \ - $TECIO_BINARY_DIR/libtecio.a \ + $TECIO_BUILD_DIR/libtecio.a \ $TECIO_SOURCE_DIR/TECIO.h \ $TECIO_SOURCE_DIR/tecio_Exports.h \ $TECIO_ARCH_PATH diff --git a/makeVTK b/makeVTK index 39f1ffe..65aea19 100755 --- a/makeVTK +++ b/makeVTK @@ -33,13 +33,13 @@ # To use the VTK source from the ParaView source tree, simply make an # appropriate link first. For example, # -# (cd $WM_THIRD_PARTY_DIR && ln -s ParaView-v5.2.0/VTK VTK-7.1.0) +# ln -s ParaView-v5.3.0/VTK VTK-7.1.0 # -# ------------------------------------------------ -# SOME USER-CONFIGURABLE SETTINGS WITHIN THIS FILE +# ---------------------------------------------- +# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ # Run from third-party directory only -cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +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 @@ -48,31 +48,18 @@ cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { . etc/tools/ParaViewFunctions . etc/tools/vtkFunctions #------------------------------------------------------------------------------ -# VTK version from OpenFOAM etc/config.sh file -. $WM_PROJECT_DIR/etc/config.sh/functions -unset -f _foamAddPath _foamAddLib # get settings only -unset vtk_version mesa_version # purge current values -_foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/vtk) +unset vtk_version mesa_version # Purge current values + +# vtk version from OpenFOAM etc/config.sh file: +_foamEtc config.sh/vtk + VTK_VERSION=$vtk_version -#------------------------------------------------------------------------------ -# -# USER DEFAULTS: -# ~~~~~~~~~~~~~~ - -# MESA graphics support: -withMESA=false -MESA_INCLUDE="/usr/include/GL" -MESA_LIBRARY="/usr/lib$WM_COMPILER_LIB_ARCH/libOSMesa.so" # New rendering backend (starting with vtk 7?). -# Default to auto-config based on VTK version -withGL2=auto +withGL2=auto # auto-config based on version -# -# NO FURTHER EDITING BELOW THIS LINE -# -#----------------------------------------------------------------------------- +#------------------------------------------------------------------------------ usage() { exec 1>&2 while [ "$#" -ge 1 ]; do echo "$1"; shift; done @@ -82,17 +69,17 @@ usage: ${0##*/} [OPTION] [vtk-VERSION] [CMAKE-OPTION] options: -gcc force g++ instead of the value from \$WM_CXX -rebuild for repeated builds (-make -install) *use with caution* - -gl2 with new rendering backend (if not already enabled) + -gl2 with new rendering backend (default: auto) -mesa with mesa (if not already enabled) -mesa-prefix DIR location of mesa installation - -mesa-include DIR location of mesa headers (current value: ${MESA_INCLUDE:-none}) - -mesa-lib PATH path to mesa library (current value: ${MESA_LIBRARY:-none}) + -mesa-include DIR location of mesa headers (current: ${MESA_INCLUDE:-none}) + -mesa-lib PATH path to mesa library (current: ${MESA_LIBRARY:-none}) -osmesa with off-screen mesa only - -mpi with mpi (if not already enabled) + -mpi with mpi -mpi=N with max 'N' mpi processes. N=0 for no upper-limit. -cmake PATH with cmake from the path given -verbose verbose output in Makefiles - -version VER specify an alternative version (current value: $VTK_VERSION) + -version VER specify an alternative version (current: $VTK_VERSION) -buildType NAME specify the build type (default: Release) -suffix NAME specify a suffix to distinguish the build -help @@ -120,13 +107,11 @@ USAGE exit 1 } #------------------------------------------------------------------------------ -# Ensure CMake gets the correct C/C++ compiler +# Compiler settings for CMake/configure [ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CXX" ] && export CXX="$WM_CXX" -# # Various building stages -# unset runPATCH runCONFIG runMAKE runINSTALL runDEFAULT=true @@ -134,19 +119,16 @@ runDEFAULT=true while [ "$#" -gt 0 ] do case "$1" in - -h | -help) - usage - ;; + '') ;; # Ignore empty + -h | -help) usage ;; + -gcc) useGcc ;; + [0-9]* | vtk-[0-9]* | VTK-[0-9]*) # VTK version setVtkVersion "${1%%/}" ;; [A-Z]*=*) # cmake variables addCMakeVariable "$1" ;; - -gcc) - export CC=gcc # use gcc/g++ - export CXX=g++ - ;; -patch) # stage 0: patch sources runPATCH=true unset runDEFAULT @@ -316,7 +298,7 @@ Features selected mpi ${withMPI:-false} --------------------- Version information - version ${VTK_VERSION:-unknown} + vtk ${VTK_VERSION:-unknown} build ${BUILD_TYPE:-unknown} --------------------- SUMMARY diff --git a/minCmake b/minCmake index 921811e..66693fe 100755 --- a/minCmake +++ b/minCmake @@ -32,7 +32,7 @@ # NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE #------------------------------------------------------------------------------ # Run from third-party directory only -cd ${0%/*} && wmakeCheckPwd -q "$WM_THIRD_PARTY_DIR" 2>/dev/null || { +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 @@ -82,7 +82,7 @@ do min=$(sed -n \ -e 's/^.*cmake_minimum.*VERSION *\([0-9.][0-9.]*\).*/\1/p' \ "$dir/CMakeLists.txt" \ - 2>/dev/null) + 2>/dev/null | head -1) if [ -n "$min" ] then