#!/bin/sh ## # Copyright by The HDF Group. # 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://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have # access to either file, you may request a copy from help@hdfgroup.org. ## # Build HDF5 library by doing configure, make, and tests. # Usage: See USAGE() # Programmer: Albert Cheng # Creation date: Jul 9, 2003 # Some handy definitions USAGE() { cat <> "$resultfile" 2>&1 if [ $? -ne 0 ]; then echo "error in '$banner'. buildhdf5 aborted." exit 1 fi } # Try locate the HDF4 library # This is a hack because there is no consistent place to find # the valid HDF library. LOCATE_HDF4() { OS=`uname -s` echo OS=$OS case "$OS" in HP-UX) h4paths="/afs/ncsa/packages/hdf/HPUX_10.20" ;; IRIX) h4paths="/afs/ncsa/packages/hdf/4.1r3_irix" ;; IRIX64) case "$CC" in *-n32) h4paths="/afs/ncsa/packages/hdf/IRIX64-n32_6.5" ;; *) h4paths="/afs/ncsa/packages/hdf/IRIX64_6.5" ;; esac ;; Linux) h4paths="/afs/ncsa/packages/hdf/linux" ;; OSF1) h4paths="/afs/ncsa/packages/hdf/OSF1_V4.0" ;; *) h4paths="/usr/ncsa /usr/sdt" ;; esac echo $h4paths for h4 in $h4paths; do if [ -f $h4/lib/libdf.a -a -f $h4/include/hdf.h ]; then WITH_H4="--with-hdf4=$h4/include,$h4/lib" break fi done echo WITH_H4="$WITH_H4" } # Try locate the Fortran compiler # This is a hack because there is no consistent fortran compiler name LOCATE_FORTRAN() { OS=`uname -s` echo OS=$OS case "$OS" in IRIX64) case "$CC" in *-n32) gasspaths=/usr/local/globus-install-1.1.1/development/mips-sgi-irix6.5-n32_nothreads_standard_debug sslpaths=/usr/local/ssl-n32 ;; *) gasspaths=/usr/local/globus-install-1.1.1/development/mips-sgi-irix6.5-64_nothreads_standard_debug sslpaths=/usr/local/ssl ;; esac ;; *) ;; esac echo gasspaths=$gasspaths echo $sslpaths=$sslpaths for x in $gasspaths dummy; do if [ $x != dummy -a -f $x/lib/libglobus_gass_cache.a ]; then WITH_GASS="--with-gass=$x/include,$x/lib" break fi done for x in $sslpaths dummy; do if [ $x != dummy -a -f $x/lib/libssl.a ]; then WITH_SSL="--with-ssl=$x/lib" break fi done echo WITH_GASS="$WITH_GASS" echo WITH_SSL="$WITH_SSL" } # Try locate the GASS software library # This is a hack because there is no consistent place to find # the valid HDF library. LOCATE_GASS() { OS=`uname -s` echo OS=$OS case "$OS" in IRIX64) case "$CC" in *-n32) gasspaths=/usr/local/globus-install-1.1.1/development/mips-sgi-irix6.5-n32_nothreads_standard_debug sslpaths=/usr/local/ssl-n32 ;; *) gasspaths=/usr/local/globus-install-1.1.1/development/mips-sgi-irix6.5-64_nothreads_standard_debug sslpaths=/usr/local/ssl ;; esac ;; *) ;; esac echo gasspaths=$gasspaths echo $sslpaths=$sslpaths for x in $gasspaths dummy; do if [ $x != dummy -a -f $x/lib/libglobus_gass_cache.a ]; then WITH_GASS="--with-gass=$x/include,$x/lib" break fi done for x in $sslpaths dummy; do if [ $x != dummy -a -f $x/lib/libssl.a ]; then WITH_SSL="--with-ssl=$x/lib" break fi done echo WITH_GASS="$WITH_GASS" echo WITH_SSL="$WITH_SSL" } # Configure. Default to do --srcdir. CONFIG() { CMD="$SRCDIR/configure $*" echo $CMD if [ "$NOEXEC" != 'noexec' ]; then $CMD else true # set exit code as 0 fi } # Main body TIMESTAMP trap QUIT 0 # # setup # MAKE=${MAKE:-'gmake'} export MAKE CONFIGURE="CONFIG" CONFIG_ONLY=no # default is configure and build NOEXEC= # default to execute commands SRCDIRLIST=". ../hdf5" # places to look for configure nerror=0 # parse some options while [ $# -gt 0 ]; do case "$1" in -config) # do configure only CONFIG_ONLY=yes ;; -gass) LOCATE_GASS ;; -help) USAGE exit 0 ;; -n) NOEXEC='noexec' ;; -srcdir) shift SRCDIRLIST="$1" ;; *) # Quit parsing break ;; esac shift done # Figure out if srcdir is wished. # Make sure we are at the library root level # by checking couple typical files. Not bullet-proof. for SRCDIR in $SRCDIRLIST dummy; do if [ x-$SRCDIR = x-dummy ]; then break fi if [ -d $SRCDIR/src -a -d $SRCDIR/config -a -f $SRCDIR/configure ] then break fi done if [ x-$SRCDIR = x-dummy ]; then echo "Could not find the source dir or configure script. Abort." exit 1 fi # Configure # no configure if already done. if [ ! -f config.status ]; then CONFIGURE="$CONFIGURE $WITH_SSL $WITH_GASS" STEP "Configure HDF5..." "$CONFIGURE $*" "#config" else STEP "Confiugre Skipped" "echo Confiugre Skipped" "#config" fi if [ x-$CONFIG_ONLY = x-yes ]; then exit 0 fi # Compile STEP "Make HDF5..." "$MAKE" "#make" # Tests STEP "Testing HDF5..." "$MAKE check" "#test" # all done echo "No Errors encountered" TIMESTAMP