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 2275 - (view) (download)

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

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