# -*- shell-script -*- # # 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. # Use Intel C compiler by default (if it's available). if test "X$CC" = "X" && which icc > /dev/null; then CC=icc CC_BASENAME=icc fi #---------------------------------------------------------------------------- # Compiler flags. The CPPFLAGS values should not include package debug # flags like `-DH5G_DEBUG' since these are added with the # `--enable-debug' switch of configure. case $CC_BASENAME in ecc|icc) . $srcdir/config/intel-flags ;; gcc) . $srcdir/config/gnu-flags ;; *) CFLAGS="$CFLAGS -ansi" DEBUG_CFLAGS="-g" DEBUG_CPPFLAGS= PROD_CFLAGS="-O" PROD_CPPFLAGS= PROFILE_CFLAGS="-pg" PROFILE_CPPFLAGS= ;; esac # The default Fortran 90 compiler # # HDF5 integers # # R_LARGE is the number of digits for the bigest integer supported. # R_INTEGER is the number of digits in INTEGER # # (for the Linux architechture) # R_LARGE=18 R_INTEGER=9 # Use Intel Fortran compiler by default. if test "X-$FC" = "X-"; then FC="ifort" fi case $FC in *efc|*ifort) # this is for efc v7. Older efc do not work with these. # -Vaxlib is for non-standard fortran calls like exit(). MORE_FCFLAGS='-fpp -DDEC$=DEC_ -DMS$=MS_ -Vaxlib' FCFLAGS="$FCFLAGS $MORE_FCFLAGS" HADDR_T='SELECTED_INT_KIND(R_LARGE)' HSIZE_T='SELECTED_INT_KIND(R_LARGE)' HSSIZE_T='SELECTED_INT_KIND(R_LARGE)' HID_T='SELECTED_INT_KIND(R_INTEGER)' SIZE_T='SELECTED_INT_KIND(R_LARGE)' OBJECT_NAMELEN_DEFAULT_F=-1 f9x_flags_set=yes ;; *) HADDR_T='SELECTED_INT_KIND(R_LARGE)' HSIZE_T='SELECTED_INT_KIND(R_LARGE)' HSSIZE_T='SELECTED_INT_KIND(R_LARGE)' HID_T='SELECTED_INT_KIND(R_INTEGER)' SIZE_T='SELECTED_INT_KIND(R_LARGE)' OBJECT_NAMELEN_DEFAULT_F=-1 f9x_flags_set=yes ;; esac # The following is not right and need work. if test "X$f9x_flags_set" = "X"; then F9XSUFFIXFLAG="" FSEARCH_DIRS="" FCFLAGS="$FCFLAGS" DEBUG_FCFLAGS="" PROD_FCFLAGS="" PROFILE_FCFLAGS="" f9x_flags_set=yes fi # The Default settings for C++ # Intel changed C++ compiler's name from "icc" to "icpc" in version 8.1 if test -z "$CXX"; then CXX=icpc CXX_BASENAME=icpc fi # A patch to make g++ getting the default settings. # CXX_BASENAME should have been set in configure. if test "X$CXX" = "Xg++"; then CXX_BASENAME=g++ fi case $CXX_BASENAME in ecc|icc) # Intel compilers # Default to C99 standard. CXXFLAGS="${CXXFLAGS:--std=c99}" DEBUG_CXXFLAGS="-g -w2 -Wall" DEBUG_CPPFLAGS= PROD_CXXFLAGS="" #Default optimization O2 is used PROD_CPPFLAGS= PROFILE_CXXFLAGS="-pg" PROFILE_CPPFLAGS= ;; g++) CXXFLAGS="$CXXFLAGS -Wsign-compare" #Only works for some versions DEBUG_CXXFLAGS="-g -fverbose-asm" DEBUG_CPPFLAGS= PROD_CXXFLAGS="-O3 -fomit-frame-pointer" PROD_CPPFLAGS= PROFILE_CXXFLAGS="-pg" PROFILE_CPPFLAGS= ;; *) # Default to C99 standard. CXXFLAGS="${CXXFLAGS:--std=c99}" DEBUG_CXXFLAGS="-g" DEBUG_CPPFLAGS= PROD_CXXFLAGS="-O" PROD_CPPFLAGS= PROFILE_CXXFLAGS="-pg" PROFILE_CPPFLAGS= ;; esac