######################################################################### # # # Objective Caml # # # # Damien Doligez, projet Para, INRIA Rocquencourt # # # # Copyright 1999 Institut National de Recherche en Informatique et # # en Automatique. All rights reserved. This file is distributed # # under the terms of the GNU Library General Public License. # # # ######################################################################### # $Id$ C = sc COptions = -w 29,30,35 {ocamlgusiflag} -i ::config: {cdbgflag} -model far -mbg full AOptions = -model far {adbgflag} LinkOptions = -model far -ad 4 -msg nodup -compact -pad 0 -state nouse -br 68k Libs = "{libraries}IntEnv.o" "{libraries}Interface.o" "{libraries}MacRuntime.o" "{libraries}MathLib.o" "{clibraries}StdCLib.o" "{libraries}ToolLibs.o" PPCC = mrc PPCCOptions = -w 29,30,35 {ocamlgusiflag} -i ::config: {cdbgflag} PPCLinkOptions = -d {ldbgflag} PPCLibs = "{sharedlibraries}MathLib" "{ppclibraries}PPCCRuntime.o" "{ppclibraries}PPCToolLibs.o" "{sharedlibraries}StdCLib" "{ppclibraries}StdCRuntime.o" "{sharedlibraries}InterfaceLib" OBJS = :interp.a.o :misc.c.o :stacks.c.o :fix_code.c.o :startup.c.o :main.c.o :freelist.c.o :major_gc.c.o :minor_gc.c.o :memory.c.o :alloc.c.o :roots.c.o :fail.c.o :signals.c.o :compare.c.o :ints.c.o :floats.c.o :str.c.o :array.c.o :io.c.o :extern.c.o :intern.c.o :hash.c.o :sys.c.o :meta.c.o :parsing.c.o :gc_ctrl.c.o :terminfo.c.o :md5.c.o :obj.c.o :lexing.c.o :macintosh.c.o :rotatecursor.c.o :printexc.c.o :callback.c.o :debugger.c.o :weak.c.o :compact.c.o :instrtrace.c.o :finalise.c.o :custom.c.o :backtrace.c.o PPCOBJS = :interp.c.x :misc.c.x :stacks.c.x :fix_code.c.x :startup.c.x :main.c.x :freelist.c.x :major_gc.c.x :minor_gc.c.x :memory.c.x :alloc.c.x :roots.c.x :fail.c.x :signals.c.x :compare.c.x :ints.c.x :floats.c.x :str.c.x :array.c.x :io.c.x :extern.c.x :intern.c.x :hash.c.x :sys.c.x :meta.c.x :parsing.c.x :gc_ctrl.c.x :terminfo.c.x :md5.c.x :obj.c.x :lexing.c.x :macintosh.c.x :rotatecursor.c.x :printexc.c.x :callback.c.x :debugger.c.x :weak.c.x :compact.c.x :instrtrace.c.x :finalise.c.x :custom.c.x :backtrace.c.x PRIMS = alloc.c array.c compare.c extern.c floats.c gc_ctrl.c hash.c intern.c interp.c ints.c io.c lexing.c md5.c meta.c obj.c parsing.c signals.c str.c sys.c terminfo.c callback.c weak.c finalise.c PUBLIC_INCLUDES = mlvalues.h alloc.h misc.h callback.h fail.h custom.h all ocamlrun libcamlrun.o libcamlrun.x ocamlrun libcamlrun.x :prims.c.x ppclink -c 'MPS ' -t MPST {PPCLinkOptions} -o ocamlrun prims.c.x libcamlrun.x {PPCLibs} ocamlrun libcamlrun.o :prims.c.o ilink -c 'MPS ' -t MPST {LinkOptions} -o ocamlrun prims.c.o libcamlrun.o {libs} libcamlrun.x {PPCOBJS} ppclink {PPCLinkOptions} -xm library -o libcamlrun.x {PPCOBJS} libcamlrun.o {OBJS} lib -o libcamlrun.o {OBJS} install duplicate -y ocamlrun "{BINDIR}ocamlrun" duplicate -y libcamlrun.x libcamlrun.o "{LIBDIR}" if "`exists -d "{LIBDIR}caml:"`" == "" newfolder "{LIBDIR}caml:" end duplicate -y {PUBLIC_INCLUDES} "{LIBDIR}caml:" duplicate -y config.h "{LIBDIR}caml:" open -t "{LIBDIR}caml:config.h" find "{LIBDIR}caml:config.h" find /'#include 'Ű/ "{LIBDIR}caml:config.h" catenate ::config:m.h > "{LIBDIR}caml:config.h". find "{LIBDIR}caml:config.h" find /'#include 'Ű/ "{LIBDIR}caml:config.h" catenate ::config:s.h > "{LIBDIR}caml:config.h". find "{LIBDIR}caml:config.h" clear -c /'#include "'/ "{LIBDIR}caml:config.h" close -y "{LIBDIR}caml:config.h" duplicate -y memory.h "{LIBDIR}caml:" open -t "{LIBDIR}caml:memory.h" find "{LIBDIR}caml:memory.h" clear -c /'#include "''gc.h'/ "{LIBDIR}caml:memory.h" find "{LIBDIR}caml:memory.h" clear /'#define Alloc_small'/:/}/ "{LIBDIR}caml:memory.h" find "{LIBDIR}caml:memory.h" clear /'#define Modify'/:/}/ "{LIBDIR}caml:memory.h" close -y "{LIBDIR}caml:memory.h" clean delete -i .[ox] || set status 0 delete -i ocamlrun primitives prims.c opnames.h interp.a.lst delete -i ocamlrun.xcoff ocamlrun.dbg primitives {PRIMS} streamedit -d -e "/ ([a-z0-9_]+)0 *'(''* ML *'/ print 0" {PRIMS} > primitives :prims.c primitives begin echo '#include "mlvalues.h"' echo '#include "prims.h"' streamedit -e '1,$ change "extern value " . "();"' primitives echo 'c_primitive cprim [] = {' streamedit -e '1,$ change " " . ","' primitives echo '0 };' echo 'char * names_of_cprim [] = {' streamedit -e '1,$ change " "" . "","' primitives echo '0 };' end > prims.c :opnames.h :instruct.h streamedit -e "//'*'/ delete" -e "/enum / replace // 'char * names_of_'" -e '/{/ replace // "[] = {"' -e "1,$ replace /([A-Z][A-Z_0-9]*)0/ '"' 0 '"' -c " instruct.h > opnames.h :md5.c.x {PPCC} :md5.c -o :md5.c.x -opt off {PPCCOptions} -opt off :rotatecursor.c.o {C} -b rotatecursor.c -o rotatecursor.c.o {COptions} depend :prims.c :opnames.h begin makedepend -w -objext .x .c makedepend -w .c end | streamedit -e "/t/ replace // ' ' -c " > Makefile.Mac.depend