1
1
openmpi/ompi/mca/io/romio314/romio/util/romioinstall.in
2015-06-23 20:59:57 -07:00

221 строка
5.7 KiB
Bash

#!/bin/sh
#
# This script needs to be built by configure.
#
# This is a script to install ROMIO. It can be invoked with
# make install
#
# (if you used -prefix at configure time) or,
#
# make install prefix=/usr/local/romio (or whatever directory you like)
#
# in the top-level romio directory
#
PREFIX=@prefix@
ROMIO_HOME=@ROMIO_HOME@
ARCH=@ARCH@
RANLIB=@RANLIB@
TOP_BUILD_DIR=@top_build_dir@
# LAM Do we want to install or uninstall?
WANT_INSTALL=1
#
# Default paths (set at configure time)
prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
sbindir=@sbindir@
includedir=@includedir@
#sysconfdir=@sysconfdir@
libdir=@libdir@
#sharedlib_dir=@sharedlib_dir@
mandir=@mandir@
htmldir=@htmldir@
# datarootdir required as of autoconf 2.60
datarootdir=@datatrootdir@
#datadir=@datadir@
docdir=@docdir@
## Location of sources
#top_srcdir=@top_srcdir@
#
# File access mode
MODE=0644
XMODE=0755
replace=1
verbose=0
failmode=soft
# Shell procedures to copy files and create directories
#
# We could use install, but install is too different and too hard to
# test. So here are the routines to copy file, make directories, and
# replace #...# and @...@ in files
CP=cp
#
MkDir() {
if [ ! -e $1 ]; then mkdir $1 ; fi
}
CopyFile() {
if [ -z "$3" ] ; then
mode=$MODE
else
mode=$3
fi
if [ -d $2 ] ; then
dest=$2/`basename $1`
else
dest=$2
fi
if [ $replace = 0 -a -f $dest ] ; then
if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi
elif [ -d $1 ] ; then
echo ">>> $1 is a directory; not copied <<<"
errs=`expr $errs + 1`
if [ $failmode = "hard" ] ; then exit 1 ; fi
elif [ ! -f $1 ] ; then
echo "**File $1 does not exist (or is not a regular file)!"
errs=`expr $errs + 1`
if [ $failmode = "hard" ] ; then exit 1 ; fi
else
if [ $verbose = 1 ] ; then echo "Copying $1 to $dest" ; fi
# We don't delete the file in the event that we are copying the
# file over itself (we SHOULD check for that separately, by checking
# that directories are distinct)
#if [ -f $dest ] ; then $Show rm -f $dest ; fi
$Show $CP $1 $dest
rc=$?
if [ $rc != 0 ] ; then
echo "**Error copying file $1 to $dest **"
errs=`expr $errs + 1`
if [ $failmode = "hard" ] ; then exit $rc ; fi
else
echo "rm -f $dest" >> $UNINSTALLFILE
fi
$Show chmod $mode $dest
rc=$?
if [ $rc != 0 ] ; then
echo "**Error setting mode on file $dest**"
errs=`expr $errs + 1`
if [ $chmodefailmode = "hard" ] ; then exit $rc ; fi
fi
fi
}
#
# A version of copy file that preserves file dates
CopyFileP() {
CP="cp -p"
CopyFile $1 $2 $3
CP=cp
}
#
for arg in "$@" ; do
case "$arg" in
-prefix=*)
PREFIX=`echo $arg | sed -e 's/-prefix=//'`
prefix=$PREFIX
;;
# LAM Added -uninstall option
-uninstall)
WANT_INSTALL=0
;;
*)
echo "romioinstall: Unrecognized argument $arg ."
exit 1
;;
esac
done
if test -z "$prefix" ; then
echo "Usage: make install prefix=/usr/local/romio (or whatever directory you like)"
echo "in the top-level romio directory"
fi
# Uninstall filename
if [ -z "$UNINSTALLFILE" ] ; then
UNINSTALLFILE="$sbindir/romiouninstall"
MkDir `dirname $UNINSTALLFILE`
fi
# LAM top-level switch to install or uninstall
if test "$WANT_INSTALL" = "1"; then
# Directories
# Files
MkDir $prefix
echo "copying directory $ROMIO_HOME/doc to $docdir"
MkDir $docdir
for file in COPYRIGHT README users-guide.ps.gz ; do
CopyFile $ROMIO_HOME/$file $docdir
done
echo "copying directory include to $includedir"
MkDir $includedir
for file in include/*.h ; do
CopyFile $file $includedir
done
MkDir $libdir
echo "copying directory $TOP_BUILD_DIR/lib to $libdir"
#cp -r $ROMIO_HOME/lib $PREFIX
#chmod 755 $PREFIX/lib
for file in $TOP_BUILD_DIR/lib/* ; do
if [ -f $file ] ; then
CopyFileP $file $libdir
fi
done
# Romio also copies directories in the lib directory.
if [ -z "$mandir" ] ; then
mandir=$PREFIX/man
fi
echo "copying directory $ROMIO_HOME/man to $mandir"
MkDir $mandir
MkDir $mandir/man3
for file in $ROMIO_HOME/man/man3/* ; do
CopyFile $file $mandir/man3
done
if [ -z "$exampledir" ] ; then exampledir=$PREFIX/examples ; fi
echo "copying directory $ROMIO_HOME/test to $exampledir"
MkDir $exampledir
MkDir $exampledir/std
for file in $ROMIO_HOME/test/std/* ; do
CopyFile $file $exampledir/std
done
CopyFile test/Makefile $exampledir
CopyFile test/README $exampledir
for file in test/*.c test/*.f test/runtests ; do
CopyFile $file $exampledir
done
# Ranlib should not be necessary if cp -p is used
#$RANLIB $PREFIX/lib/$ARCH/libmpio.a
# change the include and lib paths in Makefile in the test directory
echo "updating paths in $exampledir/Makefile"
TMPNEWINC=-I$includedir
TMPNEWLIB=$libdir/$ARCH/libmpio.a
NEWINC=`echo $TMPNEWINC | sed 's/\//\\\\\//g'`
NEWLIB=`echo $TMPNEWLIB | sed 's/\//\\\\\//g'`
sed -e 5s/INCLUDE_DIR[\ ]*=\ [/a-z0-9.A-Z_-]*/INCLUDE_DIR\ =\ $NEWINC/ \
-e 6s/LIBS[\ ]*=\ [/a-z0-9.A-Z_-]*/LIBS\ =\ $NEWLIB/ $exampledir/Makefile\
> $exampledir/.romiotmp
mv $exampledir/.romiotmp $exampledir/Makefile
#
MkDir $sbindir
echo "rm -f $UNINSTALLFILE" >> $UNINSTALLFILE
# Add the directory removes to the UNINSTALL file
for dir in $dirlist ; do
echo "if [ -d $dir ] ; then rmdir $dir ; fi" >> $UNINSTALLFILE
done
else
# LAM do all the things for uninstall -- do the opposite of above.
# This whole section is new.
$sbindir/romiouninstall
echo "ROMIO uninstalled"
fi