#! /bin/sh ## ## Copyright (C) by Argonne National Laboratory ## See COPYRIGHT in top-level directory ## # 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