diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/dec-flags | 62 | ||||
-rw-r--r-- | config/dec-osf4.x | 45 | ||||
-rw-r--r-- | config/freebsd | 15 | ||||
-rw-r--r-- | config/gnu-flags | 149 | ||||
-rw-r--r-- | config/linux-gnu | 3 | ||||
-rw-r--r-- | config/linux-gnulibc1 | 66 | ||||
-rw-r--r-- | config/linux-gnulibc2 | 70 |
7 files changed, 241 insertions, 169 deletions
diff --git a/config/dec-flags b/config/dec-flags new file mode 100644 index 0000000..edb6695 --- /dev/null +++ b/config/dec-flags @@ -0,0 +1,62 @@ +# -*- shell-script -*- +# +# This file should be sourced into configure if the compiler is a DEC +# compiler. It is careful not to do anything if the compiler is not +# DEC; otherwise `cc_flags_set' is set to `yes' +# + +# Get the compiler version unless it's already known. +# +# cc_vendor: The compiler vendor: DEC +# cc_version: Version number, like: V5.2-038 +# +if test X = "X$cc_flags_set"; then + cc_vendor=DEC + cc_version="`$CC $CFLAGS -V 2>&1 |head -1 |\ + sed 's/.*DEC C \(V[0-9][-\.0-9]*\).*/\1/'`" + if test X != "$gcc_version"; then + echo "compiler '$CC' is $cc_vendor-$cc_version" + else + cc_vendor= + fi +fi + +# Warn about old compilers that don't work right. +case "$cc_vendor-$cc_version" in + DEC-V5.2-038) + cat <<EOF + ** + ** This compiler may generate incorrect code when optimizations are + ** enabled. Please upgrade to at newer version (we're not sure which + ** version actually works) before reporting bugs to the HDF5 team. + ** +EOF + sleep 5 + ;; +esac + +# Compiler flags +case "$cc_vendor-$cc_version" in + DEC-V5.*) + # Production + PROD_CFLAGS="-g0 -verbose -warnprotos -std -O4 $ARCH -ansi_args -fp_reorder -readonly_strings -inline speed" + PROD_CPPFLAGS="-D_INTRINSICS -D_INLINE_INTRINSICS" + + # Debug + DEBUG_CFLAGS="-g -std -verbose -warnprotos" + DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" + + # Profile + PROFILE_CFLAGS="-pg -std -verbose -warnprotos" + PROFILE_CPPFLAGS= + + # Flags are set + cc_flags_set=yes + ;; +esac + +# If no flags were set then clear the compiler vendor and version info. +if test X = "X$cc_flags_set"; then + cc_vendor= + cc_version= +fi diff --git a/config/dec-osf4.x b/config/dec-osf4.x index 474e717..c16f212 100644 --- a/config/dec-osf4.x +++ b/config/dec-osf4.x @@ -6,50 +6,15 @@ # # See BlankForm in this directory for detailed information. - - # The default compiler is `cc' if test "X-" = "X-$CC"; then CC=cc CC_BASENAME=cc fi -# Compiler flags -case "X-$CC_BASENAME" in - X-gcc) - CFLAGS="$CFLAGS -Wsign-compare" #Only works for some versions - DEBUG_CFLAGS="-g -fverbose-asm" - DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" - PROD_CFLAGS="-O3" - PROD_CPPFLAGS= - PROFILE_CFLAGS="-pg" - PROFILE_CPPFLAGS= - ;; - - *) - # Watch out for some versions of the compiler - case "`($CC -V |head -1) 2>/dev/null`" in - "DEC C V5.2-038 "*) - echo " +------------------------------------------------+" - echo " | You have an old version of cc. Please upgrade. |" - echo " | Continuing anyway, but code generation might be|" - echo " | incorrect, especially if optimizations are |" - echo " | enabled (look for -O) |" - echo " +------------------------------------------------+" - sleep 5 - ;; - esac - - # Debugging - DEBUG_CFLAGS="-g -std -verbose -warnprotos" - DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" - - # Production - PROD_CFLAGS="-g0 -verbose -warnprotos -std -O4 -arch host -tune host -ansi_args -fp_reorder -readonly_strings -inline speed" - PROD_CPPFLAGS="-D_INTRINSICS -D_INLINE_INTRINSICS" +# Architecture dependent flags +ARCH=${ARCH:='-arch host -tune host'} - # Profiling - PROFILE_CFLAGS="-pg -std -verbose -warnprotos" - PROFILE_CPPFLAGS= - ;; -esac +# Try compiler flags. +. ./config/gnu-flags +. ./config/dec-flags diff --git a/config/freebsd b/config/freebsd index 96d918e..4d9d221 100644 --- a/config/freebsd +++ b/config/freebsd @@ -5,4 +5,17 @@ # # See BlankForm in this directory for details. -. config/linux-gnulibc1 +# The default compiler is `gcc' +if test "X-" = "X-$CC"; then + CC=gcc + CC_BASENAME=gcc +fi + +# Architecture-specific flags +ARCH= + +# Omit frame pointer for optimized code? +NOFP=${NOFP:=-fomit-frame-pointer} + +# Figure out compiler flags +. ./config/gnu-flags diff --git a/config/gnu-flags b/config/gnu-flags new file mode 100644 index 0000000..83c0ed7 --- /dev/null +++ b/config/gnu-flags @@ -0,0 +1,149 @@ +# -*- shell-script -*- +# +# This file should be sourced into configure if the compiler is the +# GNU gcc compiler or a derivative. It is careful not to do anything +# if the compiler is not GNU; otherwise `cc_flags_set' is set to `yes' +# + +# Get the compiler version in a way that works for gcc, egcs, and +# pgcc unless a compiler version is already known +# +# cc_vendor: The compiler name: gcc, egcs, or pgcc +# cc_version: Version number: 2.91.60, 2.7.2.1 +# +if test X = "X$cc_flags_set"; then + cc_version="`$CC $CFLAGS -v 2>&1 |grep 'gcc version' |\ + sed 's/.*gcc version \([-a-z0-9\.]*\).*/\1/'`" + cc_vendor=`echo $cc_version |sed 's/\([a-z]*\).*/\1/'` + cc_version=`echo $cc_version |sed 's/[-a-z]//g'` + if test X = "X$cc_vendor" -a X != "X$cc_version"; then + cc_vendor=gcc + fi + if test "-" != "$cc_vendor-$cc_version"; then + echo "compiler '$CC' is GNU $cc_vendor-$cc_version" + fi +fi + +# Warn about old GNU compilers that don't work right. +case "$cc_vendor-$cc_version" in + gcc-2.7.*) + cat <<EOF + ** + ** This compiler may be unable to properly compile the long long + ** data type used extensively by hdf5, although specifying + ** --disable-hsizet for configure may work around those bugs. + ** There may be other code generation problems also, especially + ** when optimizations are enabled. Please upgrade to at least GNU + ** gcc version 2.8.1 before reporting bugs to the HDF5 team. + ** +EOF + sleep 5 + ;; + + pgcc-2.*) + v2=`echo $cc_version |cut -f2 -d.` + v3=`echo $cc_version |cut -f3 -d.` + v=`expr $v2 '*' 1000 + $v3` + if test $v -lt 91060; then + cat <<EOF + ** + ** This compiler may have problems allocating registers for long + ** long data types when optimizations are enabled. There may be + ** other code generation problems as well. Please upgrade to at + ** least pgcc-2.91.60 (egcs-1.1.1) before reporting bugs to the + ** HDF5 team. + ** +EOF + sleep 5 + fi + ;; +esac + +# Compiler flags +case "$cc_vendor-$cc_version" in + gcc-2.7*) + # General + CFLAGS="$CFLAGS -ansi" + + # Production + PROC_CFLAGS="-O3 $NOFP -finline-functions -Wno-shadow" + PROD_CPPFLAGS= + + # Debug + DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow" + DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" + + # Profile + PROFILE_CFLAGS=-pg + PROFILE_CPPFLAGS= + + # Flags are set + cc_flags_set=yes + ;; + + gcc-2.8.*) + # General + CFLAGS="$CFLAGS -Wsign-compare" + + # Production + PROD_CFLAGS="$ARCH -O3 $NOFP -finline-functions -fschedule-insns2 -Wno-shadow" + PROD_CPPFLAGS= + + # Debug + DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow" + DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" + + # Profile + PROFILE_CFLAGS=-pg + PROFILE_CPPFLAGS= + + # Flags are set + cc_flags_set=yes + ;; + + egcs-2.*|pgcc-2.*) + # General + CFLAGS="$CFLAGS -Wsign-compare" + + # Production + PROD_CFLAGS="$ARCH -O6 $NOFP -Wno-shadow" + PROD_CPPFLAGS= + + # Debug + DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow" + DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" + + # Profile + PROFILE_CFLAGS=-pg + PROFILE_CPPFLAGS= + + # Flags are set + cc_flags_set=yes + ;; + + gcc-*|egcs-*|pgcc-*) + # This must be some other GNU compiler that we don't know about. + # Just use fairly generic flags. + + # Production + PROD_CFLAGS=-O + PROD_CPPFLAGS= + + # Debug + DEBUG_CFLAGS=-g + DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" + + # Profile + PROFILE_CFLAGS=-pg + PROFILE_CPPFLAGS= + + # Flags are set + cc_flags_set=yes + ;; +esac + +# Clear cc info if no flags set +if test X = "X$cc_flags_set"; then + cc_vendor= + cc_version= +fi
\ No newline at end of file diff --git a/config/linux-gnu b/config/linux-gnu index 8a57bd5..99335aa 100644 --- a/config/linux-gnu +++ b/config/linux-gnu @@ -1 +1,4 @@ +# -*- shell-script -*- +# This is the same as linux-gnulibc1 + . config/linux-gnulibc1 diff --git a/config/linux-gnulibc1 b/config/linux-gnulibc1 index f314915..83389b0 100644 --- a/config/linux-gnulibc1 +++ b/config/linux-gnulibc1 @@ -12,65 +12,11 @@ if test "X-" = "X-$CC"; then CC_BASENAME=gcc fi -ARCH="-mcpu=pentiumpro -march=pentiumpro -malign-double" -NOFP="-fomit-frame-pointer" -#HDF4_FLAGS="-D__i386" +# Architecture-specific flags +ARCH=${ARCH:="-mcpu=pentiumpro -march=pentiumpro -malign-double"} -# Compiler flags. We use `-v' to get the version number because it almost -# always works on Linux systems. -case `$CC -v 2>&1 |grep 'gcc version' |sed 's/.*gcc version //'` in - 2.7.*) - echo " +------------------------------------------------+" - echo " | You have an old version of gcc. Please upgrade |" - echo " | to 2.8.1 or better. Continuing anyway, but |" - echo " | code generation may be wrong on some platforms.|" - echo " +------------------------------------------------+" - sleep 5 - CFLAGS="$CFLAGS -ansi" - PROD_CFLAGS="-O3 $NOFP -finline-functions -Wno-shadow" - PROD_CPPFLAGS="$HDF4_FLAGS" - DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow" - DEBUG_CPPFLAGS="$HDF4_FLAGS -DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" - PROFILE_CFLAGS=-pg - PROFILE_CPPFLAGS= - ;; +# Omit frame pointer for optimized code? +NOFP=${NOFP:=-fomit-frame-pointer} - 2.8.*) - CFLAGS="$CFLAGS -Wsign-compare" - PROD_CFLAGS="$ARCH -O3 $NOFP -finline-functions -fschedule-insns2 -Wno-shadow" - PROD_CPPFLAGS="$HDF4_FLAGS" - DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow" - DEBUG_CPPFLAGS="$HDF4_FLAGS -DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" - PROFILE_CFLAGS=-pg - PROFILE_CPPFLAGS= - ;; - - egcs-*) - CFLAGS="$CFLAGS -Wsign-compare" - PROD_CFLAGS="$ARCH -O6 $NOFP -Wno-shadow" - PROD_CPPFLAGS="$HDF4_FLAGS" - DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow" - DEBUG_CPPFLAGS="$HDF4_FLAGS -DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" - PROFILE_CFLAGS=-pg - PROFILE_CPPFLAGS= - ;; - - pgcc-*) - CFLAGS="$CFLAGS -Wsign-compare" - PROD_CFLAGS="$ARCH -O6 $NOFP -Wno-shadow" - PROD_CPPFLAGS="$HDF4_FLAGS" - DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow" - DEBUG_CPPFLAGS="$HDF4_FLAGS -DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" - PROFILE_CFLAGS=-pg - PROFILE_CPPFLAGS= - ;; - - *) - PROD_CFLAGS=-O - PROD_CPPFLAGS="$HDF4_FLAGS" - DEBUG_CFLAGS="-g" - DEBUG_CPPFLAGS="$HDF4_FLAGS -DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" - PROFILE_CFLAGS=-pg - PROFILE_CPPFLAGS= - ;; -esac +# Figure out compiler flags +. ./config/gnu-flags diff --git a/config/linux-gnulibc2 b/config/linux-gnulibc2 index f314915..67bdfdd 100644 --- a/config/linux-gnulibc2 +++ b/config/linux-gnulibc2 @@ -6,71 +6,5 @@ # # See BlankForm in this directory for details. -# The default compiler is `gcc'. -if test "X-" = "X-$CC"; then - CC=gcc - CC_BASENAME=gcc -fi - -ARCH="-mcpu=pentiumpro -march=pentiumpro -malign-double" -NOFP="-fomit-frame-pointer" -#HDF4_FLAGS="-D__i386" - -# Compiler flags. We use `-v' to get the version number because it almost -# always works on Linux systems. -case `$CC -v 2>&1 |grep 'gcc version' |sed 's/.*gcc version //'` in - 2.7.*) - echo " +------------------------------------------------+" - echo " | You have an old version of gcc. Please upgrade |" - echo " | to 2.8.1 or better. Continuing anyway, but |" - echo " | code generation may be wrong on some platforms.|" - echo " +------------------------------------------------+" - sleep 5 - CFLAGS="$CFLAGS -ansi" - PROD_CFLAGS="-O3 $NOFP -finline-functions -Wno-shadow" - PROD_CPPFLAGS="$HDF4_FLAGS" - DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow" - DEBUG_CPPFLAGS="$HDF4_FLAGS -DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" - PROFILE_CFLAGS=-pg - PROFILE_CPPFLAGS= - ;; - - 2.8.*) - CFLAGS="$CFLAGS -Wsign-compare" - PROD_CFLAGS="$ARCH -O3 $NOFP -finline-functions -fschedule-insns2 -Wno-shadow" - PROD_CPPFLAGS="$HDF4_FLAGS" - DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow" - DEBUG_CPPFLAGS="$HDF4_FLAGS -DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" - PROFILE_CFLAGS=-pg - PROFILE_CPPFLAGS= - ;; - - egcs-*) - CFLAGS="$CFLAGS -Wsign-compare" - PROD_CFLAGS="$ARCH -O6 $NOFP -Wno-shadow" - PROD_CPPFLAGS="$HDF4_FLAGS" - DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow" - DEBUG_CPPFLAGS="$HDF4_FLAGS -DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" - PROFILE_CFLAGS=-pg - PROFILE_CPPFLAGS= - ;; - - pgcc-*) - CFLAGS="$CFLAGS -Wsign-compare" - PROD_CFLAGS="$ARCH -O6 $NOFP -Wno-shadow" - PROD_CPPFLAGS="$HDF4_FLAGS" - DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow" - DEBUG_CPPFLAGS="$HDF4_FLAGS -DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" - PROFILE_CFLAGS=-pg - PROFILE_CPPFLAGS= - ;; - - *) - PROD_CFLAGS=-O - PROD_CPPFLAGS="$HDF4_FLAGS" - DEBUG_CFLAGS="-g" - DEBUG_CPPFLAGS="$HDF4_FLAGS -DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" - PROFILE_CFLAGS=-pg - PROFILE_CPPFLAGS= - ;; -esac +# Same as with gnulibc1 for now +. ./config/linux-gnulibc1 |