diff options
author | Bill Wendling <wendling@ncsa.uiuc.edu> | 2000-09-19 20:06:49 (GMT) |
---|---|---|
committer | Bill Wendling <wendling@ncsa.uiuc.edu> | 2000-09-19 20:06:49 (GMT) |
commit | 8055378bcecfc77af85b2bb07e7904edc9492789 (patch) | |
tree | 01c100c34cd727b9dc15ae21c89b6e0dfa361303 /fortran/config | |
parent | 8272da0b67a9ef3a7299fd10cc5f3ccbf80cbeae (diff) | |
download | hdf5-8055378bcecfc77af85b2bb07e7904edc9492789.zip hdf5-8055378bcecfc77af85b2bb07e7904edc9492789.tar.gz hdf5-8055378bcecfc77af85b2bb07e7904edc9492789.tar.bz2 |
[svn-r2576] Purpose:
Adding the Fortran interface to the HDF5 library
Description:
Fortran is now a subdirectory of the HDF5 library tree.
Platforms tested:
Solaris and IRIX (O2K)
Diffstat (limited to 'fortran/config')
30 files changed, 1879 insertions, 0 deletions
diff --git a/fortran/config/BlankForm b/fortran/config/BlankForm new file mode 100644 index 0000000..83b6ef5 --- /dev/null +++ b/fortran/config/BlankForm @@ -0,0 +1,126 @@ +# -*- 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. + + +#---------------------------------------------------------------------------- +# 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. +#---------------------------------------------------------------------------- + + +# Choosing a C Compiler +# --------------------- +# +# The user should be able to specify the compiler by setting the CC +# environment variable to the name of the compiler and any switches it +# requires for proper operation. If CC is unset then this script may +# set it. If CC is unset by time this script completes then configure +# will try `gcc' and `cc' in that order (perhaps some others too). +# +# Note: Code later in this file may depend on the value of $CC_BASENAME +# in order to distinguish between different compilers when +# deciding which compiler command-line switches to use. This +# variable is set based on the incoming value of $CC and is only +# used within this file. + +if test "X-" = "X-$CC"; then + CC="/some/default/compiler/named/foo -ansi" + CC_BASENAME=foo +fi + + +# C Compiler and Preprocessor Flags +# --------------------------------- +# +# Flags that end with `_CFLAGS' are always passed to the compiler. +# Flags that end with `_CPPFLAGS' are passed to the compiler when +# compiling but not when linking. +# +# DEBUG_CFLAGS Flags to pass to the compiler to create a +# DEBUG_CPPFLAGS library suitable for use with debugging +# tools. Usually this list will exclude +# optimization switches (like `-O') and include +# switches that turn on symbolic debugging +# support (like `-g'). +# +# PROD_CFLAGS Flags to pass to the compiler to create a +# PROD_CPPFLAGS production version of the library. These +# usualy exclude symbolic debugging switches +# (like `-g') and include optimization switches +# (like `-O'). +# +# PROFILE_CFLAGS Flags to pass to the compiler to create a +# PROFILE_CPPFLAGS library suitable for performance testing (like +# `-pg'). This may or may not include debugging +# or production flags. +# +# CFLAGS Flags can be added to this variable which +# might already be partially initialized. These +# flags will always be passed to the compiler +# and should include switches to turn on full +# warnings. HDF5 attempts to be ANSI and Posix +# compliant and employ good programming +# practices resulting in few if any +# warnings. +# +# Warning flags do not have to be added to CFLAGS +# variable if the compiler is the GNU gcc +# compiler or a descendent of gcc such as EGCS or PGCC. +# +# The CFLAGS should contains *something* or else +# configure will probably add `-g'. For most +# systems this isn't a problem but some systems +# will disable optimizations in favor of the +# `-g'. +# +# +# These flags should be set according to the compiler being used. +# There are two ways to check the compiler. You can try using `-v' or +# `--version' to see if the compiler will print a version string. You +# can use the value of $CC_BASENAME which is the base name of the +# first word in $CC (note that the value of CC may have changed +# above). + +case $CC_BASENAME in + gcc) + CFLAGS="$CFLAGS -Wsign-compare" #Only works for some versions + DEBUG_CFLAGS="-g -fverbose-asm" + DEBUG_CPPFLAGS= + PROD_CFLAGS="-O3 -fomit-frame-pointer" + PROD_CPPFLAGS= + PROFILE_CFLAGS="-pg" + PROFILE_CPPFLAGS= + ;; + + *) + CFLAGS="$CFLAGS -ansi" + DEBUG_CFLAGS="-g" + DEBUG_CPPFLAGS= + PROD_CFLAGS="-O" + PROD_CPPFLAGS= + PROFILE_CFLAGS="-pg" + PROFILE_CPPFLAGS= + ;; +esac + + + +# Overriding Configure Tests +# -------------------------- +# +# Values for overriding configuration tests when cross compiling. +# This includes compiling on some machines where the serial front end +# compiles for a parallel back end. + +# Set this to `yes' or `no' depending on whether the target is big +# endian or little endian. +#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'} + +# Set this to the width required by printf() to print type `long +# long'. For instance, if the format would be `%lld' then set it to +# `ll' or if the format would be `%qd' set it to `q'. +#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'} diff --git a/fortran/config/commence.in b/fortran/config/commence.in new file mode 100644 index 0000000..879f27b --- /dev/null +++ b/fortran/config/commence.in @@ -0,0 +1,160 @@ +##------------------------------------------------------------ -*- makefile -*- +## The following section of this makefile comes from the +## `./config/commence' file which was generated with config.status +## from `./config/commence.in'. +##----------------------------------------------------------------------------- + +## Things that Make needs +.SUFFIXES: +.SUFFIXES: .c .f90 .o .lo +@SET_MAKE@ + +## Directories to search +@SEARCH@ + +## Programs +SHELL=/bin/sh +CC=@CC@ +F9X=@F9X@ +CFLAGS=@CFLAGS@ +CPPFLAGS=@CPPFLAGS@ +FFLAGS=@FFLAGS@ +LDFLAGS=@LDFLAGS@ +ROOT=@ROOT@ +LIBS=@LIBS@ +AR=@AR@ +RANLIB=@RANLIB@ +RM=rm -f +CP=cp +INSTALL=@INSTALL@ +INSTALL_PROGRAM=@INSTALL_PROGRAM@ +INSTALL_DATA=@INSTALL_DATA@ +PARALLEL=@PARALLEL@ +RUNSERIAL=@RUNSERIAL@ +RUNPARALLEL=@RUNPARALLEL@ +RUNTEST=$(RUNSERIAL) +TRACE=: + +## Installation points +prefix=@prefix@ +exec_prefix=@exec_prefix@ +bindir=@bindir@ +libdir=@libdir@ +includedir=@includedir@ +docdir=@exec_prefix@/doc +PUB_LIB=$(LIB) + +## Shared libraries +DYNAMIC_DIRS=@DYNAMIC_DIRS@ +LT=$(top_builddir)/libtool +LT_CCOMPILE=$(LT) --mode=compile $(CC) +LT_LINK_CLIB=$(LT) --mode=link $(CC) -rpath $(libdir) +LT_LINK_CEXE=$(LT) --mode=link $(CC) $(DYNAMIC_DIRS) -rpath $(bindir) +LT_RUN=$(LT) --mode=execute +LT_INSTALL_PROG=$(LT) --mode=install $(INSTALL_PROGRAM) +LT_INSTALL_LIB=$(LT) --mode=install $(INSTALL_DATA) +LT_UNINSTALL=$(LT) --mode=uninstall $(RM) + +# Fortran compilation/linking stuff +LT_FCOMPILE=$(LT) --mode=compile $(F9X) +LT_LINK_FLIB=$(LT) --mode=link $(F9X) -static $(DYNAMIC_DIRS) +LT_LINK_FEXE=$(LT) --mode=link $(F9X) -static $(DYNAMIC_DIRS) + +## Optional variables. We must declare them here because Irix pmake +## complains if it sees a reference to a variable which has never been +## defined. The main makefile is free to redefine these to something else. +DOCDIR=$(docdir) +LIB= +LIB_SRC= +LIB_OBJ= +PUB_HDR= +PUB_PROGS= +PROGS= +TEST_PROGS= +TEST_FLAGS= +TEST_SCRIPTS= + +## The default is to build the library and/or programs. We must build +## them sequentially. +all: + $(MAKE) lib + $(MAKE) progs + $(MAKE) tests + +## The following rules insure that the Makefile is up-to-date by rerunning +## various autoconf components (although not all versions of make assume +## that the makefile is implicitly a target). We use time stamp files to +## keep track of the most recent update of H5config.h.in and H5config.h +## because autoheader and config.status don't update the modification time +## if the contents don't change. +## Invoke it by "gmake reconfigure". +## +## Graphically, the dependencies are: +## +## configure.in +## | | +## +-----------------+ +------------+ +## | | +## stamp1 configure +## (H5config.h.in) | +## | | | +## | +---------------+ +-----------+ +## | | | +## | config.status +## | | +## | +------------------+ +## | | +## stamp2 +## (H5config.h) Makefile.in et al +## | | +## +------------------+ +-----------+ +## | | +## Makefile +## +## A side effect of updating stamp1 is to generate H5config.h.in and a +## side effect of updating stamp2 is to generate H5config.h. When using +## a version of make that doesn't treat the makefile as the initial target +## the user may want to occassionally type `make Makefile' in any source +## directory. +## The `Makefile' target has been renamed to `reconfigure' so that the +## autoconf and make depend processes do not start up automatically. +## One must do `make reconfigure' explicitedly to start the process. +## (When srcdir is used and if more than one machines are running, +## this automatic Makefile/autoconf can get things unstable.) +## +STAMP1=$(top_builddir)/config/stamp1 +STAMP2=$(top_builddir)/config/stamp2 + +MAKEFILE_PARTS=$(srcdir)/Makefile.in \ + $(top_srcdir)/config/commence.in \ + $(top_srcdir)/config/conclude.in \ + $(top_srcdir)/config/depend1.in \ + $(top_srcdir)/config/depend2.in \ + $(top_srcdir)/config/depend3.in \ + $(top_srcdir)/config/depend4.in \ + $(top_srcdir)/config/dependN.in + +$(STAMP1): $(top_srcdir)/configure.in + touch $(STAMP1) + -cd $(top_srcdir); autoheader + +$(STAMP2): $(STAMP1) $(top_builddir)/config.status + touch $(STAMP2) + -cd $(top_builddir); \ + CONFIG_FILES= CONFIG_HEADERS=src/H5config.h ./config.status + +$(top_srcdir)/configure: $(top_srcdir)/configure.in + -cd $(top_srcdir); autoconf + +$(top_builddir)/config.status: $(top_srcdir)/configure $(STAMP1) + -cd $(top_builddir); ./config.status --recheck + +# rerun the autoconf process if any configure components have changed. +reconfigure: $(MAKEFILE_PARTS) $(STAMP2) + -cd $(top_builddir); CONFIG_HEADERS= ./config.status + +##----------------------------------------------------------------------------- +## The following section of this makefile comes from the middle of +## `Makefile.in' from this directory. It was generated by running +## `config.status'. +##----------------------------------------------------------------------------- diff --git a/fortran/config/conclude.in b/fortran/config/conclude.in new file mode 100644 index 0000000..2f3c11e --- /dev/null +++ b/fortran/config/conclude.in @@ -0,0 +1,185 @@ +##------------------------------------------------------------ -*- makefile -*- +## The following section of this makefile comes from the +## `./config/conclude' file which was generated with config.status +## from `./config/conclude.in'. +##----------------------------------------------------------------------------- + +## This is the target for the library described in the main body of the +## makefile. +## +lib: $(LIB) +$(LIB) __no_library__: $(LIB_OBJ) + @$(LT_LINK_FLIB) -o $@ $(FFLAGS) $(LIB_OBJ) $(LDFLAGS) $(LIBS) + +progs: $(LIB) $(PROGS) + +## Build a tags file in this directory. +TAGS: $(LIB_SRC) + $(RM) $@ + -etags $(LIB_SRC) + +## Runs each test in order, passing $(TEST_FLAGS) to the program. +tests: $(TEST_PROGS) $(LIB) +check test _test: tests + @for test in $(TEST_PROGS) dummy; do \ + if test $$test != dummy; then \ + echo "============================"; \ + echo "Testing $$test $(TEST_FLAGS)"; \ + echo "============================"; \ + PATH=".:$$PATH" srcdir=$(srcdir) \ + $(RUNTEST) $$test $(TEST_FLAGS) || \ + exit 1; \ + echo ""; \ + fi; \ + done; + @for test in $(TEST_SCRIPTS) dummy; do \ + if test $$test != dummy; then \ + echo "============================"; \ + echo "Testing $$test $(TEST_FLAGS)"; \ + echo "============================"; \ + RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \ + srcdir=$(srcdir) \ + /bin/sh $$test $(TEST_FLAGS) || \ + exit 1; \ + echo ""; \ + fi; \ + done; + +## Make installation directories directories if they don't exist. +$(libdir): + mkdir $@ && chmod 755 $@ + +$(includedir): + mkdir $@ && chmod 755 $@ + +$(bindir): + mkdir $@ && chmod 755 $@ + +$(DOCDIR): + mkdir $@ && chmod 755 $@ + +## Install the library, the public header files, and public programs. +install: $(PUB_LIB) $(PUB_HDR) $(PUB_PROGS) $(libdir) $(includedir) $(bindir) + @for f in X $(PUB_LIB); do \ + if test $$f != X; then \ + ($(LT_INSTALL_LIB) $$f $(libdir)/. || exit 1); \ + fi; \ + done + @if test -f libhdf5.settings; then \ + (set -x; $(INSTALL_DATA) libhdf5.settings $(libdir)/. || exit 1); \ + fi + @for f in X $(PUB_HDR); do \ + if test $$f != X; then \ + if test -f $$f; then \ + (set -x; $(INSTALL_DATA) $$f $(includedir)/. || exit 1); \ + else \ + (set -x; $(INSTALL_DATA) $(srcdir)/$$f $(includedir)/. || \ + exit 1); \ + fi; \ + fi; \ + done + @for f in X $(PUB_PROGS); do \ + if test $$f != X; then \ + ($(LT_INSTALL_PROG) $$f $(bindir)/. || exit 1); \ + fi; \ + done + +## Install the documents. +install-doc: $(PUB_DOCS) $(DOCDIR) + @for d in X $(SUBDIRS); do \ + if test $$d != X; then \ + (set -x; cd $$d && $(MAKE) $@) || exit 1; \ + fi; \ + done + @for f in X $(PUB_DOCS); do \ + if test $$f != X; then \ + if test -f $$f; then \ + (set -x; $(INSTALL_DATA) $$f $(DOCDIR)/. || exit 1); \ + else \ + (set -x; $(INSTALL_DATA) $(srcdir)/$$f $(DOCDIR)/. || \ + exit 1); \ + fi; \ + fi; \ + done + +## Removes those things that `make install' (would have) installed. +uninstall: + @for f in libhdf5.settings $(LIB); do \ + $(LT_UNINSTALL) $(libdir)/$$f; \ + done + @if test "X$(PUB_HDR)" != X; then \ + set -x; cd $(includedir) && $(RM) $(PUB_HDR); \ + fi + @for f in X $(PUB_PROGS); do \ + if test $$f != X; then \ + $(LT_UNINSTALL) $(bindir)/$$f; \ + fi; \ + done + +## Removes those things that `make install-doc' (would have) installed. +uninstall-doc: + @for d in X $(SUBDIRS); do \ + if test $$d != X; then \ + (set -x; cd $$d && $(MAKE) $@) || exit 1; \ + fi; \ + done + @if test "X$(PUB_DOCS)" != X; then \ + set -x; cd $(DOCDIR) && $(RM) $(PUB_DOCS); \ + fi + +## Removes temporary files without removing the final target files. That is, +## remove things like object files but not libraries or executables. +## +mostlyclean: + -$(RM) $(LIB_OBJ) $(LIB_OBJ:.lo=.o) + -$(RM) $(TEST_OBJ) $(TEST_OBJ:.lo=.o) + -$(RM) $(PROG_OBJ) $(PROG_OBJ:.lo=.o) $(MOSTLYCLEAN) + +## Like `mostlyclean' except it also removes the final targets: things like +## libraries and executables. This target doesn't remove any file that +## is part of the HDF5 distribution. +## +clean: mostlyclean + -$(RM) $(LIB) $(TEST_PROGS) $(PROGS) $(CLEAN) + -$(RM) *.M *.a *.mod + -$(RM) -r .libs + +## Like `clean' except it also removes files that were created by running +## configure. If you've unpacked the source and built HDF5 without creating +## any other files, then `make distclean' will leave only the files that were +## in the distribution. +## +distclean: clean + -$(RM) .depend TAGS *~ core *.core *.bak *.old *.new $(DISTCLEAN) + @if test -f $(srcdir)/Makefile.in; then \ + (set -x; $(RM) Makefile); \ + fi + + +## Like `distclean' except it deletes all files that can be regenerated from +## the makefile, including those generated from autoheader and autoconf. +## +maintainer-clean: distclean + -$(RM) *~ core core.* *.core *.bak *.contrib gmon.out + +## Implicit rules +.c.o: + $(CC) $(CFLAGS) $(CPPFLAGS) -c $< + +.c.lo: + @$(LT_CCOMPILE) $(CFLAGS) $(CPPFLAGS) -c $< + +.f90.o: + $(F9X) $(FFLAGS) -c $< + +.f90.lo: + @$(LT_FCOMPILE) $(FFLAGS) -c $< + +##----------------------------------------------------------------------------- +## The following section of this makefile contains dependencies between the +## source files and the header files. +##----------------------------------------------------------------------------- +.PHONY: dep depend +dep depend: Dependencies + +@DEPEND@ diff --git a/fortran/config/dec-flags b/fortran/config/dec-flags new file mode 100644 index 0000000..c9a34b3 --- /dev/null +++ b/fortran/config/dec-flags @@ -0,0 +1,92 @@ +# -*- 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 a 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= + + # 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 + +# 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 Digital UNIX architechture) +# +R_LARGE=18 +R_INTEGER=9 +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 + +if test "X-" = "X-$F9X"; then + F9X=f90 +fi + +if test "X-" = "X-$f9x_flags_set"; then + FFLAGS="-Olimit 2048 -std1" + DEBUG_FFLAGS="-Olimit 2048 -std1" + PROD_FFLAGS="-Olimit 2048 -std1" + PROFILE_FFLAGS="-Olimit 2048 -std1" + f9x_flags_set=yes +fi diff --git a/fortran/config/dec-osf4.x b/fortran/config/dec-osf4.x new file mode 100644 index 0000000..bad4669 --- /dev/null +++ b/fortran/config/dec-osf4.x @@ -0,0 +1,20 @@ +# -*- 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. +# +# 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 + +# Try GNU compiler flags. +. $srcdir/config/gnu-flags + +# Try native DEC compiler +ARCH=${ARCH:='-arch host -tune host'} +. $srcdir/config/dec-flags diff --git a/fortran/config/depend b/fortran/config/depend new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/fortran/config/depend diff --git a/fortran/config/depend1.in b/fortran/config/depend1.in new file mode 100644 index 0000000..4a24846 --- /dev/null +++ b/fortran/config/depend1.in @@ -0,0 +1,60 @@ +## -*- makefile -*- + +## We keep a list of dependencies in `.depend' for each of the source +## files on which it depends. When one of the source files is modified +## we remove its record from .depend and regenerate its dependencies, +## tacking them onto the end of .depend. By including the .depend file +## into the makefile, we're telling make that the makefile depends on +## the dependency list in the .depend file. +## +## This is as fast as the `.d' method described in the GNU make manual +## for automatic dependencies, but has the added advantage that all +## dependencies are stored in one place. The advantage over the +## `makedepend' program is that only those files that are out of date +## have dependency information rebuilt, and the Makefile is not +## modified. +## +## This is also where tracing information is updated. The $(TRACE) +## program is run on each source file to make sure that the H5TRACE() +## macros are up to date. If they are then the file is not modified, +## otherwise the file is changed and a backup is saved by appending a +## tilde to the file name. +## +.PRECIOUS: Dependencies +Dependencies: .depend + @if test "$(srcdir)" != "."; then \ + echo '## This file is machine generated on GNU systems.' \ + >$@; \ + echo '## Only temporary changes may be made here.' \ + >>$@; \ + echo >>$@; \ + perl -p $(top_srcdir)/bin/distdep .depend >>$@; \ + fi + +.PRECIOUS: .depend +.depend: $(LIB_SRC) $(TEST_SRC) $(PROG_SRC) + @touch .depend + @for dep in $? dummy; do \ + if [ $$dep != "dummy" ]; then \ + echo Building dependencies for $$dep; \ + obj=`basename $$dep .c`.lo; \ + sed '\%^'"$$obj"':%,\%[^\\]$$%d' <$@ >$@- && mv $@- $@; \ + $(TRACE) $$dep; \ + $(CC) -M -MG $(CPPFLAGS) $$dep 2>/dev/null | \ + sed 's% $(srcdir)/% $$(srcdir)/%g' | \ + sed 's% $(top_srcdir)/% $$(top_srcdir)/%g' | \ + sed 's% $(top_builddir)/% $$(top_builddir)/%g' | \ + sed 's/\.o/.lo/' >>$@; \ + fi; \ + done; + @if test "$(srcdir)" != "."; then \ + echo '## This file is machine generated on GNU systems.' \ + >Dependencies; \ + echo '## Only temporary changes may be made here.' \ + >>Dependencies; \ + echo >>Dependencies; \ + perl -p $(top_srcdir)/bin/distdep .depend>>Dependencies;\ + fi + +-include .depend + diff --git a/fortran/config/depend2.in b/fortran/config/depend2.in new file mode 100644 index 0000000..ae49989 --- /dev/null +++ b/fortran/config/depend2.in @@ -0,0 +1,11 @@ +## -*- makefile -*- + +## This platform doesn't support automatic dependencies because we're +## not using GNU gcc. GNU gcc is needed in order to generate the list +## of header files included by a source file. + +## Since automatic dependencies are not being used, we attempt to include the +## `.distdep' file from the source tree. This file was automatically generated +## on some system that satisfies the above requirements. + +-include Dependencies diff --git a/fortran/config/depend3.in b/fortran/config/depend3.in new file mode 100644 index 0000000..26056d2 --- /dev/null +++ b/fortran/config/depend3.in @@ -0,0 +1,7 @@ +## -*- makefile -*- + +## Since automatic dependencies are not being used, we attempt to include the +## `.distdep' file from the source tree. This file was automatically generated +## on some system that satisfies the above requirements. + +.include <Dependencies> diff --git a/fortran/config/depend4.in b/fortran/config/depend4.in new file mode 100644 index 0000000..84e0f53 --- /dev/null +++ b/fortran/config/depend4.in @@ -0,0 +1,7 @@ +## -*- makefile -*- + +## Since automatic dependencies are not being used, we attempt to include the +## `.distdep' file from the source tree. This file was automatically generated +## on some system that satisfies the above requirements. + +include Dependencies diff --git a/fortran/config/dependN.in b/fortran/config/dependN.in new file mode 100644 index 0000000..7ece270 --- /dev/null +++ b/fortran/config/dependN.in @@ -0,0 +1,4 @@ +## -*- makefile -*- + +## Automatic dependencies are not being used and we cannot include other +## files. diff --git a/fortran/config/freebsd b/fortran/config/freebsd new file mode 100644 index 0000000..8608a85 --- /dev/null +++ b/fortran/config/freebsd @@ -0,0 +1,21 @@ +# -*- 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. +# +# See BlankForm in this directory for details. + +# 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 +. $srcdir/config/gnu-flags diff --git a/fortran/config/gnu-flags b/fortran/config/gnu-flags new file mode 100644 index 0000000..99c9419 --- /dev/null +++ b/fortran/config/gnu-flags @@ -0,0 +1,227 @@ +# -*- 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 + + # Some version numbers + cc_vers_major=`echo $cc_version | cut -f1 -d.` + cc_vers_minor=`echo $cc_version | cut -f2 -d.` + cc_vers_patch=`echo $cc_version | cut -f3 -d.` + test -n "$cc_vers_major" || cc_vers_major=0 + test -n "$cc_vers_minor" || cc_vers_minor=0 + test -n "$cc_vers_patch" || cc_vers_patch=0 + cc_vers_all=`expr $cc_vers_major '*' 1000000 + $cc_vers_minor '*' 1000 + $cc_vers_patch` +fi + +# GCC compilers before gcc-2.8.1 have problems with `long long'. +if test gcc = $cc_vendor -a $cc_vers_all -lt 2008001; then + 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 + +# Current EGCS compilers have problems with `long long' and register +# allocation when optimizations are turned on for x86 systems. +elif test egcs = $cc_vendor -a $cc_vers_all -le 2091066; then + cat <<EOF + ** + ** This compiler may have problems allocating registers when + ** optimizations are enabled on some platforms. Specifying + ** --disable-hsizet usually avoids the bug. + ** +EOF + sleep 5 + +# All current versions of PGCC have problems also. +elif test pgcc = $cc_vendor -a $cc_vers_all -le 2091066; 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. We know of no version + ** of pgcc which is capable of compiling HDF5 in production mode. + ** Please use gcc-2.8 or egcs-1.1.1 before reporting bugs. + ** +EOF + sleep 5 + +fi + +# Architecture-specific flags +case "$host_os-$host_cpu" in + # FreeBSD sets the information from "hostname -m" to the general machine + # architecture, not the specific CPU for the machine, so even our + # Pentium II Xeon server is set to "i386". Once we know we are on a FreeBSD + # machine, use the "sysctl" command to get the CPU hardware model. + freebsd*) + host_cpu_model=`sysctl -n hw.model` + case "$host_cpu_model" in + # Hmm.. this might not catch Celerons, but it won't hurt them either... + *Pro*|*II*) + # This check should be kept in sync with the *-i686 check below + case "$cc_vendor-$cc_version" in + gcc-2.95*) + ARCH=${ARCH:="-march=i686 -malign-double"} + ;; + gcc-*|egcs-*|pgcc-*) + ARCH=${ARCH:="-mcpu=pentiumpro -march=pentiumpro -malign-double"} + ;; + esac + ;; + esac + ;; + + *-i686) + case "$cc_vendor-$cc_version" in + gcc-2.95*) + ARCH=${ARCH:="-march=i686 -malign-double"} + ;; + gcc-*|egcs-*|pgcc-*) + ARCH=${ARCH:="-mcpu=pentiumpro -march=pentiumpro -malign-double"} + ;; + esac + ;; +esac + +# Host-specific flags +case "`hostname`" in + hawkwind.ncsa.uiuc.edu) + ARCH="$ARCH -pipe" + ;; +esac + +# Compiler flags +case "$cc_vendor-$cc_version" in + gcc-2.7*) + # General + CFLAGS="$CFLAGS $ARCH -ansi" + + # Production + PROC_CFLAGS="-O3 $NOFP -finline-functions -Wno-shadow" + PROD_CPPFLAGS= + + # Debug + DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow" + DEBUG_CPPFLAGS= + + # Profile + PROFILE_CFLAGS=-pg + PROFILE_CPPFLAGS= + + # Flags are set + cc_flags_set=yes + ;; + + gcc-2.8.*) + # General + CFLAGS="$CFLAGS $ARCH -Wsign-compare" + + # Production + PROD_CFLAGS="-O3 $NOFP -finline-functions -fschedule-insns2 -Wno-shadow" + PROD_CPPFLAGS= + + # Debug + DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow" + DEBUG_CPPFLAGS= + + # Profile + PROFILE_CFLAGS=-pg + PROFILE_CPPFLAGS= + + # Flags are set + cc_flags_set=yes + ;; + + gcc-2.95*) + # General + CFLAGS="$CFLAGS $ARCH -Wsign-compare" + + # Production + PROD_CFLAGS="-O6 $NOFP -Wno-shadow" + PROD_CPPFLAGS= + + # Debug + DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow" + DEBUG_CPPFLAGS= + + # Profile + PROFILE_CFLAGS=-pg + PROFILE_CPPFLAGS= + + # Flags are set + cc_flags_set=yes + ;; + + egcs-2.*|pgcc-2.*) + # General + CFLAGS="$CFLAGS $ARCH -Wsign-compare" + + # Production + PROD_CFLAGS="-O6 $NOFP -Wno-shadow" + PROD_CPPFLAGS= + + # Debug + DEBUG_CFLAGS="-g -fverbose-asm -Wno-shadow" + DEBUG_CPPFLAGS= + + # 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= + + # 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 diff --git a/fortran/config/hpux10.20 b/fortran/config/hpux10.20 new file mode 100644 index 0000000..0b39f3c --- /dev/null +++ b/fortran/config/hpux10.20 @@ -0,0 +1,36 @@ +# -*- 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. +# +# See BlankForm in this directory for details. + +# Default compiler is `cc' +if test "X-" = "X-$CC"; then + CC=cc + CC_BASENAME=cc +fi + +# Flags +case "X-$CC" in + X-gcc) + CFLAGS="$CFLAGS -Wsign-compare" #Only works for some versions + DEBUG_CFLAGS="-g -fverbose-asm" + DEBUG_CPPFLAGS= + PROD_CFLAGS="-O3" + PROD_CPPFLAGS= + PROFILE_CFLAGS="-pg" + PROFILE_CPPFLAGS= + ;; + + *) + CFLAGS="$CFLAGS -Ae" + DEBUG_CFLAGS=-g + DEBUG_CPPFLAGS="-Ae" + PROD_CFLAGS=-O + PROD_CPPFLAGS="-Ae" + PROFILE_CFLAGS= + PROFILE_CPPFLAGS="-Ae" + ;; +esac diff --git a/fortran/config/hpux11.00 b/fortran/config/hpux11.00 new file mode 100644 index 0000000..0b39f3c --- /dev/null +++ b/fortran/config/hpux11.00 @@ -0,0 +1,36 @@ +# -*- 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. +# +# See BlankForm in this directory for details. + +# Default compiler is `cc' +if test "X-" = "X-$CC"; then + CC=cc + CC_BASENAME=cc +fi + +# Flags +case "X-$CC" in + X-gcc) + CFLAGS="$CFLAGS -Wsign-compare" #Only works for some versions + DEBUG_CFLAGS="-g -fverbose-asm" + DEBUG_CPPFLAGS= + PROD_CFLAGS="-O3" + PROD_CPPFLAGS= + PROFILE_CFLAGS="-pg" + PROFILE_CPPFLAGS= + ;; + + *) + CFLAGS="$CFLAGS -Ae" + DEBUG_CFLAGS=-g + DEBUG_CPPFLAGS="-Ae" + PROD_CFLAGS=-O + PROD_CPPFLAGS="-Ae" + PROFILE_CFLAGS= + PROFILE_CPPFLAGS="-Ae" + ;; +esac diff --git a/fortran/config/hpux9.03 b/fortran/config/hpux9.03 new file mode 100644 index 0000000..abed0b3 --- /dev/null +++ b/fortran/config/hpux9.03 @@ -0,0 +1,36 @@ +# -*- 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. +# +# See BlankForm in this directory for details + +# Default compiler is `cc' +if test "X-" = "X-$CC"; then + CC=cc + CC_BASENAME=cc +fi + +# Flags +case "X-$CC" in + X-gcc) + CFLAGS="$CFLAGS -Wsign-compare" #Only works for some versions + DEBUG_CFLAGS="-g -fverbose-asm" + DEBUG_CPPFLAGS= + PROD_CFLAGS="-O3" + PROD_CPPFLAGS= + PROFILE_CFLAGS="-pg" + PROFILE_CPPFLAGS= + ;; + + *) + CFLAGS="$CFLAGS -Ae" + DEBUG_CFLAGS=-g + DEBUG_CPPFLAGS= + PROD_CFLAGS= + PROD_CPPFLAGS= + PROFILE_CFLAGS= + PROFILE_CPPFLAGS= + ;; +esac diff --git a/fortran/config/i386-pc-cygwin32 b/fortran/config/i386-pc-cygwin32 new file mode 100644 index 0000000..4054819 --- /dev/null +++ b/fortran/config/i386-pc-cygwin32 @@ -0,0 +1,20 @@ +# -*- 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. +# +# See BlankForm in this directory for details. + +# The default compiler is `gcc'. +if test "X-" = "X-$CC"; then + CC=gcc + CC_BASENAME=gcc + LD=ld +fi + +# Omit frame pointer for optimized code? +NOFP=${NOFP:=-fomit-frame-pointer} + +# Figure out compiler flags +. $srcdir/config/gnu-flags diff --git a/fortran/config/intel-osf1 b/fortran/config/intel-osf1 new file mode 100644 index 0000000..0b50c4f --- /dev/null +++ b/fortran/config/intel-osf1 @@ -0,0 +1,83 @@ +# -*- 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. +# +# See BlankForm in this directory for details. + +# This is for the ASCI RED TFLOPS machine + +# The default compiler is `cicc' +if test "X-" = "X-$CC"; then + CC=cicc + CC_BASENAME=cicc +fi + +# The default archiver is `xar' +AR=${AR:-xar} + +# There is no ranlib +RANLIB=: + +# Additional libraries +LDFLAGS="$LDFLAGS -lnoop_stubs" + +# How to run serial and parallel test programs +RUNSERIAL="yod -sz 1" +RUNPARALLEL="yod -sz 8" + +# What must *always* be present for things to compile correctly? +#CPPFLAGS="$CPPFLAGS -I." + +# What compiler flags should be used for code development? +DEBUG_CFLAGS=-g +DEBUG_CPPFLAGS= + +# What compiler flags should be used for building a production +# library? +PROD_CFLAGS=-O +PROD_CPPFLAGS= + +# What compiler flags enable code profiling? +PROFILE_CFLAGS=-pg +PROFILE_CPPFLAGS= + +# Turn off shared lib option. It does not work for TFLOPS yet. +enable_shared="${enable_shared:-no}" + +# Set this to the width required by printf() to print type `long +# long'. For instance, if the format would be `%lld' then set it to +# `ll' or if the format would be `%qd' set it to `q'. +hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'} + +# Hard set sizeof_intN_t to 0 because they are not supported. +ac_cv_sizeof_int8_t=${ac_cv_sizeof_int8_t='0'} +ac_cv_sizeof_int16_t=${ac_cv_sizeof_int16_t='0'} +ac_cv_sizeof_int32_t=${ac_cv_sizeof_int32_t='0'} +ac_cv_sizeof_int64_t=${ac_cv_sizeof_int64_t='0'} +ac_cv_sizeof_uint8_t=${ac_cv_sizeof_uint8_t='0'} +ac_cv_sizeof_uint16_t=${ac_cv_sizeof_uint16_t='0'} +ac_cv_sizeof_uint32_t=${ac_cv_sizeof_uint32_t='0'} +ac_cv_sizeof_uint64_t=${ac_cv_sizeof_uint64_t='0'} + +# Hard set sizeof_int_leastN_t to 0 because they are not supported. +ac_cv_sizeof_int_least8_t=${ac_cv_sizeof_int_least8_t='0'} +ac_cv_sizeof_int_least16_t=${ac_cv_sizeof_int_least16_t='0'} +ac_cv_sizeof_int_least32_t=${ac_cv_sizeof_int_least32_t='0'} +ac_cv_sizeof_int_least64_t=${ac_cv_sizeof_int_least64_t='0'} +ac_cv_sizeof_uint_least8_t=${ac_cv_sizeof_uint_least8_t='0'} +ac_cv_sizeof_uint_least16_t=${ac_cv_sizeof_uint_least16_t='0'} +ac_cv_sizeof_uint_least32_t=${ac_cv_sizeof_uint_least32_t='0'} +ac_cv_sizeof_uint_least64_t=${ac_cv_sizeof_uint_least64_t='0'} + +# Hard set sizeof_int_fastN_t to 0 because they are not supported. +ac_cv_sizeof_int_fast8_t=${ac_cv_sizeof_int_fast8_t='0'} +ac_cv_sizeof_int_fast16_t=${ac_cv_sizeof_int_fast16_t='0'} +ac_cv_sizeof_int_fast32_t=${ac_cv_sizeof_int_fast32_t='0'} +ac_cv_sizeof_int_fast64_t=${ac_cv_sizeof_int_fast64_t='0'} +ac_cv_sizeof_uint_fast8_t=${ac_cv_sizeof_uint_fast8_t='0'} +ac_cv_sizeof_uint_fast16_t=${ac_cv_sizeof_uint_fast16_t='0'} +ac_cv_sizeof_uint_fast32_t=${ac_cv_sizeof_uint_fast32_t='0'} +ac_cv_sizeof_uint_fast64_t=${ac_cv_sizeof_uint_fast64_t='0'} + diff --git a/fortran/config/irix5.x b/fortran/config/irix5.x new file mode 100644 index 0000000..bd757e1 --- /dev/null +++ b/fortran/config/irix5.x @@ -0,0 +1,50 @@ +# -*- 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. +# +# See BlankForm in this directory for details + +# The default compiler is `cc' and there is no ranlib. +if test "X-" = "X-$CC"; then + CC=cc + CC_BASENAME=cc +fi +RANLIB=: + +case "X-$CC_BASENAME" in + X-gcc) + CFLAGS="$CFLAGS -Wsign-compare" #Only works for some versions + DEBUG_CFLAGS="-g -fverbose-asm" + DEBUG_CPPFLAGS= + PROD_CFLAGS="-O3" + PROD_CPPFLAGS= + PROFILE_CFLAGS="-pg" + PROFILE_CPPFLAGS= + ;; + + *) + # Do *not* use -ansi because it prevents hdf5 from being able + # to read modification dates from the file. On some systems it + # can also result in compile errors in system header files + # since hdf5 includes a couple non-ANSI header files. + #CFLAGS="$CFLAGS -ansi" + + # Always turn off these compiler warnings: + CFLAGS="$CFLAGS -woff 799" + + # Extra debugging flags + DEBUG_CFLAGS=-g + DEBUG_CPPFLAGS= + + # Extra production flags + # Note: higher optimizations relax alignment requirements needed. + PROD_CFLAGS="-O -s" + PROD_CPPFLAGS= + + # Extra profiling flags + PROFILE_CFLAGS=-pg + PROFILE_CPPFLAGS= + ;; +esac diff --git a/fortran/config/irix6.x b/fortran/config/irix6.x new file mode 100644 index 0000000..62505a3 --- /dev/null +++ b/fortran/config/irix6.x @@ -0,0 +1,123 @@ +# -*- 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. +# +# See BlankForm in this directory for details. + +# Use SGI supplied C compiler by default. There is no ranlib +if test "X-" = "X-$CC"; then + CC='cc' + CC_BASENAME=cc +fi +RANLIB=: + +# 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= + PROD_CFLAGS="-O3" + PROD_CPPFLAGS= + PROFILE_CFLAGS="-pg" + PROFILE_CPPFLAGS= + ;; + + *) + # Check for old versions of the compiler that don't work right. + case "`$CC -version 2>&1 |head -1`" in + "Mongoose Compilers: Version 7.00") + echo " +---------------------------------------------------+" + echo " | You have an old version of cc (Mongoose Compilers |" + echo " | version 7.00). Please upgrade to MIPSpro version |" + echo " | 7.2.1.2m (patches are available from the SGI web |" + echo " | site). The 7.00 version may generate incorrect |" + echo " | code, especially when optimizations are enabled. |" + echo " +---------------------------------------------------+" + sleep 5 + ;; + esac + + # Do *not* use -ansi because it prevents hdf5 from being able + # to read modification dates from the file. On some systems it + # can also result in compile errors in system header files + # since hdf5 includes a couple non-ANSI header files. + #CFLAGS="$CFLAGS -ansi" + + # Always turn off these compiler warnings for the -64 compiler: + # 1174: function declared but not used + # 1196: __vfork() (this is an SGI config problem) + # 1209: constant expressions + # 1429: the `long long' type is not standard + # 1685: turn off warnings about turning off invalid warnings + # 3201: remark - parameter not referenced + CFLAGS="$CFLAGS -woff 1174,1429,1209,1196,1685,3201" + + # Always turn off these compiler warnings for the old compiler: + # 799: the `long long' type is not standard + # 803: turn off warnings about turning off invalid warnings + # 835: __vfork() (this is an SGI config problem) + CFLAGS="$CFLAGS -woff 799,803,835" + + # Always turn off these loader warnings: + # (notice the peculiar syntax) + # 47: branch instructions that degrade performance on R4000 + # 84: a library is not used + # 85: duplicate definition preemption (from -lnsl) + # 134: duplicate weak definition preemption (from -lnsl) + CFLAGS="$CFLAGS -Wl,-woff,47,-woff,84,-woff,85,-woff,134" + + # Extra debugging flags + DEBUG_CFLAGS="-g -fullwarn" + DEBUG_CPPFLAGS= + + # Extra production flags + PROD_CFLAGS="-64 -mips4 -O -s" + PROD_CPPFLAGS= + + # Extra profiling flags + PROFILE_CFLAGS=-pg + PROFILE_CPPFLAGS= + ;; +esac + +# Use SGI supplied C compiler by default. There is no ranlib +if test "X-" = "X-$F9X"; then + F9X="f90" + FFLAGS="-64 -mips4 -O -s" + DEBUG_FFLAGS="-64 -mips4 -O -s" + PROD_FFLAGS="-64 -mips4 -O -s" + PROFILE_FFLAGS="-64 -mips4 -O -s" +fi + +# 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 IRIX architechture) +# +R_LARGE=18 +R_INTEGER=9 +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 + +if test "X-" = "X-$F9X"; then + F9X=f90 +fi + +if test "X-" = "X-$f9x_flags_set"; then + FFLAGS="-64 -mips4 -O -s" + DEBUG_FFLAGS="-64 -mips4 -O -s" + PROD_FFLAGS="-64 -mips4 -O -s" + PROFILE_FFLAGS="-64 -mips4 -O -s" + f9x_flags_set=yes +fi diff --git a/fortran/config/linux-gnu b/fortran/config/linux-gnu new file mode 100644 index 0000000..d139966 --- /dev/null +++ b/fortran/config/linux-gnu @@ -0,0 +1,4 @@ +# -*- shell-script -*- +# This is the same as linux-gnulibc1 + +. $srcdir/config/linux-gnulibc1 diff --git a/fortran/config/linux-gnulibc1 b/fortran/config/linux-gnulibc1 new file mode 100644 index 0000000..6765b0b --- /dev/null +++ b/fortran/config/linux-gnulibc1 @@ -0,0 +1,49 @@ +# -*- 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. +# +# See BlankForm in this directory for details. + +# The default compiler is `gcc'. +if test "X-" = "X-$CC"; then + CC=gcc + CC_BASENAME=gcc +fi + +# Omit frame pointer for optimized code? +NOFP=${NOFP:=-fomit-frame-pointer} + +# Figure out compiler flags +. $srcdir/config/gnu-flags + +# 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 +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_INTEGER)' +OBJECT_NAMELEN_DEFAULT_F=-1 + +if test "X-" = "X-$F9X"; then + F9X=pgf90 +fi + +if test "X-" = "X-$f9x_flags_set"; then + FFLAGS= + DEBUG_FFLAGS= + PROD_FFLAGS= + PROFILE_FFLAGS= + f9x_flags_set=yes +fi diff --git a/fortran/config/linux-gnulibc2 b/fortran/config/linux-gnulibc2 new file mode 100644 index 0000000..4551fb6 --- /dev/null +++ b/fortran/config/linux-gnulibc2 @@ -0,0 +1,10 @@ +# -*- 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. +# +# See BlankForm in this directory for details. + +# Same as with gnulibc1 for now +. $srcdir/config/linux-gnulibc1 diff --git a/fortran/config/powerpc-ibm-aix4.2.1.0 b/fortran/config/powerpc-ibm-aix4.2.1.0 new file mode 100644 index 0000000..cab0d8b --- /dev/null +++ b/fortran/config/powerpc-ibm-aix4.2.1.0 @@ -0,0 +1,22 @@ +# -*- 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. +# +# See BlankForm in this directory for details. + +# Cross compiling defaults +hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'} +ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'} +ac_cv_header_stdc=${ac_cv_header_stdc='yes'} +ac_cv_sizeof_short=${ac_cv_sizeof_short=2} +ac_cv_sizeof_int=${ac_cv_sizeof_int=4} +ac_cv_sizeof_long=${ac_cv_sizeof_long=4} +ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long=8} +ac_cv_sizeof_float=${ac_cv_sizeof_float=4} +ac_cv_sizeof_double=${ac_cv_sizeof_double=8} +ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=8} +ac_cv_sizeof_int=${ac_cv_sizeof_int=4} +ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t=4} +ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t=8} diff --git a/fortran/config/powerpc-ibm-aix4.3.2.0 b/fortran/config/powerpc-ibm-aix4.3.2.0 new file mode 100644 index 0000000..db5eb05 --- /dev/null +++ b/fortran/config/powerpc-ibm-aix4.3.2.0 @@ -0,0 +1,63 @@ +# -*- 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. + + +#---------------------------------------------------------------------------- +# 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. + +# What must *always* be present for things to compile correctly? +#CFLAGS="$CFLAGS -ansi" +#CPPFLAGS="$CPPFLAGS -I." + +# What compiler flags should be used for code development? +DEBUG_CFLAGS= +DEBUG_CPPFLAGS= + +# What compiler flags should be used for building a production +# library? +PROD_CFLAGS= +PROD_CPPFLAGS= + +# What compiler flags enable code profiling? +PROFILE_CFLAGS= +PROFILE_CPPFLAGS= + + +#---------------------------------------------------------------------------- +# Values for overriding configuration tests when cross compiling. +# This includes compiling on some machines where the serial front end +# compiles for a parallel back end. + +# Set this to `yes' or `no' depending on whether the target is big +# endian or little endian. +hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'} +ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'} +ac_cv_header_stdc=${ac_cv_header_stdc='yes'} +ac_cv_sizeof_short=${ac_cv_sizeof_short=2} +ac_cv_sizeof_int=${ac_cv_sizeof_int=4} +ac_cv_sizeof_long=${ac_cv_sizeof_long=4} +ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long=8} +ac_cv_sizeof_float=${ac_cv_sizeof_float=4} +ac_cv_sizeof_double=${ac_cv_sizeof_double=8} +ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=8} +ac_cv_sizeof_int=${ac_cv_sizeof_int=4} +ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t=4} +ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t=8} +ac_cv_sizeof_uint8_t=${ac_cv_sizeof_uint8_t=1} +ac_cv_sizeof_uint16_t=${ac_cv_sizeof_uint16_t=2} +ac_cv_sizeof_uint32_t=${ac_cv_sizeof_uint32_t=4} +ac_cv_sizeof_uint64_t=${ac_cv_sizeof_uint64_t=8} +ac_cv_sizeof_int8_t=${ac_cv_sizeof_int8_t=1} +ac_cv_sizeof_int16_t=${ac_cv_sizeof_int16_t=2} +ac_cv_sizeof_int32_t=${ac_cv_sizeof_int32_t=4} +ac_cv_sizeof_int64_t=${ac_cv_sizeof_int64_t=8} +ac_cv_sizeof___int64=${ac_cv_sizeof___int64=8} +ac_cv_sizeof_char=${ac_cv_sizeof_char=1} +ac_cv_header_sys_ioctl_h=${ac_cv_header_sys_ioctl_h=yes} +ac_cv_path_install=${ac_cv_path_install='cp -r'} +RUNPARALLEL="MP_PROCS=2 poe" diff --git a/fortran/config/powerpc-ibm-aix4.x b/fortran/config/powerpc-ibm-aix4.x new file mode 100644 index 0000000..24176a5 --- /dev/null +++ b/fortran/config/powerpc-ibm-aix4.x @@ -0,0 +1,21 @@ +# -*- 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. +# +# See BlankForm in this directory for details. + +# Cross compiling defaults +ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'} +ac_cv_header_stdc=${ac_cv_header_stdc='yes'} +ac_cv_sizeof_short=${ac_cv_sizeof_short=2} +ac_cv_sizeof_int=${ac_cv_sizeof_int=4} +ac_cv_sizeof_long=${ac_cv_sizeof_long=4} +ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long=8} +ac_cv_sizeof_float=${ac_cv_sizeof_float=4} +ac_cv_sizeof_double=${ac_cv_sizeof_double=8} +ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=8} +ac_cv_sizeof_int=${ac_cv_sizeof_int=4} +ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t=4} +ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t=8} diff --git a/fortran/config/rs6000-ibm-aix4.x b/fortran/config/rs6000-ibm-aix4.x new file mode 100644 index 0000000..2f7cc86 --- /dev/null +++ b/fortran/config/rs6000-ibm-aix4.x @@ -0,0 +1,10 @@ +# -*- 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. +# +# See BlankForm in this directory for details. + +# Cross compiling defaults +ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'} diff --git a/fortran/config/solaris2.x b/fortran/config/solaris2.x new file mode 100644 index 0000000..9758cfc --- /dev/null +++ b/fortran/config/solaris2.x @@ -0,0 +1,62 @@ +# -*- 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. +# +# 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 + CFLAGS="-erroff=%none" + DEBUG_CFLAGS=-g + DEBUG_CPPFLAGS= + PROD_CFLAGS="-O -s" + PROD_CPPFLAGS= + PROFILE_CFLAGS=-xpg + PROFILE_CPPFLAGS= + cc_flags_set=yes + # Turn off optimization flag for SUNpro compiler versions 4.x which + # have an optimization bug. Version 5.0 works. + ($CC -V 2>&1) | grep -s 'cc: .* C 4\.' >/dev/null 2>&1 \ + && PROD_CFLAGS="`echo $PROD_CFLAGS | sed -e 's/-O//'`" +fi + +# 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 Sparc Solaris architechture) +# +R_LARGE=9 +R_INTEGER=9 +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 + +if test "X-" = "X-$F9X"; then + F9X=f90 +fi + +if test "X-" = "X-$f9x_flags_set"; then + FFLAGS= + DEBUG_FFLAGS= + PROD_FFLAGS= + PROFILE_FFLAGS= + f9x_flags_set=yes +fi diff --git a/fortran/config/unicos b/fortran/config/unicos new file mode 100644 index 0000000..71201af --- /dev/null +++ b/fortran/config/unicos @@ -0,0 +1,166 @@ +# -*- 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. + + +#---------------------------------------------------------------------------- +# 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. +#---------------------------------------------------------------------------- + + +# Choosing a C Compiler +# --------------------- +# +# The user should be able to specify the compiler by setting the CC +# environment variable to the name of the compiler and any switches it +# requires for proper operation. If CC is unset then this script may +# set it. If CC is unset by time this script completes then configure +# will try `gcc' and `cc' in that order (perhaps some others too). +# +# Note: Code later in this file may depend on the value of $CC_BASENAME +# in order to distinguish between different compilers when +# deciding which compiler command-line switches to use. This +# variable is set based on the incoming value of $CC and is only +# used within this file. + +if test "X-" = "X-$CC"; then + CC=cc + CC_BASENAME=cc +fi +# no need to use RANLIB +RANLIB=: + + +# C Compiler and Preprocessor Flags +# --------------------------------- +# +# Flags that end with `_CFLAGS' are always passed to the compiler. +# Flags that end with `_CPPFLAGS' are passed to the compiler when +# compiling but not when linking. +# +# DEBUG_CFLAGS Flags to pass to the compiler to create a +# DEBUG_CPPFLAGS library suitable for use with debugging +# tools. Usually this list will exclude +# optimization switches (like `-O') and include +# switches that turn on symbolic debugging +# support (like `-g'). +# +# PROD_CFLAGS Flags to pass to the compiler to create a +# PROD_CPPFLAGS production version of the library. These +# usualy exclude symbolic debugging switches +# (like `-g') and include optimization switches +# (like `-O'). +# +# PROFILE_CFLAGS Flags to pass to the compiler to create a +# PROFILE_CPPFLAGS library suitable for performance testing (like +# `-pg'). This may or may not include debugging +# or production flags. +# +# CFLAGS Flags can be added to this variable which +# might already be partially initialized. These +# flags will always be passed to the compiler +# and should include switches to turn on full +# warnings. HDF5 attempts to be ANSI and Posix +# compliant and employ good programming +# practices resulting in few if any +# warnings. +# +# Warning flags do not have to be added to CFLAGS +# variable if the compiler is the GNU gcc +# compiler or a descendent of gcc such as EGCS or PGCC. +# +# The CFLAGS should contains *something* or else +# configure will probably add `-g'. For most +# systems this isn't a problem but some systems +# will disable optimizations in favor of the +# `-g'. +# +# +# These flags should be set according to the compiler being used. +# There are two ways to check the compiler. You can try using `-v' or +# `--version' to see if the compiler will print a version string. You +# can use the value of $CC_BASENAME which is the base name of the +# first word in $CC (note that the value of CC may have changed +# above). + +case $CC_BASENAME in + 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 -fomit-frame-pointer" + PROD_CPPFLAGS= + PROFILE_CFLAGS="-pg" + PROFILE_CPPFLAGS= + ;; + + cc) + CFLAGS="$CFLAGS" + DEBUG_CFLAGS="-g -h zero -h scalar0" + DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" + PROD_CFLAGS="-O2 -h scalar0" + PROD_CPPFLAGS= + PROFILE_CFLAGS="-pg" + PROFILE_CPPFLAGS= + ;; + + *) + CFLAGS="$CFLAGS -ansi" + DEBUG_CFLAGS="-g" + DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2" + PROD_CFLAGS="-O" + PROD_CPPFLAGS= + PROFILE_CFLAGS="-pg" + PROFILE_CPPFLAGS= + ;; +esac + +# Overriding Configure Tests +# -------------------------- +# +# Values for overriding configuration tests when cross compiling. +# This includes compiling on some machines where the serial front end +# compiles for a parallel back end. + +# Set this to `yes' or `no' depending on whether the target is big +# endian or little endian. +ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'} + +# Set this to the width required by printf() to print type `long +# long'. For instance, if the format would be `%lld' then set it to +# `ll' or if the format would be `%qd' set it to `q'. +#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'} + +# 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 UNICOS architechture) +# +R_LARGE=18 +R_INTEGER=18 +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 + +if test "X-" = "X-$F9X"; then + F9X=f90 +fi + +if test "X-" = "X-$f9x_flags_set"; then + FFLAGS="-dp" + DEBUG_FFLAGS="-dp" + PROD_FFLAGS="-dp" + PROFILE_FFLAGS="-dp" + f9x_flags_set=yes +fi diff --git a/fortran/config/unicosmk b/fortran/config/unicosmk new file mode 100644 index 0000000..3c46387 --- /dev/null +++ b/fortran/config/unicosmk @@ -0,0 +1,168 @@ +# -*- 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. + + +#---------------------------------------------------------------------------- +# 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. +#---------------------------------------------------------------------------- + + +# Choosing a C Compiler +# --------------------- +# +# The user should be able to specify the compiler by setting the CC +# environment variable to the name of the compiler and any switches it +# requires for proper operation. If CC is unset then this script may +# set it. If CC is unset by time this script completes then configure +# will try `gcc' and `cc' in that order (perhaps some others too). +# +# Note: Code later in this file may depend on the value of $CC_BASENAME +# in order to distinguish between different compilers when +# deciding which compiler command-line switches to use. This +# variable is set based on the incoming value of $CC and is only +# used within this file. + +if test "X-" = "X-$CC"; then + CC=cc + CC_BASENAME=cc +fi +# no need to use RANLIB +RANLIB=: + + +# C Compiler and Preprocessor Flags +# --------------------------------- +# +# Flags that end with `_CFLAGS' are always passed to the compiler. +# Flags that end with `_CPPFLAGS' are passed to the compiler when +# compiling but not when linking. +# +# DEBUG_CFLAGS Flags to pass to the compiler to create a +# DEBUG_CPPFLAGS library suitable for use with debugging +# tools. Usually this list will exclude +# optimization switches (like `-O') and include +# switches that turn on symbolic debugging +# support (like `-g'). +# +# PROD_CFLAGS Flags to pass to the compiler to create a +# PROD_CPPFLAGS production version of the library. These +# usualy exclude symbolic debugging switches +# (like `-g') and include optimization switches +# (like `-O'). +# +# PROFILE_CFLAGS Flags to pass to the compiler to create a +# PROFILE_CPPFLAGS library suitable for performance testing (like +# `-pg'). This may or may not include debugging +# or production flags. +# +# CFLAGS Flags can be added to this variable which +# might already be partially initialized. These +# flags will always be passed to the compiler +# and should include switches to turn on full +# warnings. HDF5 attempts to be ANSI and Posix +# compliant and employ good programming +# practices resulting in few if any +# warnings. +# +# Warning flags do not have to be added to CFLAGS +# variable if the compiler is the GNU gcc +# compiler or a descendent of gcc such as EGCS or PGCC. +# +# The CFLAGS should contains *something* or else +# configure will probably add `-g'. For most +# systems this isn't a problem but some systems +# will disable optimizations in favor of the +# `-g'. +# +# +# These flags should be set according to the compiler being used. +# There are two ways to check the compiler. You can try using `-v' or +# `--version' to see if the compiler will print a version string. You +# can use the value of $CC_BASENAME which is the base name of the +# first word in $CC (note that the value of CC may have changed +# above). + +case $CC_BASENAME in + gcc) + CFLAGS="$CFLAGS -Wsign-compare" #Only works for some versions + DEBUG_CFLAGS="-g -fverbose-asm" + DEBUG_CPPFLAGS= + PROD_CFLAGS="-O3 -fomit-frame-pointer" + PROD_CPPFLAGS= + PROFILE_CFLAGS="-pg" + PROFILE_CPPFLAGS= + ;; + + cc) + CFLAGS="$CFLAGS" + DEBUG_CFLAGS="-g -h zero" + DEBUG_CPPFLAGS= + PROD_CFLAGS="-O2 -h scalar0" + PROD_CPPFLAGS= + PROFILE_CFLAGS="-pg" + PROFILE_CPPFLAGS= + ;; + + *) + CFLAGS="$CFLAGS -ansi" + DEBUG_CFLAGS="-g" + DEBUG_CPPFLAGS= + PROD_CFLAGS="-O" + PROD_CPPFLAGS= + PROFILE_CFLAGS="-pg" + PROFILE_CPPFLAGS= + ;; +esac + + + +# Overriding Configure Tests +# -------------------------- +# +# Values for overriding configuration tests when cross compiling. +# This includes compiling on some machines where the serial front end +# compiles for a parallel back end. + +# Set this to `yes' or `no' depending on whether the target is big +# endian or little endian. +#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'} + +# Set this to the width required by printf() to print type `long +# long'. For instance, if the format would be `%lld' then set it to +# `ll' or if the format would be `%qd' set it to `q'. +#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'} + +# 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 UNICOS architechture) +# +R_LARGE=18 +R_INTEGER=18 +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 + +if test "X-" = "X-$F9X"; then + F9X=f90 +fi + +if test "X-" = "X-$f9x_flags_set"; then + FFLAGS="-dp" + DEBUG_FFLAGS="-dp" + PROD_FFLAGS="-dp" + PROFILE_FFLAGS="-dp" + f9x_flags_set=yes +fi |