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

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