summaryrefslogtreecommitdiffstats
path: root/fortran/src
diff options
context:
space:
mode:
authorBill Wendling <wendling@ncsa.uiuc.edu>2003-04-10 00:48:46 (GMT)
committerBill Wendling <wendling@ncsa.uiuc.edu>2003-04-10 00:48:46 (GMT)
commit44deb0bdec073dcd3c5041b0781e74b0ece759f6 (patch)
treec5011781c4480539f1f4ddaddee5ae908292479e /fortran/src
parentbb0df72af60a300a9876914c6f6e14517d585450 (diff)
downloadhdf5-44deb0bdec073dcd3c5041b0781e74b0ece759f6.zip
hdf5-44deb0bdec073dcd3c5041b0781e74b0ece759f6.tar.gz
hdf5-44deb0bdec073dcd3c5041b0781e74b0ece759f6.tar.bz2
[svn-r6622] Purpose:
Addition Description: Added "h5fc" utility. This is the same as the "h5cc" utility but for Fortran. It only handles static libraries since that's the only library we build for Fortran. Note! I've tested the code on the normal platforms but I haven't tested the utility itself. Platforms tested: Arabica (Fortran) Modi4 (Fortran & Parallel) Burrwhite (Fortran & C++ Misc. update:
Diffstat (limited to 'fortran/src')
-rw-r--r--fortran/src/Makefile.in16
-rwxr-xr-xfortran/src/h5fc.in203
2 files changed, 216 insertions, 3 deletions
diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in
index 99b9c8c..4d9ac8d 100644
--- a/fortran/src/Makefile.in
+++ b/fortran/src/Makefile.in
@@ -1,8 +1,17 @@
##
-## HDF5 Forgran Library Makefile(.in)
+## HDF5 Fortran Library Makefile(.in)
##
-## Copyright (C) 2000 National Center for Supercomputing Applications.
-## All rights reserved.
+## Copyright by the Board of Trustees of the University of Illinois.
+## 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 files COPYING and Copyright.html. COPYING can be found at the root
+## of the source code distribution tree; Copyright.html can be found at the
+## root level of an installed copy of the electronic HDF5 document set and
+## is linked from the top-level documents page. It can also be found at
+## http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have
+## access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu.
##
top_srcdir=@top_srcdir@/..
top_builddir=../..
@@ -23,6 +32,7 @@ DISTCLEAN=H5fortran_types.f90
## Public header files (to be installed)...
PUB_HDR=H5pubconf_fortran.h
+PUB_PROGS=h5fc
## Source and object files for the library
ADD_PARALLEL_FILES=@ADD_PARALLEL_FILES@
diff --git a/fortran/src/h5fc.in b/fortran/src/h5fc.in
new file mode 100755
index 0000000..cedc0b5
--- /dev/null
+++ b/fortran/src/h5fc.in
@@ -0,0 +1,203 @@
+#! /bin/sh
+##
+## Copyright by the Board of Trustees of the University of Illinois.
+## 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 files COPYING and Copyright.html. COPYING can be found at the root
+## of the source code distribution tree; Copyright.html can be found at the
+## root level of an installed copy of the electronic HDF5 document set and
+## is linked from the top-level documents page. It can also be found at
+## http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have
+## access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu.
+##
+
+############################################################################
+## ##
+## Things You May Have to Modify: ##
+## ##
+## If the following paths don't point to the place were HDF5 is installed ##
+## on your system (i.e., you received a binary distribution or moved the ##
+## files from the originally installed directory to another directory) ##
+## then modify them accordingly to represent the new paths. ##
+## ##
+############################################################################
+prefix="@prefix@"
+exec_prefix="@exec_prefix@"
+libdir="@libdir@"
+includedir="@includedir@"
+
+############################################################################
+## ##
+## You shouldn't have to modify anything below this line. ##
+## ##
+############################################################################
+
+host_os="@host_os@"
+
+prog_name="`basename $0`"
+
+allargs=""
+compile_args=""
+link_args=""
+link_objs=""
+
+do_link="yes"
+do_compile="no"
+dash_o="no"
+dash_c="no"
+get_output_file="no"
+
+SHOW="eval"
+FCBASE="@FC@"
+FLINKERBASE="@FC@"
+LDFLAGS="@LDFLAGS@"
+LIBS="@LIBS@"
+
+FC="${HDF5_FC:-$FCBASE}"
+FLINKER="${HDF5_FLINKER:-$FLINKERBASE}"
+
+usage() {
+ # A wonderfully informative "usage" message.
+ echo "usage: $prog_name [OPTIONS] <compile line>"
+ echo " OPTIONS:"
+ echo " -help This help message."
+ echo " -echo Show all the shell commands executed"
+ echo " -prefix=DIR Prefix directory to find HDF5 lib/ and include/"
+ echo " subdirectories [default: $prefix]"
+ echo " -show Show the commands without executing them"
+ echo " "
+ echo " <compile line> - the normal compile line options for your compiler."
+ echo " $prog_name uses the same compiler you used to compile"
+ echo " HDF5. Check with your compiler's man pages for more"
+ echo " information on which options are needed."
+ echo " "
+ echo " You can override the compiler and linker to compile your program by"
+ echo " setting the following environment variables accordingly:"
+ echo " "
+ echo " HDF5_FC - use a different Fortran 90 or 95 compiler"
+ echo " HDF5_FLINKER - use a different linker"
+ echo " "
+ exit 1
+}
+
+if test "$#" = "0"; then
+ # No parameters specified, issue usage statement and exit.
+ usage
+fi
+
+for arg in $@ ; do
+ if test "x$get_output_file" = "xyes"; then
+ link_args="$link_args $arg"
+ output_file="$arg"
+ get_output_file="no"
+ continue
+ fi
+
+ case "$arg" in
+ -c)
+ allargs="$allargs $arg"
+ compile_args="$compile_args $arg"
+
+ if test "x$do_link" = "xyes" -a -n "$output_file"; then
+ compile_args="$compile_args -o $outputfile"
+ fi
+
+ do_link="no"
+ dash_c="yes"
+ ;;
+ -o)
+ allargs="$allargs $arg"
+ dash_o="yes"
+
+ if test "x$dash_c" = "xyes"; then
+ compile_args="$compile_args $arg"
+ else
+ link_args="$link_args $arg"
+ do_link="yes"
+ get_output_file="yes"
+ fi
+ ;;
+ -E|-M)
+ allargs="$allargs $arg"
+ compile_args="$compile_args $arg"
+ dash_c="yes"
+ dash_o="no"
+ ;;
+ -l*)
+ link_args="$link_args $arg"
+ allargs="$allargs $arg"
+ ;;
+ -prefix=*)
+ prefix="`expr "$arg" : '-prefix=\(.*\)'`"
+ ;;
+ -echo)
+ set -x
+ ;;
+ -show)
+ SHOW="echo"
+ ;;
+ -help)
+ usage
+ ;;
+ *\"*)
+ qarg="'"$arg"'"
+ allargs="$allargs $qarg"
+ ;;
+ *\'*)
+ qarg='\"'"$arg"'\"'
+ allargs="$allargs $qarg"
+ ;;
+ *)
+ allargs="$allargs $qarg"
+
+ if test -s "$arg"; then
+ ext=`expr "$arg" : '.*\(\..*\)'`
+
+ if test "x$ext" = "x.c"; then
+ do_compile="yes"
+ compile_args="$compile_args $arg"
+ fname=`basename $arg .c`
+ link_objs="$link_objs $fname.o"
+ elif test "x$ext" = "x.o"; then
+ if test "x$dash_c" = "xyes"; then
+ compile_args="$compile_args $arg"
+ else
+ do_link="yes"
+ link_objs="$link_objs $arg"
+ fi
+ else
+ compile_args="$compile_args $arg"
+ link_args="$link_args $arg"
+ fi
+ else
+ compile_args="$compile_args $arg"
+ link_args="$link_args $arg"
+ fi
+ ;;
+ esac
+done
+
+if test "x$do_compile" = "xyes"; then
+ if test "x$dash_c" != "xyes"; then
+ compile_args="-c $compile_args"
+ fi
+
+ $SHOW $FC $FFLAGS $compile_args
+ status=$?
+
+ if test "$status" != "0"; then
+ exit $status
+ fi
+fi
+
+if test "x$do_link" = "xyes"; then
+ link_args="$link_args ${libdir}/libhdf5_fortran.a ${libdir}/libhdf5.a"
+
+ link_args="$link_args $LIBS"
+ $SHOW $FLINKER $LDFLAGS $link_objs $link_args
+ status=$?
+fi
+
+exit $status