From e5afc7ea3fe2766acb40e80274cf311b5d1ac0e7 Mon Sep 17 00:00:00 2001 From: mark <mark@opencfd> Date: Tue, 4 Apr 2017 18:23:31 +0200 Subject: [PATCH] COMP: adjust to use non-gcc compilers for scotch and ptscotch --- Allwmake | 17 +++++++--- etc/tools/ThirdPartyFunctions | 25 ++++++++++++++ ...Makefile.inc.i686_pc_linux2.shlib-OpenFOAM | 33 ++++++++++++------- 3 files changed, 59 insertions(+), 16 deletions(-) diff --git a/Allwmake b/Allwmake index 8ca2948..8033250 100755 --- a/Allwmake +++ b/Allwmake @@ -38,7 +38,7 @@ cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || { exit 1 } [ -n "$FOAM_EXT_LIBBIN" ] || { - echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set" + echo "Error (${0##*/}) : \$FOAM_EXT_LIBBIN not set for ThirdParty" echo " Check your OpenFOAM environment and installation" exit 1 } @@ -51,6 +51,7 @@ cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || { [ -n "$WM_CXXFLAGS" ] && export CXXFLAGS="$WM_CXXFLAGS" [ -n "$WM_LDFLAGS" ] && export LDFLAGS="$WM_LDFLAGS" +useGccFlag $@ # Scan arguments for a '-gcc' option warnBuildIssues() { @@ -131,8 +132,11 @@ then mkdir -p $incDIR 2>/dev/null mkdir -p $libDIR 2>/dev/null - # 'CC' already set (eg, from WM_CC) - set scotch-specific 'CCS' too - [ -n "$CC" ] && export CCS="$CC" + # Scotch compilers + # CCS (serial compiler) default=$CC + # CCP (parallel compiler) default=mpicc + export CCS="${CC:-$WM_CC}" + export CCP=$(whichMpicc) if [ -f $scotchMakefile ] then @@ -196,8 +200,11 @@ then mkdir -p $incDIR 2>/dev/null mkdir -p $libDIR 2>/dev/null - # 'CC' already set (eg, from WM_CC) - set scotch-specific 'CCS' too - [ -n "$CC" ] && export CCS="$CC" + # Scotch compilers + # CCS (serial compiler) default=$CC + # CCP (parallel compiler) default=mpicc + export CCS="${CC:-$WM_CC}" + export CCP=$(whichMpicc) if [ -f $scotchMakefile ] then diff --git a/etc/tools/ThirdPartyFunctions b/etc/tools/ThirdPartyFunctions index 5c1258c..6c5c6a7 100644 --- a/etc/tools/ThirdPartyFunctions +++ b/etc/tools/ThirdPartyFunctions @@ -45,6 +45,31 @@ useGcc() export CXX=g++ } +# Scan arguments for a '-gcc' option, forcing gcc/g++ when found +useGccFlag() +{ + for i + do + if [ "$i" = "-gcc" ] + then + useGcc + break + fi + done +} + +# Return mpiicc (for INTELMPI) or mpicc etc. +whichMpicc() +{ + local mpicc + case "$WM_MPLIB" in + (INTELMPI) + mpicc=$(command -v mpiicc) # Try using intel 'mpiicc' + ;; + esac + echo "${mpicc:-mpicc}" # mpiicc | mpicc +} + #------------------------------------------------------------------------------ # Some functions as per OpenFOAM etc/config.sh/functions 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 8c83e09..c6f1bce 100644 --- a/etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM +++ b/etc/wmakeFiles/scotch/Makefile.inc.i686_pc_linux2.shlib-OpenFOAM @@ -1,21 +1,27 @@ -# openfoam notes: +#-------------------------------*- makefile -*--------------------------------- +# OpenFOAM notes: +# # WM_CFLAGS, WM_LDFLAGS contain "-m32 -fPIC" etc # WM_LABEL_SIZE == 64 for 'long' instead of 'int' for OpenFOAM labels - -# compiled without pthread +# +# - compiled without pthread +# +# Normally set CCS, CCP by caller EXE = LIB = .so OBJ = .o -MAKE = make -AR = gcc +AR = $(CC) ARFLAGS = $(WM_CFLAGS) -shared -o -CAT = cat -CCS = gcc -CCP = mpicc -CCD = mpicc -CFLAGS = $(WM_CFLAGS) -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -Drestrict=__restrict +CCS ?= $(CC) +CCP ?= mpicc +CCD = $(CCP) +CFLAGS = $(WM_CFLAGS) -O3 \ + -DCOMMON_FILE_COMPRESS_GZ \ + -DCOMMON_RANDOM_FIXED_SEED \ + -DSCOTCH_RENAME \ + -Drestrict=__restrict # 32-bit vs. 64-bit labels ifeq ($(WM_LABEL_SIZE),64) @@ -24,10 +30,15 @@ endif CLIBFLAGS = -shared LDFLAGS = -Xlinker --no-as-needed $(WM_LDFLAGS) -lz -lm -lrt + +MAKE = make CP = cp -LEX = flex -Pscotchyy -olex.yy.c +CAT = cat LN = ln MKDIR = mkdir MV = mv RANLIB = echo +LEX = flex -Pscotchyy -olex.yy.c YACC = bison -pscotchyy -y -b y + +#------------------------------------------------------------------------------ -- GitLab