diff options
Diffstat (limited to 'bin/pkgscrpts/h5rmflags')
-rwxr-xr-x | bin/pkgscrpts/h5rmflags | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/bin/pkgscrpts/h5rmflags b/bin/pkgscrpts/h5rmflags new file mode 100755 index 0000000..32b8090 --- /dev/null +++ b/bin/pkgscrpts/h5rmflags @@ -0,0 +1,167 @@ +#! /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. +# + +## Remove paths to libraries used to build HDF5 when packaging HDF5 +## binaries. +## For help page, use "h5rmflags -help" + +# Constants definitions +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +# 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 $EXIT_FAILURE +} + +# 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 $EXIT_FAILURE + ;; + esac +done + +# Sanity checks +#if [ ! -d $prefix ]; then +# ERROR "prefix($prefix) is not an existing directory" +# exit $EXIT_FAILURE +#fi + +for x in $h5tools; do + if [ -f $x ]; then + foundtools="$foundtools $x" + if [ ! -w $x ]; then + ERROR "h5tool($x) is not writable" + exit $EXIT_FAILURE + fi + fi +done + +if [ -z "$foundtools" ]; then + ERROR "found no tools to modify" + exit $EXIT_FAILURE +fi + +# Show actions to be taken and get consent +show_action + + +# 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 + ed - $t << end + g/^H5BLD_CPPFLAGS/s/-I\/.*include //g + g/^H5BLD_LDFLAGS/s/-L\/.*lib //g + g/^H5BLD_LDFLAGS/s/-L\/.*lib64 //g + . + w +end +# fi +done + + +# Cleanup +#rm -f $CMDFILE +exit $EXIT_SUCCESS + +# 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 |