|
|
1.1 ! root 1: #!/bin/sh ! 2: # ! 3: #set -x ! 4: ! 5: IMAGE="" ! 6: MACHINE="" ! 7: OPSYS="BSD" ! 8: MODULEKIND="Int" ! 9: TARGET="" ! 10: SHARE="TRUE" ! 11: DEFS="" ! 12: CLEAN="TRUE" ! 13: MKRUN="TRUE" ! 14: RUNTIME="runtime" ! 15: NOBOOT="" ! 16: ASMBLR="as" ! 17: COMMAND="" ! 18: IONLY="" ! 19: CFL="" ! 20: ! 21: # ! 22: # gc params ! 23: HEAP=2048 ! 24: RATIO=20 ! 25: SOFTLIMIT=4096 ! 26: ! 27: # ! 28: # try to guess the machine type ! 29: # ! 30: if [ -f /bin/arch ]; then ! 31: case `/bin/arch` in ! 32: sun3) ! 33: set - -sun3 $* ! 34: ;; ! 35: sun4) ! 36: set - -sun4 $* ! 37: ;; ! 38: esac ! 39: fi ! 40: ! 41: # ! 42: # process options ! 43: # ! 44: while test "$#" != "0" ! 45: do ! 46: case $1 in ! 47: -m68|-sun3) ! 48: MACHINE=M68 ! 49: ;; ! 50: -sparc|-sun4) ! 51: MACHINE=SPARC ! 52: ;; ! 53: -next) ! 54: MACHINE=M68 ! 55: OPSYS=NEXT ! 56: ;; ! 57: -encore) ! 58: MACHINE=NS32 ! 59: OPSYS=BSD ! 60: ASMBLR="as -j" ! 61: ;; ! 62: -vax) ! 63: MACHINE=VAX ! 64: ;; ! 65: -bsd) ! 66: OPSYS=BSD ! 67: ;; ! 68: -mach) ! 69: OPSYS=MACH ! 70: ;; ! 71: -sunos) ! 72: OPSYS=SUNOS ! 73: ;; ! 74: -v9) ! 75: OPSYS=V9 ! 76: ;; ! 77: -ultrix) ! 78: OPSYS=ULTRIX ! 79: ;; ! 80: -batch) ! 81: MODULEKIND=Comp ! 82: ;; ! 83: -noshare) ! 84: SHARE="" ! 85: ;; ! 86: -run) ! 87: MKRUN="TRUE" ! 88: NOBOOT="TRUE" ! 89: ;; ! 90: -norun) ! 91: MKRUN="" ! 92: CLEAN="" ! 93: ;; ! 94: -noclean) ! 95: CLEAN="" ! 96: ;; ! 97: -target) ! 98: shift ! 99: if test "$#" = "0" ! 100: then ! 101: echo "makeml: must supply machine for -target option" ! 102: exit 1 ! 103: fi ! 104: TARGET=$1 ! 105: MODULEKIND=Comp ! 106: ;; ! 107: -i) ! 108: COMMAND="System.Control.interp := true;" ! 109: ;; ! 110: -ionly) ! 111: COMMAND="System.Control.interp := true;" ! 112: IONLY="TRUE" ! 113: ;; ! 114: -o) ! 115: shift ! 116: if test "$#" = "0" ! 117: then ! 118: echo "makeml: must supply image name for -o option" ! 119: exit 1 ! 120: fi ! 121: IMAGE=$1 ! 122: ;; ! 123: -runtime) ! 124: shift ! 125: if test "$#" = "0" ! 126: then ! 127: echo "makeml: must supply runtime directory for -runtime option" ! 128: exit 1 ! 129: fi ! 130: RUNTIME=$1 ! 131: ;; ! 132: -mo) ! 133: shift ! 134: if test "$#" = "0" ! 135: then ! 136: echo "makeml: must supply mo directory for -mo option" ! 137: exit 1 ! 138: elif test ! \( -d "$1" \) ! 139: then ! 140: echo "makeml: mo directory $1 not found" ! 141: exit 1 ! 142: fi ! 143: MO=$1 ! 144: ;; ! 145: -h) ! 146: shift ! 147: if test "$#" = "0" ! 148: then ! 149: echo "makeml: must supply argument for -h option" ! 150: exit 1 ! 151: fi ! 152: HEAP=$1 ! 153: ;; ! 154: -r) ! 155: shift ! 156: if test "$#" = "0" ! 157: then ! 158: echo "makeml: must supply argument for -r option" ! 159: exit 1 ! 160: fi ! 161: RATIO=$1 ! 162: ;; ! 163: -m) ! 164: shift ! 165: if test "$#" = "0" ! 166: then ! 167: echo "makeml: must supply argument for -m option" ! 168: exit 1 ! 169: fi ! 170: SOFTLIMIT=$1 ! 171: ;; ! 172: -D*) ! 173: DEFS="$DEFS $1" ! 174: ;; ! 175: *) ! 176: echo "makeml: unrecognized option $1" ! 177: exit 1 ! 178: ;; ! 179: esac ! 180: shift ! 181: done ! 182: ! 183: if test -z "$IMAGE" ! 184: then ! 185: if test "$MODULEKIND" = Int ! 186: then ! 187: if test -n "$IONLY" ! 188: then ! 189: IMAGE=smli ! 190: else ! 191: IMAGE=sml ! 192: fi ! 193: else ! 194: IMAGE=smlc ! 195: fi ! 196: fi ! 197: ! 198: case $MACHINE in ! 199: M68) ! 200: case $OPSYS in ! 201: MACH) ! 202: OPSYS=BSD ! 203: # drt: added -Dsun3 option to make Mach header files perform correctly ! 204: DEFS="$DEFS -Dsun3 -DSUN3" ! 205: CFL="-f68881" ! 206: ;; ! 207: SUNOS) ! 208: OPSYS=BSD ! 209: # awa: for gcc, -f68881 should be changed to -m68881 below. ! 210: DEFS="$DEFS -DSUN3" ! 211: CFL="-n -Bstatic -f68881" ! 212: ;; ! 213: NEXT) ! 214: DEFS="$DEFS -DBSD" ! 215: ;; ! 216: *) ! 217: echo "For m68 don't use -bsd, use -mach or -next or -sunos" ! 218: exit 1 ! 219: esac ! 220: if test -z "$MO" ! 221: then ! 222: MO="../mo.m68" ! 223: fi ! 224: MODULE="$MODULEKIND"M68 ! 225: ;; ! 226: SPARC) ! 227: case $OPSYS in ! 228: MACH) ! 229: OPSYS=BSD ! 230: DEFS="$DEFS -Dsun4" ! 231: ;; ! 232: SUNOS) ! 233: OPSYS=BSD ! 234: DEFS="$DEFS -Dsun4" ! 235: CFL="-n -Bstatic" ! 236: ;; ! 237: *) ! 238: echo "For sparc don't use -bsd, use -mach or -sunos" ! 239: exit 1 ! 240: esac ! 241: if test -z "$MO" ! 242: then ! 243: MO="../mo.sparc" ! 244: fi ! 245: MODULE="$MODULEKIND"Sparc ! 246: ;; ! 247: VAX) ! 248: if test "$OPSYS" = ULTRIX ! 249: then ! 250: DEFS="$DEFS -DBSD" ! 251: fi ! 252: if test -z "$MO" ! 253: then ! 254: MO="../mo.vax" ! 255: fi ! 256: MODULE="$MODULEKIND"Vax ! 257: ;; ! 258: NS32) ! 259: if test -z "$MO" ! 260: then ! 261: MO="../mo.ns32" ! 262: fi ! 263: MODULE="$MODULEKIND"NS32 ! 264: ;; ! 265: *) ! 266: echo "makeml: must specify machine type" ! 267: exit 1 ! 268: ;; ! 269: esac ! 270: ! 271: if test -n "$TARGET" ! 272: then ! 273: case $TARGET in ! 274: m68|M68|sun3|next) ! 275: TARGET=M68 ! 276: ;; ! 277: sparc|Sparc|SPARC|sun4) ! 278: TARGET=Sparc ! 279: ;; ! 280: vax|Vax|VAX) ! 281: TARGET=Vax ! 282: ;; ! 283: ns32|NS32|encore) ! 284: TARGET=NS32 ! 285: ;; ! 286: *) ! 287: echo "makeml: invalid argument to -target option" ! 288: exit 1 ! 289: esac ! 290: MODULE="$MODULEKIND"$TARGET ! 291: fi ! 292: ! 293: if test -n "$IONLY" ! 294: then ! 295: if test -n "$TARGET" ! 296: then ! 297: echo "makeml: -target and -ionly options are incompatible" ! 298: exit 1 ! 299: fi ! 300: MODULE="IntNull" ! 301: fi ! 302: ! 303: MOFILES="$MODULE.mos" ! 304: DEFS="$DEFS -D$OPSYS" ! 305: ! 306: ! 307: if test -n "$CLEAN" ! 308: then ! 309: echo "(cd $RUNTIME; make clean)" ! 310: (cd $RUNTIME; make clean) ! 311: fi ! 312: ! 313: echo rm -f mo ! 314: rm -f mo ! 315: ! 316: echo ln -s $MO mo ! 317: ln -s $MO mo ! 318: ! 319: if test -n "$MKRUN" ! 320: then ! 321: echo "(cd $RUNTIME; rm -f run allmo.o)" ! 322: (cd $RUNTIME; rm -f run allmo.o) ! 323: ! 324: if test -n "$SHARE" ! 325: then ! 326: if test "$OPSYS" = NEXT ! 327: then ! 328: echo "(cd $RUNTIME; make MACHINE=$MACHINE slinkdata)" ! 329: (cd $RUNTIME; make MACHINE=$MACHINE slinkdata) ! 330: ! 331: echo "$RUNTIME/slinkdata [$RUNTIME/$MOFILES] > $RUNTIME/allmo.s" ! 332: $RUNTIME/slinkdata `cat $RUNTIME/$MOFILES` > $RUNTIME/allmo.s ! 333: ! 334: echo "(cd runtime; cc -c allmo.s)" ! 335: (cd runtime; cc -c allmo.s) ! 336: else ! 337: ! 338: # ! 339: # drt: changed this to pass $DEFS value and machine name instead of ! 340: # just the machine name. ! 341: # ! 342: ! 343: ARG="MACHINE=$MACHINE 'DEFS=$DEFS' linkdata" ! 344: echo "(cd $RUNTIME; make $ARG)" ! 345: (cd $RUNTIME; eval make $ARG) ! 346: ! 347: echo "$RUNTIME/linkdata [$RUNTIME/$MOFILES] > $RUNTIME/allmo.o" ! 348: $RUNTIME/linkdata `cat $RUNTIME/$MOFILES` > $RUNTIME/allmo.o ! 349: fi ! 350: fi ! 351: ! 352: ARG="MACHINE=$MACHINE 'DEFS=$DEFS' 'CFL=$CFL' 'ASMBLR=$ASMBLR'" ! 353: echo "(cd $RUNTIME; make $ARG)" ! 354: (cd $RUNTIME; eval make $ARG) ! 355: fi ! 356: ! 357: if test -n "$NOBOOT" ! 358: then ! 359: exit 0 ! 360: fi ! 361: ! 362: if test "$MODULEKIND" = Int ! 363: then ! 364: STARTUP='('$COMMAND' exportML "'$IMAGE'"; output std_out System.version; output std_out (chr 10) (* newline *));' ! 365: echo echo $STARTUP '|' $RUNTIME/run -m $SOFTLIMIT -r $RATIO -h $HEAP $MODULE ! 366: echo $STARTUP | $RUNTIME/run -m $SOFTLIMIT -r $RATIO -h $HEAP $MODULE ! 367: else ! 368: echo "$RUNTIME/run -m $SOFTLIMIT -r $RATIO -h $HEAP $MODULE" ! 369: $RUNTIME/run -m $SOFTLIMIT -r $RATIO -h $HEAP $MODULE <<XXX ! 370: >$IMAGE ! 371: XXX ! 372: fi
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.