diff options
Diffstat (limited to 'config/solaris')
| -rw-r--r-- | config/solaris | 216 |
1 files changed, 216 insertions, 0 deletions
diff --git a/config/solaris b/config/solaris new file mode 100644 index 0000000..e99a2bc --- /dev/null +++ b/config/solaris @@ -0,0 +1,216 @@ +# -*- shell-script -*- +# +# Copyright by The HDF Group. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the COPYING file, which can be found at the root of the source code +# distribution tree, or in https://www.hdfgroup.org/licenses. +# If you do not have access to either file, you may request a copy from +# help@hdfgroup.org. + + +# This file is part of the HDF5 build script. It is processed shortly +# after configure starts and defines, among other things, flags for +# the various compile modes. +# +# See BlankForm in this directory for details + +# The default compiler is `sunpro cc' +if test "X-" = "X-$CC"; then + CC=cc + CC_BASENAME=cc +fi + +# Try gcc compiler flags +. $srcdir/config/gnu-flags + +# Try solaris native compiler flags +if test "X-" = "X-$cc_flags_set"; then + # HDF5 must be built with a C99 compiler on Solaris + # -erroff=%none turns on all warnings + H5_CFLAGS="$H5_CFLAGS -xc99=all -erroff=%none" + + # Production + # NDEBUG is handled explicitly by the configure script + PROD_CFLAGS= + + # Debug + # NDEBUG is handled explicitly by the configure script + # -g is handled by the symbols flags + DEBUG_CFLAGS= + + # Symbols + # -g produces output for dbx, NOT gdb. You can use "gdb on" from + # inside gdb to use gdb commands if you need to debug. + # If you want a LOT of debugging information (at the expense of + # really slow code), try using -g3. That will even let you debug + # into macros. + # -s strips symbols, as in gcc + NO_SYMBOLS_CFLAGS="-s" + SYMBOLS_CFLAGS="-g" + + # Profile + # This produces profiling output for gprof. If you want to use + # the Solaris profiler, use -xprofile instead. + PROFILE_CFLAGS="-xpg" + + # Optimization + # -O has switched to -xO{1|2|3|4|5}. -xO3 is probably a good compromise + # for the daily tests, but you might want to switch to -xO2 or lower + # if you are actively debugging. + HIGH_OPT_CFLAGS="-xO5" + DEBUG_OPT_CFLAGS="-xO3" + NO_OPT_CFLAGS= + + cc_flags_set=yes + # Special linking flag is needed to build with Fortran on Solaris 5.9 + system_version="`uname -r`" + case "$system_version" in + 5.9*) + # Need the xopenmp flag to build the Fortran library + if test X-$enable_fortran = X-yes; then + AM_LDFLAGS="$AM_LDFLAGS -xopenmp=stubs" + fi + ;; + esac + +fi + +LIBS="$LIBS" + +# The default Fortran 90 compiler + +if test "X-" = "X-$FC"; then + FC=f90 +fi + +if test "X-" = "X-$f9x_flags_set"; then + F9XSUFFIXFLAG="" + FSEARCH_DIRS="" + + H5_FCFLAGS="$H5_FCFLAGS" + + # TODO: Revisit these flags. + + # Production + # NDEBUG is handled explicitly by the configure script + PROD_FCFLAGS= + + # Debug + # NDEBUG is handled explicitly by the configure script + # -g is handled by the symbols flags + DEBUG_FCFLAGS= + + # Symbols + NO_SYMBOLS_FCFLAGS= + SYMBOLS_FCFLAGS="-g" + + # Profile + PROFILE_FCFLAGS= + + # Optimization + # -g produces rather slow code. "-g -O" produces much faster code with some + # loss of debugger functions such as not able to print local variables. + HIGH_OPT_FCFLAGS="-O2" + DEBUG_OPT_FCFLAGS="-O" + NO_OPT_FCFLAGS= + + f9x_flags_set=yes +fi + +# The default C++ compiler + +# The default compiler is `sunpro cc' +if test -z "$CXX"; then + CXX=CC + CXX_BASENAME=CC +fi + +# Try gcc compiler flags +#. $srcdir/config/gnu-flags + +cxx_version="`$CXX -V 2>&1 |grep 'WorkShop' |\ + sed 's/.*WorkShop.*C++ \([0-9\.]*\).*/\1/'`" + +cxx_vers_major=`echo $cxx_version | cut -f1 -d.` +cxx_vers_minor=`echo $cxx_version | cut -f2 -d.` +cxx_vers_patch=`echo $cxx_version | cut -f3 -d.` + +# Specify the "-features=tmplife" if the compiler can handle this... +if test -n "$cxx_version"; then + if test $cxx_vers_major -ge 5 -a $cxx_vers_minor -ge 3 -o $cxx_vers_major -gt 5; then + H5_CXXFLAGS="$H5_CXXFLAGS -features=tmplife" + fi +fi + +# Try solaris native compiler flags +if test -z "$cxx_flags_set"; then + H5_CXXFLAGS="$H5_CXXFLAGS -instances=static" + H5_CPPFLAGS="$H5_CPPFLAGS -LANG:std" + + # Production + # NDEBUG is handled explicitly by the configure script + PROD_CXXFLAGS= + + # Debug + # NDEBUG is handled explicitly by the configure script + # -g is handled by the symbols flags + DEBUG_CXXFLAGS= + + # Symbols + NO_SYMBOLS_CXXFLAGS="-s" + SYMBOLS_CXXFLAGS="-g" + + # Profile + PROFILE_CXXFLAGS="-xpg" + + # Optimization + # -g produces rather slow code. "-g -O" produces much faster code with some + # loss of debugger functions such as not able to print local variables. + HIGH_OPT_CXXFLAGS="-O" + DEBUG_OPT_CXXFLAGS="-O" + NO_OPT_CXXFLAGS= + + cxx_flags_set=yes +fi + +# compiler version strings +case $CC in + *cc*) + cc_version_info=`$CC $CFLAGS $H5_CFLAGS -V 2>&1 | grep 'Sun' |\ + sed 's/.*\(Sun .*\)/\1 /'` + ;; + + *) + echo "No match to get cc_version_info for $CC" + ;; +esac +echo "C compiler '$CC' is $cc_version_info" + +case $FC in + # The PGI and Intel compilers are automatically detected below + *f90*) + fc_version_info=`$FC $FCFLAGS $H5_FCFLAGS -V 2>&1 | grep 'Sun' |\ + sed 's/.*\(Sun .*\)/\1 /'` + ;; + + *) + echo "No match to get fc_version_info for $FC" + ;; +esac +echo "Fortran compiler '$FC' is $fc_version_info" + +# get c++ version info +case $CXX in + *CC*) + cxx_version_info=`$CXX $CXXFLAGS $H5_CXXFLAGS -V 2>&1 | grep 'Sun' |\ + sed 's/.*\(Sun .*\)/\1 /'` + ;; + + *) + echo "No match to get cxx_version_info for $CXX" + ;; +esac + |
