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/makeml
ViewVC logotype

Annotation of /sml/trunk/src/system/makeml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 643 - (view) (download)

1 : monnier 416 #!/bin/sh
2 :    
3 : blume 577 this=$0
4 : blume 537 here=`pwd`
5 :     cd ../..
6 :     twoup=`pwd`
7 :     cd $here
8 :    
9 :     LINK=$twoup/bin/.link-sml
10 :    
11 :     if [ ! -x $LINK ] ; then
12 : blume 577 echo $this: link script $LINK is not operational.
13 : blume 537 exit 1
14 :     fi
15 :    
16 : dbm 522 ALLOC=1M
17 : monnier 416 ARCH=sparc
18 : blume 537 HEAP="sml"
19 :     ARGS=""
20 :     MODE=""
21 : monnier 416 RUN=""
22 : blume 537
23 : monnier 498 rebuilt=no
24 : blume 515 bare=no
25 : monnier 416
26 :     #
27 :     # Set CM_PATHCONFIG_DEFAULT to ../../lib/pathconfig
28 :     # (using an absolute path!)
29 : blume 643 # ... unless it was already set at the time we run this script.
30 : monnier 416 #
31 :    
32 : blume 643 CM_PATHCONFIG_DEFAULT=${CM_PATHCONFIG_DEFAULT:-$twoup/lib/pathconfig}
33 : monnier 416 export CM_PATHCONFIG_DEFAULT
34 :    
35 :     #
36 :     # use the arch-n-opsys script to determine the ARCH/OS if possible
37 :     #
38 : blume 537 if [ -f $twoup/bin/.arch-n-opsys ]; then
39 :     ARCH_N_OPSYS=`$twoup/bin/.arch-n-opsys`
40 :     if [ "$?" = "0" ]; then
41 :     eval $ARCH_N_OPSYS
42 : blume 577 echo $this: architecture = $ARCH
43 : blume 537 fi
44 : monnier 416 fi
45 :    
46 : blume 569 # A function to create a directory hierarchy parallel to a given
47 :     # hierarchy where ordinary files are hard-linked (i.e., shared).
48 :     # The first argument must be a simple path (no / inside), and
49 :     # the second argument must be an absolute path.
50 : blume 537 link() {
51 :     if [ -d $1 ] ; then
52 :     if [ ! -d $2 ] ; then
53 :     if [ -f $2 ] ; then
54 : blume 577 echo $this: $2 exists as a non-directory
55 : blume 537 exit 1
56 :     fi
57 :     mkdir $2
58 :     fi
59 :     cd $1
60 :     for i in * ; do
61 :     link $i $2/$i
62 :     done
63 :     cd ..
64 :     elif [ -f $1 ] ; then
65 :     rm -f $2
66 :     ln $1 $2
67 :     fi
68 :     }
69 :    
70 :     BOOT_DIR="sml.boot.${ARCH}-unix"
71 :    
72 :     while [ "$#" != "0" ] ; do
73 :     arg=$1; shift
74 :     case $arg in
75 :     -run)
76 :     if [ "$#" = "0" ]; then
77 : blume 577 echo "$this: missing argument for \"-run\" option"
78 : blume 537 exit 1
79 :     fi
80 :     RUN="@SMLrun=$1"; shift
81 :     ;;
82 : blume 515 -bare)
83 :     bare=yes
84 :     MODE="@SMLbare"
85 :     ;;
86 : monnier 416 -rebuild)
87 : blume 515 if [ "$#" = "0" ]; then
88 : blume 577 echo "$this: missing argument for \"-rebuild\" option"
89 : blume 515 exit 1
90 :     fi
91 :     rebuilt=yes
92 :     MODE="@SMLrebuild=$1"; shift
93 :     ;;
94 : monnier 416 -o)
95 : blume 515 if [ "$#" = "0" ]; then
96 : blume 577 echo "$this: missing argument for \"-o\" option"
97 : blume 515 exit 1
98 :     fi
99 : blume 537 HEAP=$1; shift
100 : blume 515 ;;
101 : monnier 416 -alloc)
102 : blume 515 if [ "$#" = "0" ]; then
103 : blume 577 echo "$this: missing argument for \"-alloc\" option"
104 : blume 515 exit 1
105 :     fi
106 :     ALLOC=$1; shift
107 :     ;;
108 : monnier 416 -boot)
109 : blume 515 if [ "$#" = "0" ]; then
110 : blume 577 echo "$this: missing argument for \"-boot\" option"
111 : blume 515 exit 1
112 :     fi
113 :     BOOT_DIR=$1; shift
114 :     ;;
115 :     @SML*)
116 : blume 537 ARGS="$ARGS $arg"
117 : blume 515 ;;
118 :     *)
119 : blume 577 echo "$this: unknown argument \"$arg\""
120 : monnier 416 exit 1
121 : blume 515 ;;
122 :     esac
123 : monnier 416 done
124 :    
125 : blume 537 cd $BOOT_DIR
126 : monnier 416
127 : blume 537 echo $LINK $RUN \
128 :     @SMLboot=BOOTLIST @SMLheap=$here/$HEAP @SMLalloc=$ALLOC $ARGS $MODE
129 :     if $LINK $RUN \
130 :     @SMLboot=BOOTLIST @SMLheap=$here/$HEAP @SMLalloc=$ALLOC $ARGS $MODE
131 : monnier 416 then
132 :     #
133 :     # If this was a -rebuild run, we have to quit now...
134 :     #
135 : monnier 498 if [ $rebuilt = yes ] ; then
136 : blume 577 echo $this: New binfiles are ready.
137 : monnier 416 exit 0
138 :     fi
139 : blume 577 echo $this: Heap image generated.
140 : monnier 416 else
141 : blume 577 echo $this: Something broke.
142 : monnier 416 exit 1
143 :     fi
144 :    
145 :     #
146 :     # Now move the libraries, generate the pathconfig file, and delete the bootdir.
147 :     #
148 :    
149 : blume 537 cd $here
150 : blume 515 if [ $bare = no ] ; then
151 : blume 537 LIB_DIR=`pwd`/${HEAP}.lib
152 : monnier 416
153 : blume 515 rm -rf $LIB_DIR
154 :     mkdir $LIB_DIR
155 : monnier 416
156 : blume 515 cd $BOOT_DIR
157 : monnier 416
158 : blume 573 for anchor in * ; do
159 :     if [ -d $anchor ] ; then
160 :     link $anchor $LIB_DIR/$anchor
161 :     echo $anchor $anchor
162 :     fi
163 : blume 515 done >$LIB_DIR/pathconfig
164 : monnier 416
165 : blume 537 cd $here
166 : blume 515 fi

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