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

SCM Repository

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

Annotation of /sml/trunk/src/system/installml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 573 - (view) (download)

1 : blume 512 #!/bin/sh
2 :    
3 :     # The tmpfile is for pathconfig editing (see below).
4 :     tmpfile=pathconfig.tmp.$$
5 :    
6 :     trap 'rm -f $tmpfile; exit 1' 0 1 2 3 15
7 :    
8 : blume 569 here=`pwd`
9 :     cd ../..
10 :     twoup=`pwd`
11 :     cd $here
12 : blume 512
13 : blume 569 MAIN_HEAP_DIR=$twoup/bin/.heap
14 :     MAIN_LIB_DIR=$twoup/lib
15 :    
16 : blume 512 if [ $# -gt 0 ] ; then
17 :     STEM=$1
18 :     else
19 :     STEM=sml
20 :     fi
21 :    
22 :     if [ -f ../../bin/.arch-n-opsys ]; then
23 :     ARCH_N_OPSYS=`../../bin/.arch-n-opsys`
24 :     if [ "$?" = "0" ]; then
25 :     eval $ARCH_N_OPSYS
26 :     else
27 :     echo "Cannot determine architecture/os."
28 :     exit 1
29 :     fi
30 :     fi
31 :    
32 : blume 569 # A function to move all stable library files to a parallel directory
33 :     # hierarchy.
34 :     # The first argument must be a simple path (no / inside), and
35 :     # the second argument must be an absolute path.
36 :     move() {
37 :     if [ -d $1 ] ; then
38 :     if [ ! -d $2 ] ; then
39 :     if [ -f $2 ] ; then
40 :     echo installml: $2 exists as a non-directory.
41 :     exit 1
42 :     fi
43 :     mkdir $2
44 :     fi
45 :     cd $1
46 :     for i in * ; do
47 :     move $i $2/$i
48 :     done
49 :     cd ..
50 :     elif [ -f $1 ] ; then
51 :     rm -f $2
52 :     mv $1 $2
53 :     fi
54 :     }
55 :    
56 : blume 512 HEAP_FILE=$STEM.$ARCH-$OPSYS
57 :     LIB_DIR=$STEM.lib
58 :    
59 :     if [ ! -f $HEAP_FILE ] ; then
60 :     echo "The heap file $HEAP_FILE is missing."
61 :     exit 1
62 :     fi
63 :    
64 :     if [ ! -d $LIB_DIR ] ; then
65 :     echo "The library directory $LIB_DIR is missing."
66 :     exit 1
67 :     fi
68 :    
69 :     # Moving the heap image to its place
70 :     mv $HEAP_FILE $MAIN_HEAP_DIR/sml.$ARCH-$OPSYS
71 :    
72 :     # Moving each individual library...
73 :     cd $LIB_DIR
74 : blume 573 for anchor in * ; do
75 :     if [ -d $anchor ] ; then
76 :     move $anchor $MAIN_LIB_DIR/$anchor
77 :     fi
78 : blume 512 done
79 : blume 569 cd ..
80 : blume 512
81 :     # Update the pathconfig file in $MAIN_LIB_DIR
82 :     # The awk script below replaces the original binding in $pcfile
83 :     # with its fresh counterpart should there be one. Other bindings
84 :     # are retained and brand new ones are added.
85 :     pcfile=$MAIN_LIB_DIR/pathconfig
86 :     if [ -f $pcfile ] ; then
87 :     cp $pcfile $tmpfile
88 :     fi
89 :     rm -f $pcfile
90 :     cat $LIB_DIR/pathconfig >>$tmpfile
91 :     awk <$tmpfile >$pcfile 'NF == 2 { mapping[$1] = $2 }
92 :     NF != 2 { print $0 }
93 :     END { for (i in mapping) print i, mapping[i] }'
94 :    
95 :     rm -r $LIB_DIR

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