diff --git a/etc/tools/ThirdPartyFunctions b/etc/tools/ThirdPartyFunctions index 4e468ed..df5a22e 100644 --- a/etc/tools/ThirdPartyFunctions +++ b/etc/tools/ThirdPartyFunctions @@ -20,9 +20,12 @@ #------------------------------------------------------------------------------ # The normal locations for source, build and installation (prefix-dir) -sourceBASE=$WM_THIRD_PARTY_DIR -buildBASE=$WM_THIRD_PARTY_DIR/build/$WM_ARCH$WM_COMPILER -installBASE=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER +sourceBASE="$WM_THIRD_PARTY_DIR" +buildBASE="$WM_THIRD_PARTY_DIR/build/$WM_ARCH$WM_COMPILER" +installBASE="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER" + +# Synthetic value combining precision and label size (Eg, DPInt32) +WM_SIZE_OPTIONS="${WM_PRECISION_OPTION}Int${WM_LABEL_SIZE}" # Dynamic library endings (default is .so) [ "$(uname -s)" = Darwin ] && SO=dylib || SO=so @@ -116,29 +119,32 @@ whichMpicxx() echo "${mpicxx:-mpicxx}" } -# The presence of wmkdep etc required for building with wmake +# Require wmkdepend etc when building with wmake requireWMakeToolchain() { - local dir="${WM_DIR:-$WM_PROJECT_DIR/wmake}" - local src="$dir/src" - local bin="$dir/platforms/$WM_ARCH$WM_COMPILER/wmkdep" + local wmDir="${WM_DIR:-$WM_PROJECT_DIR/wmake}" + local archDir="$wmDir/platforms/$WM_ARCH$WM_COMPILER" - test -x $bin || { - echo "Warning: the 'wmkdep' binary is missing - attempting to build it" - ( cd $src && make -s ) - } + if [ -x "$archDir/wmkdepend" ] || [ -x "$archDir/wmkdep" ] + then + echo "Appear to have {wmkdepend,wmkdep} binary" 1>&2 + else + echo "Warning: appear to be missing {wmkdepend,wmkdep} binary ... building" 1>&2 + ( cd "$wmDir/src" && make -s ) - test -x $bin || { - exec 1>&2 - echo - echo "Error: cannot use wmake build for '${0##*/}" - echo " The 'wmkdep' binary is missing" - echo " Please run the top-level OpenFOAM Allwmake first" - echo - exit 1 - } + [ -x "$archDir/wmkdepend" ] || [ -x "$archDir/wmkdep" ] || { + exec 1>&2 + echo + echo "Error: cannot use wmake build for '${0##*/}" + echo " Missing {wmkdepend,wmkdep} binary" + echo " Please try run the top-level OpenFOAM Allwmake first" + echo + exit 1 + } + fi } + #------------------------------------------------------------------------------ # Some functions as per OpenFOAM etc/config.sh/functions @@ -189,9 +195,7 @@ setBuildSuffix() # unset WM_HOSTS WM_SCHEDULER -WM_NCOMPPROCS=$(egrep -c "^processor" /proc/cpuinfo 2>/dev/null) || \ -WM_NCOMPPROCS=$(getconf _NPROCESSORS_ONLN 2>/dev/null) || \ -WM_NCOMPPROCS=1 +WM_NCOMPPROCS=$(getconf _NPROCESSORS_ONLN 2>/dev/null) || WM_NCOMPPROCS=1 : ${WM_NCOMPPROCS:=1} export WM_NCOMPPROCS diff --git a/makeHYPRE b/makeHYPRE index b8f3dcc..c125cb2 100755 --- a/makeHYPRE +++ b/makeHYPRE @@ -130,7 +130,7 @@ fi # HYPRE_SOURCE_DIR : location of the original sources HYPRE_SOURCE_DIR=$sourceBASE/$hyprePACKAGE -: ${HYPRE_ARCH_PATH:=$installBASE$WM_PRECISION_OPTION$WM_LABEL_OPTION/$hyprePACKAGE} +: ${HYPRE_ARCH_PATH:=$installBASE$WM_SIZE_OPTIONS/$hyprePACKAGE} [ -d "$HYPRE_SOURCE_DIR" ] || { echo "Missing sources: '$hyprePACKAGE'" diff --git a/makeMETIS b/makeMETIS index 0011ead..103a8f6 100755 --- a/makeMETIS +++ b/makeMETIS @@ -130,7 +130,7 @@ fi # METIS_SOURCE_DIR : location of the original sources METIS_SOURCE_DIR=$sourceBASE/$metisPACKAGE -: ${METIS_ARCH_PATH:=$installBASE$WM_PRECISION_OPTION$WM_LABEL_OPTION/$metisPACKAGE} +: ${METIS_ARCH_PATH:=$installBASE$WM_SIZE_OPTIONS/$metisPACKAGE} [ -d "$METIS_SOURCE_DIR" ] || { echo "Missing sources: '$metisPACKAGE'" diff --git a/makeMGridGen b/makeMGridGen index 711fce6..bb048cc 100755 --- a/makeMGridGen +++ b/makeMGridGen @@ -96,7 +96,7 @@ fi # MGRIDGEN_ARCH_PATH : installation directory MGRIDGEN_SOURCE_DIR=$WM_THIRD_PARTY_DIR/$mgridgenPACKAGE -MGRIDGEN_ARCH_PATH=$installBASE$WM_PRECISION_OPTION$WM_LABEL_OPTION/$mgridgenPACKAGE +MGRIDGEN_ARCH_PATH=$installBASE$WM_SIZE_OPTIONS/$mgridgenPACKAGE : ${FOAM_MPI:=dummy} diff --git a/makePETSC b/makePETSC index 6b86ec0..e362cd8 100755 --- a/makePETSC +++ b/makePETSC @@ -130,7 +130,7 @@ fi # PETSC_SOURCE_DIR : location of the original sources PETSC_SOURCE_DIR=$sourceBASE/$petscPACKAGE -: ${PETSC_ARCH_PATH:=$installBASE$WM_PRECISION_OPTION$WM_LABEL_OPTION/$petscPACKAGE} +: ${PETSC_ARCH_PATH:=$installBASE$WM_SIZE_OPTIONS/$petscPACKAGE} [ -d "$PETSC_SOURCE_DIR" ] || { echo "Missing sources: '$petscPACKAGE'" @@ -141,8 +141,8 @@ PETSC_SOURCE_DIR=$sourceBASE/$petscPACKAGE echo "Starting build: $petscPACKAGE ($targetType)" echo ( - # PETSC arch - archOpt="${WM_PRECISION_OPTION}Int$WM_LABEL_SIZE" + # PETSC arch - same root as WM_OPTIONS (eg, DPInt32) + archOpt="$WM_SIZE_OPTIONS" # Configuration options: configOpt="--with-cc=$(whichMpicc) --with-cxx=$(whichMpicxx)" @@ -181,9 +181,9 @@ echo --download-f2cblaslapack=1 \ $configOpt \ && echo "Configured: petsc" \ - && make PETSC_DIR=$PETSC_SOURCE_DIR PETSC_ARCH=$archOpt all \ + && make PETSC_DIR=$PETSC_SOURCE_DIR PETSC_ARCH="$archOpt" all \ && echo "Built: petsc" \ - && make PETSC_DIR=$PETSC_SOURCE_DIR PETSC_ARCH=$archOpt install + && make PETSC_DIR=$PETSC_SOURCE_DIR PETSC_ARCH="$archOpt" install && echo "Installed: petsc" ) || { echo "Error building: petsc"