summaryrefslogtreecommitdiff
path: root/lib/make/known-architectures
diff options
context:
space:
mode:
authortradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac>2008-12-08 12:29:40 +0000
committertradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac>2008-12-08 12:29:40 +0000
commit7f9059691119315cf7354bafddcc647a8075c0f2 (patch)
tree95384d676f7b95c704c8361e5084d6d2e9967236 /lib/make/known-architectures
parentdd3d0935adcc837ee1145a86d16252ef1671d3f4 (diff)
Add new configuration option OPENMP to enable/disable OpenMP support.
This option is accompanied by the option set {C,CXX,F77,F90}_OPENMP_FLAGS through which users can overwrite the default OpenMP options set in the known-architectures file. git-svn-id: http://svn.cactuscode.org/flesh/trunk@4513 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'lib/make/known-architectures')
-rw-r--r--lib/make/known-architectures/aix8
-rw-r--r--lib/make/known-architectures/linux37
2 files changed, 41 insertions, 4 deletions
diff --git a/lib/make/known-architectures/aix b/lib/make/known-architectures/aix
index 515d6270..ed4f7a09 100644
--- a/lib/make/known-architectures/aix
+++ b/lib/make/known-architectures/aix
@@ -92,6 +92,7 @@ else
: ${C_DEPEND_OUT=' > /dev/null ; mv $(basename $(basename $@)).u $@'}
: ${CFLAGS="-q$AIX_BITS -qlanglvl=stdc99"}
: ${C_OPTIMISE_FLAGS="-O3 -qarch=auto -qtune=auto -qcache=auto -qhot"}
+ : ${C_OPENMP_FLAGS='-qsmp=omp'}
CC_VERSION=`$CC -qversion 2>&1 | head -n1`
;;
*)
@@ -108,6 +109,7 @@ else
: ${CXX_DEPEND_OUT=' > /dev/null ; mv $(basename $(basename $@)).u $@'}
: ${CXXFLAGS="-q$AIX_BITS"}
: ${CXX_OPTIMISE_FLAGS="-O3 -qarch=auto -qtune=auto -qcache=auto -qhot"}
+ : ${CXX_OPENMP_FLAGS='-qsmp=omp'}
CXX_VERSION=`$CXX -qversion 2>&1 |head -n1`
;;
*)
@@ -115,9 +117,10 @@ else
esac
case "$F90" in
- xlf|xlf_r|xlf90|xlf90_r)
+ xlf|xlf_r|xlf90|xlf90_r|xlf95|xlf95_r)
: ${F90FLAGS="-q$AIX_BITS"}
: ${F90_OPTIMISE_FLAGS="-O3 -qarch=auto -qtune=auto -qcache=auto -qhot"}
+ : ${F90_OPENMP_FLAGS='-qsmp=omp'}
;;
*)
: ${F90_OPTIMISE_FLAGS="-O3"}
@@ -125,9 +128,10 @@ else
esac
case "$F77" in
- xlf|xlf_r|xlf77|xlf77_r|xlf90|xlf90_r)
+ xlf|xlf_r|xlf77|xlf77_r|xlf90|xlf90_r|xlf95|xlf95_r)
: ${FF77LAGS="-q$AIX_BITS"}
: ${F77_OPTIMISE_FLAGS="-O3 -qarch=auto -qtune=auto -qcache=auto -qhot"}
+ : ${F77_OPENMP_FLAGS='-qsmp=omp'}
;;
*)
: ${F77_OPTIMISE_FLAGS="-O3"}
diff --git a/lib/make/known-architectures/linux b/lib/make/known-architectures/linux
index 0a94bf31..ac371291 100644
--- a/lib/make/known-architectures/linux
+++ b/lib/make/known-architectures/linux
@@ -145,8 +145,19 @@ else
: ${LIBS='gfortran'}
: ${LIBDIRS="$gnu95_libdir"}
fi
- F77_VERSION="`$F77 -dumpversion 2>&1 | grep -i version | head -n1`"
- F90_VERSION="`$F90 -dumpversion 2>&1 | grep -i version | head -n1`"
+ F77_VERSION="`$F77 -dumpversion 2>&1 | head -n1`"
+ F90_VERSION="`$F90 -dumpversion 2>&1 | head -n1`"
+ # only gfortran versions 4.1 and higher support OpenMP
+ major_version=`echo $F77_VERSION | cut -f5 -d' ' | cut -f1 -d'.'`
+ minor_version=`echo $F77_VERSION | cut -f5 -d' ' | cut -f2 -d'.'`
+ if test ! \( $major_version -lt 4 -o \( $major_version = 4 -a $minor_version -lt 1 \) \) ; then
+ : ${F77_OPENMP_FLAGS='-fopenmp'}
+ fi
+ major_version=`echo $F90_VERSION | cut -f5 -d' ' | cut -f1 -d'.'`
+ minor_version=`echo $F90_VERSION | cut -f5 -d' ' | cut -f2 -d'.'`
+ if test ! \( $major_version -lt 4 -o \( $major_version = 4 -a $minor_version -lt 1 \) \) ; then
+ : ${F90_OPENMP_FLAGS='-fopenmp'}
+ fi
;;
pacific)
if test "$LINUX_G77_USES_LIBG2C" = 'yes' ; then
@@ -264,6 +275,9 @@ else
: ${F90FLAGS='-align -w95'}
fi
+ : ${F77_OPENMP_FLAGS='-openmp'}
+ : ${F90_OPENMP_FLAGS='-openmp'}
+
intel_dir="$(dirname $(dirname $(which $F90)))"
case "$host_cpu" in
@@ -314,6 +328,8 @@ else
PathScale)
: ${F77FLAGS='-fno-second-underscore'}
: ${F90FLAGS='-fno-second-underscore'}
+ : ${F77_OPENMP_FLAGS='-openmp'}
+ : ${F90_OPENMP_FLAGS='-openmp'}
: ${F77_OPTIMISE_FLAGS='-Ofast'}
: ${F90_OPTIMISE_FLAGS='-Ofast'}
if test "$OPTIMISE" != 'no'; then
@@ -346,6 +362,12 @@ else
: ${CFLAGS='-pipe -std=gnu99'}
: ${C_OPTIMISE_FLAGS='-O3'}
CC_VERSION="`$CC -v 2>&1 | grep -i version | head -n1`"
+ major_version=`echo $CC_VERSION | cut -f3 -d' ' | cut -f1 -d'.'`
+ minor_version=`echo $CC_VERSION | cut -f3 -d' ' | cut -f2 -d'.'`
+ # only GCC versions 4.1 and higher support OpenMP
+ if test ! \( $major_version -lt 4 -o \( $major_version = 4 -a $minor_version -lt 1 \) \) ; then
+ : ${C_OPENMP_FLAGS='-fopenmp'}
+ fi
;;
# Intel
[ei]cc)
@@ -369,6 +391,7 @@ else
fi
: ${C_WARN_FLAGS="$c_warn_flags"}
CC_VERSION="`$CC -V 2>&1 | grep -i version | head -n1`"
+ : ${C_OPENMP_FLAGS='-openmp'}
;;
sgicc)
: ${C_OPTIMISE_FLAGS='-O3'}
@@ -384,6 +407,7 @@ else
: ${CFLAGS='-std=gnu99'}
: ${C_OPTIMISE_FLAGS='-Ofast'}
CC_VERSION="`$CC -v 2>&1 | grep -i version | head -n1`"
+ : ${C_OPENMP_FLAGS='-openmp'}
;;
esac
@@ -393,6 +417,12 @@ else
: ${CXXFLAGS='-pipe'}
: ${CXX_OPTIMISE_FLAGS='-O3'}
CXX_VERSION="`$CXX -v 2>&1 | grep -i version | head -n1`"
+ major_version=`echo $CXX_VERSION | cut -f3 -d' ' | cut -f1 -d'.'`
+ minor_version=`echo $CXX_VERSION | cut -f3 -d' ' | cut -f2 -d'.'`
+ # only GCC versions 4.1 and higher support OpenMP
+ if test ! \( $major_version -lt 4 -o \( $major_version = 4 -a $minor_version -lt 1 \) \) ; then
+ : ${CXX_OPENMP_FLAGS='-fopenmp'}
+ fi
;;
# Intel
[ei]cc | [ei]cpc)
@@ -423,6 +453,7 @@ else
: ${CXX_WARN_FLAGS="$cxx_warn_flags"}
: ${CXX_DEPEND='$(CXX) -M $(CPPFLAGS)'}
CXX_VERSION="`$CXX -V 2>&1 | grep -i version | head -n1`"
+ : ${CXX_OPENMP_FLAGS='-openmp'}
;;
sgiCC)
: ${CXX_OPTIMISE_FLAGS='-O3'}
@@ -437,10 +468,12 @@ else
: ${LDFLAGS='-Wl,--allow-multiple-definition'}
fi
CXX_VERSION="`$CXX -V 2>&1 | grep pgCC | head -n1`"
+ : ${CXX_OPENMP_FLAGS='-mp'}
;;
pathCC)
: ${CXX_OPTIMISE_FLAGS='-Ofast'}
CXX_VERSION="`$CXX -v 2>&1 | grep -i version | head -n1`"
+ : ${CXX_OPENMP_FLAGS='-openmp'}
;;
esac