mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
bfbfda0cae
Improvement Description: If the library is built in parallel mode, then name the "h5cc" and "h5fc" programs "h5pcc" and "h5pfc" resp. This saves the user from worrying about mixing serial and parallel builds of the library and having to specify the pathnames and so-forth. Platforms tested: Linux (w/ parallel & Fortran) Modi4 (w/ parallel & Fortran) Sol (Serial & Fortran & C++) Misc. update: Updated release/docs/RELEASE
176 lines
4.2 KiB
Bash
Executable File
176 lines
4.2 KiB
Bash
Executable File
#! /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.
|
|
##
|
|
|
|
## Update HDF5 compiler tools after the HDF5 software has been installed
|
|
## in a new location.
|
|
## For help page, use "h5redeploy -help"
|
|
|
|
# Function definitions
|
|
|
|
# show help page
|
|
usage() {
|
|
# A wonderfully informative "usage" message.
|
|
echo "usage: $prog_name [OPTIONS]"
|
|
echo " OPTIONS:"
|
|
echo " -help|help This help message"
|
|
echo " -echo Show all the shell commands executed"
|
|
echo " -force No prompt, just do it"
|
|
echo " -prefix=DIR New directory to find HDF5 lib/ and include/"
|
|
echo " subdirectories [default: current directory]"
|
|
echo " -tool=TOOL Tool to update. TOOL must be in the current"
|
|
echo " directory and writable. [default: $h5tools]"
|
|
echo " -show Show the commands without executing them"
|
|
echo " "
|
|
exit 1
|
|
}
|
|
|
|
# display variable values
|
|
dump_vars(){
|
|
echo "====Showing all variable values====="
|
|
echo prefix=$prefix
|
|
echo h5tools=$h5tools
|
|
echo "====End Showing====="
|
|
}
|
|
|
|
# show actions to be taken
|
|
show_action()
|
|
{
|
|
echo "Update the following tools because they are now installed at a new directory"
|
|
for t in $foundtools; do
|
|
echo "${t}:"
|
|
echo " current setting=`sed -e '/^prefix=/s/prefix=//p' -e d $t`"
|
|
echo " new setting="\""$prefix"\"
|
|
done
|
|
}
|
|
|
|
|
|
# Report Error message
|
|
ERROR()
|
|
{
|
|
echo "***ERROR***"
|
|
echo "$1"
|
|
}
|
|
|
|
# Main
|
|
#
|
|
# Initialization
|
|
h5tools="h5cc h5pcc h5fc h5pfc h5c++" # possible hdf5 tools
|
|
foundtools= # tools found and will be modified
|
|
fmode= # force mode, default is off
|
|
prefix=`(cd ..;pwd)`
|
|
|
|
# Parse options
|
|
for arg in $@ ; do
|
|
case "$arg" in
|
|
-prefix=*)
|
|
prefix="`expr "$arg" : '-prefix=\(.*\)'`"
|
|
;;
|
|
-echo)
|
|
set -x
|
|
;;
|
|
-show)
|
|
SHOW="echo"
|
|
;;
|
|
-tool=*)
|
|
h5tools="`expr "$arg" : '-tool=\(.*\)'`"
|
|
;;
|
|
-help|help)
|
|
usage
|
|
;;
|
|
-force)
|
|
fmode=yes
|
|
;;
|
|
*)
|
|
ERROR "Unknown Option($arg)"
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Sanity checks
|
|
if [ ! -d $prefix ]; then
|
|
ERROR "prefix($prefix) is not an existing directory"
|
|
exit 1
|
|
fi
|
|
|
|
for x in $h5tools; do
|
|
if [ -f $x ]; then
|
|
foundtools="$foundtools $x"
|
|
if [ ! -w $x ]; then
|
|
ERROR "h5tool($x) is not writable"
|
|
exit 1
|
|
fi
|
|
fi
|
|
done
|
|
|
|
if [ -z "$foundtools" ]; then
|
|
ERROR "found no tools to modify"
|
|
exit 1
|
|
fi
|
|
|
|
# Show actions to be taken and get consent
|
|
show_action
|
|
# Ask confirmation unless fmode is on
|
|
if [ x-$fmode = x- ]; then
|
|
echo "Continue? (yes/no)"
|
|
read ansx
|
|
ans=`echo $ansx | tr "[A-Z]" "[a-z]"`
|
|
if [ x-$ans != x-yes ]; then
|
|
echo ABORT. No tools changed.
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
|
|
# Create the update commands
|
|
CMDFILE=/tmp/h5redeploy.$$
|
|
touch $CMDFILE
|
|
chmod 0600 $CMDFILE
|
|
echo "/^prefix/c" >> $CMDFILE
|
|
echo prefix=\""$prefix"\" >> $CMDFILE
|
|
echo . >> $CMDFILE
|
|
(echo w; echo q) >> $CMDFILE
|
|
|
|
|
|
# Update them
|
|
if [ "$SHOW" = "echo" ]; then
|
|
echo "===Update commands are:===="
|
|
cat $CMDFILE
|
|
echo "===End Update commands====="
|
|
fi
|
|
|
|
for t in $foundtools; do
|
|
echo Update $t ...
|
|
COMMAND="ed - $t"
|
|
if [ "$SHOW" = "echo" ]; then
|
|
echo $COMMAND
|
|
else
|
|
$COMMAND < $CMDFILE
|
|
fi
|
|
done
|
|
|
|
|
|
# Cleanup
|
|
rm -f $CMDFILE
|
|
exit 0
|
|
|
|
# Some possible future features to add
|
|
# CCBASE - Name of the alternative C compiler
|
|
# CLINKERBASE - Name of the alternative linker
|
|
# LDFLAGS - Path to different libraries your application will link with
|
|
# (this path should include the path to the zlib library)
|
|
# LIBS - Libraries your application will link with
|