summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/dec-flags62
-rw-r--r--config/dec-osf4.x45
-rw-r--r--config/freebsd15
-rw-r--r--config/gnu-flags149
-rw-r--r--config/linux-gnu3
-rw-r--r--config/linux-gnulibc166
-rw-r--r--config/linux-gnulibc270
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