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 /config/trunk/_ml-build
ViewVC logotype

Annotation of /config/trunk/_ml-build

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2140 - (view) (download)

1 : blume 537 #!@SHELL@
2 :    
3 : blume 1261 if [ x${SMLNJ_HOME} = x ] ; then
4 : mblume 1725 BIN_DIR="@BINDIR@"
5 : blume 1261 else
6 : mblume 1725 if [ x"$CM_PATHCONFIG" = x ] ; then
7 : blume 1261 CM_PATHCONFIG=${SMLNJ_HOME}/lib/pathconfig
8 :     export CM_PATHCONFIG
9 :     fi
10 :     BIN_DIR=${SMLNJ_HOME}/bin
11 :     fi
12 : blume 537
13 :     SML=$BIN_DIR/sml
14 :     LINK=$BIN_DIR/.link-sml
15 :    
16 :     thisscript=$0
17 :    
18 :     xx=$$
19 :     smlfile=$xx-export.sml
20 :     cmfile=$xx-export.cm
21 :     listfile=$xx-BOOTLIST
22 : mblume 1342 linkargsfile=$xx-LINKARGS
23 : blume 537
24 : blume 692 dulist=''
25 :    
26 : mblume 1494 trap 'rm -rf $smlfile $cmfile $listfile $linkargsfile @CMDIRARC@/*/$smlfile' 0 1 2 3 15
27 : blume 537
28 :     usage() {
29 :     echo ${thisscript}: $*
30 : mblume 1744 echo Usage: $thisscript '[-S setup] root-group [main-function [heapfile]]'
31 : blume 537 exit 1
32 :     }
33 :    
34 : mblume 1744 setup=
35 :    
36 : blume 692 while [ $# != 0 ] ; do
37 :     case $1 in
38 : blume 1126 -D*|-U*|-C*)
39 : blume 692 dulist="$dulist $1"
40 :     shift
41 :     ;;
42 : mblume 1744 -S)
43 :     shift
44 :     if [ $# = 0 ] ; then
45 :     usage missing argument for -S
46 :     fi
47 :     setup=$1
48 :     shift
49 :     ;;
50 : blume 692 *)
51 :     break
52 :     ;;
53 :     esac
54 :     done
55 :    
56 : mblume 1744 if [ $# = 4 ] ; then
57 : mblume 1656 setup=$1
58 :     root=$2
59 :     main=$3
60 :     heap=$4
61 : mblume 1744 elif [ $# = 3 ] ; then
62 :     root=$1
63 :     main=$2
64 :     heap=$3
65 :     elif [ $# = 2 ] ; then
66 :     root=$1
67 :     main=$2
68 :     heap=`basename "$root" .cm`
69 :     elif [ $# = 1 ] ; then
70 :     root=$1
71 :     # quick hack for now:
72 :     main=Test.main
73 :     heap=`basename "$root" .cm`
74 : mblume 1656 else
75 : mblume 1744 usage no CM description file specified
76 : blume 537 fi
77 :    
78 :     rare=XYZ_XXX_0123
79 :    
80 :     cat >$smlfile <<EOF
81 :     structure ${rare} = struct val _ = SMLofNJ.exportFn ("${heap}", ${main}) end
82 :     EOF
83 :    
84 :     cat >$cmfile <<EOF
85 : blume 644 Group structure ${rare} is \$/basis.cm ${root} ${smlfile}
86 : blume 537 EOF
87 :    
88 : blume 716 # Invoke sml with special option that causes CM to do its magic.
89 : mblume 1342 # Unless the heap image exists and is up-to-date CM will write the arguments
90 :     # for the link script into $linkargsfile.
91 :     # (See src/cm/main/cm-boot.sml [function "mlbuild"] for details.)
92 : mblume 1725 if "$SML" $dulist @CMbuild $setup "$root" "$cmfile" "$heap" "$listfile" "$linkargsfile"
93 : mblume 1656 then
94 : mblume 1725 if [ -r "$linkargsfile" ]; then
95 :     "$LINK" `cat "$linkargsfile"`
96 : mblume 1342 fi
97 : mblume 1480 else
98 :     exit $?
99 : mblume 1342 fi

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