#! /bin/sh
##
## Copyright by the Board of Trustees of the University of Illinois.
## All rights reserved.
##
############################################################################
## ##
## Things You May Have to Modify: ##
## ##
## If the following paths don't point to the place were HDF4 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="/mnt/scr1/pre-release/hdf4/v4.2.12/thg-builds/moohan-static"
exec_prefix="${prefix}"
libdir="${exec_prefix}/lib"
includedir="${prefix}/include"
############################################################################
## ##
## You shouldn't have to modify anything below this line. ##
## ##
############################################################################
host_os="linux-gnu"
prog_name="`basename $0`"
allargs=""
compile_args=""
libraries=""
link_args=""
link_objs=""
do_link="yes"
do_compile="no"
dash_o="no"
dash_c="no"
get_output_file="no"
SHOW="eval"
CCBASE="gcc"
CLINKERBASE="gcc"
CFLAGS=" -O3 -fomit-frame-pointer"
CPPFLAGS=" -DBIG_LONGS -DSWAP "
LDFLAGS=" "
LIBS="-lsz -ljpeg -lz "
CC="${HDF4_CC:-$CCBASE}"
CLINKER="${HDF4_CLINKER:-$CLINKERBASE}"
# If a static library is available, the default will be to use it. If the only
# available library is shared, it will be used by default. The user can
# override either default, although choosing an unavailable library will result
# in link errors.
STATIC_AVAILABLE="yes"
if test "${STATIC_AVAILABLE}" = "yes"; then
USE_SHARED_LIB="${HDF4_USE_SHLIB:-no}"
else
USE_SHARED_LIB="${HDF4_USE_SHLIB:-yes}"
fi
usage() {
# A wonderfully informative "usage" message.
echo "usage: $prog_name [OPTIONS] "
echo " OPTIONS:"
echo " -help This help message."
echo " -echo Show all the shell commands executed"
echo " -prefix=DIR Prefix directory to find HDF4 lib/ and include/"
echo " subdirectories [default: $prefix]"
echo " -show Show the commands without executing them"
echo " -shlib Compile with shared HDF4 libraries [default for hdf4 built"
echo " without static libraries]"
echo " -noshlib Compile with static HDF4 libraries [default for hdf4 built]"
echo " with static libraries]"
echo " "
echo " - the normal compile line options for your compiler."
echo " $prog_name uses the same compiler you used to compile"
echo " HDF4. Check with your compiler's man pages for more"
echo " information on which options are needed."
echo " "
echo " You can override the compiler, linker, and whether or not to use static"
echo " or shared libraries to compile your program by setting the following"
echo " environment variables accordingly:"
echo " "
echo " HDF4_CC - use a different C compiler"
echo " HDF4_CLINKER - use a different linker"
echo " HDF4_USE_SHLIB=[yes|no] - use shared or static version of the HDF4 library"
echo " [default: no]"
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 $output_file"
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"
do_link="no"
;;
-l*)
libraries=" $libraries $arg "
allargs="$allargs $arg"
;;
-prefix=*)
prefix="`expr "$arg" : '-prefix=\(.*\)'`"
;;
-echo)
set -x
;;
-show)
SHOW="echo"
;;
-shlib)
USE_SHARED_LIB="yes"
;;
-noshlib)
USE_SHARED_LIB="no"
;;
-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
elif test "x$ext" = "x.a"; then
# This is an archive that we're linking in
libraries=" $libraries $arg "
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 $CC -I$includedir $CPPFLAGS $CFLAGS $compile_args
status=$?
if test "$status" != "0"; then
exit $status
fi
fi
if test "x$do_link" = "xyes"; then
libraries=" $libraries -lmfhdf -ldf "
link_args="$link_args -L${libdir}"
if test "x$USE_SHARED_LIB" != "xyes"; then
# The "-ldf" & "-lmfhdf" flags are in here already...This is a static
# compile though, so change it to the static version (.a) of the library.
new_libraries=""
for lib in $libraries; do
case "$lib" in
-ldf)
new_libraries="$new_libraries ${libdir}/libdf.a"
;;
-lmfhdf)
new_libraries="$new_libraries ${libdir}/libmfhdf.a"
;;
*)
new_libraries="$new_libraries $lib"
;;
esac
done
libraries="$new_libraries"
fi
for lib in $libraries; do
if echo $link_args | grep " $lib " > /dev/null ||
echo $link_args | grep " $lib$" > /dev/null; then
:
else
link_args="$link_args $lib "
fi
done
# The LIBS are just a bunch of -l* libraries necessary for the HDF4
# module. It's okay if they're included twice in the compile line.
link_args="$link_args $LIBS"
$SHOW $CLINKER $CFLAGS $LDFLAGS $link_objs $link_args
status=$?
fi
exit $status