Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] View of /sml/trunk/src/system/installml
ViewVC logotype

View of /sml/trunk/src/system/installml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 651 - (download) (annotate)
Thu Jun 1 18:34:03 2000 UTC (19 years, 4 months ago) by monnier
File size: 1964 byte(s)
bring revisions from the vendor branch to the trunk
#!/bin/sh

# The tmpfile is for pathconfig editing (see below).
tmpfile=pathconfig.tmp.$$

trap 'rm -f $tmpfile; exit 1' 0 1 2 3 15

this=$0
here=`pwd`
cd ../..
twoup=`pwd`
cd $here

MAIN_HEAP_DIR=$twoup/bin/.heap
MAIN_LIB_DIR=$twoup/lib

if [ $# -gt 0 ] ; then
    STEM=$1
else
    STEM=sml
fi

if [ -f ../../bin/.arch-n-opsys ]; then
  ARCH_N_OPSYS=`../../bin/.arch-n-opsys`
  if [ "$?" = "0" ]; then
    eval $ARCH_N_OPSYS
  else
    echo "$this: Cannot determine architecture/os."
    exit 1
  fi
fi

# A function to move all stable library files to a parallel directory
# hierarchy.
# The first argument must be a simple path (no / inside), and
# the second argument must be an absolute path.
move() {
    if [ -d $1 ] ; then
	if [ ! -d $2 ] ; then
	    if [ -f $2 ] ; then
		echo $this: $2 exists as a non-directory.
		exit 1
	    fi
	    mkdir $2
	fi
	cd $1
	for i in * ; do
	    move $i $2/$i
	done
	cd ..
    elif [ -f $1 ] ; then
	rm -f $2
	mv $1 $2
    fi
}

HEAP_FILE=$STEM.$ARCH-$OPSYS
LIB_DIR=$STEM.lib

if [ ! -f $HEAP_FILE ] ; then
    echo "$this: The heap file $HEAP_FILE is missing."
    exit 1
fi

if [ ! -d $LIB_DIR ] ; then
    echo "$this: The library directory $LIB_DIR is missing."
    exit 1
fi

# Moving the heap image to its place
mv $HEAP_FILE $MAIN_HEAP_DIR/sml.$ARCH-$OPSYS

# Moving each individual library...
cd $LIB_DIR
for anchor in * ; do
    if [ -d $anchor ] ; then
	move $anchor $MAIN_LIB_DIR/$anchor
    fi
done
cd ..

# Update the pathconfig file in $MAIN_LIB_DIR
#  The awk script below replaces the original binding in $pcfile
#  with its fresh counterpart should there be one.  Other bindings
#  are retained and brand new ones are added.
pcfile=$MAIN_LIB_DIR/pathconfig
if [ -f $pcfile ] ; then
    cp $pcfile $tmpfile
fi
rm -f $pcfile
cat $LIB_DIR/pathconfig >>$tmpfile
awk <$tmpfile 'NF == 2 { mapping[$1] = $2 }
NF != 2 { print $0 }
END { for (i in mapping) print i, mapping[i] }' \
 | sort >$pcfile

rm -r $LIB_DIR

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0