diff options
Diffstat (limited to 'Makefile.Mac')
| -rw-r--r-- | Makefile.Mac | 488 |
1 files changed, 0 insertions, 488 deletions
diff --git a/Makefile.Mac b/Makefile.Mac deleted file mode 100644 index 9fa3f69b66..0000000000 --- a/Makefile.Mac +++ /dev/null @@ -1,488 +0,0 @@ -######################################################################### -# # -# 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 Q Public License version 1.0. # -# # -######################################################################### - -# $Id$ - -# The main Makefile - -MacVersion = "Mac{MAJOR}.{MINOR}.{BUGFIX}{STAGE}{REV}" - -CAMLC = :boot:ocamlrun :boot:ocamlc -I :boot: -COMPFLAGS = {INCLUDES} -LINKFLAGS = -CAMLYACC = :boot:ocamlyacc -YACCFLAGS = -CAMLLEX = :boot:ocamlrun :boot:ocamllex -CAMLDEP = :boot:ocamlrun :tools:ocamldep -DEPFLAGS = {INCLUDES} -CAMLRUN = :byterun:ocamlrun - -INCLUDES = -I :utils: -I :parsing: -I :typing: -I :bytecomp: ¶ - -I :driver: -I :toplevel: - -UTILS = :utils:misc.cmo :utils:tbl.cmo :utils:config.cmo ¶ - :utils:clflags.cmo :utils:terminfo.cmo :utils:ccomp.cmo ¶ - :utils:warnings.cmo - -PARSING = :parsing:linenum.cmo :parsing:location.cmo :parsing:longident.cmo ¶ - :parsing:syntaxerr.cmo :parsing:parser.cmo ¶ - :parsing:lexer.cmo :parsing:parse.cmo :parsing:printast.cmo - -TYPING = :typing:ident.cmo :typing:path.cmo ¶ - :typing:primitive.cmo :typing:types.cmo ¶ - :typing:btype.cmo ¶ - :typing:subst.cmo :typing:predef.cmo ¶ - :typing:datarepr.cmo :typing:env.cmo ¶ - :typing:typedtree.cmo ¶ - :typing:ctype.cmo :typing:printtyp.cmo ¶ - :typing:includeclass.cmo ¶ - :typing:mtype.cmo :typing:includecore.cmo ¶ - :typing:includemod.cmo :typing:parmatch.cmo ¶ - :typing:typetexp.cmo :typing:typecore.cmo ¶ - :typing:typedecl.cmo :typing:typeclass.cmo ¶ - :typing:typemod.cmo - -COMP = :bytecomp:lambda.cmo :bytecomp:printlambda.cmo ¶ - :bytecomp:typeopt.cmo :bytecomp:switch.cmo :bytecomp:matching.cmo ¶ - :bytecomp:translobj.cmo :bytecomp:translcore.cmo ¶ - :bytecomp:translclass.cmo :bytecomp:translmod.cmo ¶ - :bytecomp:simplif.cmo :bytecomp:runtimedef.cmo - -BYTECOMP = :bytecomp:meta.cmo :bytecomp:instruct.cmo :bytecomp:bytegen.cmo ¶ - :bytecomp:printinstr.cmo :bytecomp:opcodes.cmo :bytecomp:emitcode.cmo ¶ - :bytecomp:bytesections.cmo :bytecomp:dll.cmo ¶ - :bytecomp:symtable.cmo :bytecomp:bytelink.cmo :bytecomp:bytelibrarian.cmo - -DRIVER = :driver:errors.cmo :driver:compile.cmo :driver:main_args.cmo ¶ - :driver:main.cmo - -TOPLEVEL = :driver:errors.cmo :driver:compile.cmo ¶ - :toplevel:genprintval.cmo :toplevel:toploop.cmo ¶ - :toplevel:trace.cmo :toplevel:topdirs.cmo - -TOPLEVELMAIN = :toplevel:topmain.cmo - -COMPOBJS = {UTILS} {PARSING} {TYPING} {COMP} {BYTECOMP} {DRIVER} - -TOPLIB = {UTILS} {PARSING} {TYPING} {COMP} {BYTECOMP} {TOPLEVEL} - -EXPUNGEOBJS = :utils:misc.cmo :utils:tbl.cmo ¶ - :utils:config.cmo :utils:clflags.cmo ¶ - :typing:ident.cmo :typing:path.cmo ¶ - :typing:types.cmo :typing:btype.cmo :typing:predef.cmo ¶ - :bytecomp:runtimedef.cmo :bytecomp:bytesections.cmo ¶ - :bytecomp:dll.cmo :bytecomp:symtable.cmo ¶ - :toplevel:expunge.cmo - -PERVASIVES = arg array buffer callback char digest filename format gc hashtbl ¶ - lexing list map obj parsing pervasives printexc printf queue random ¶ - set sort stack string stream sys oo genlex topdirs toploop weak lazy ¶ - marshal int32 int64 nativeint outcometree - -# Recompile the system using the bootstrap compiler -all Ä runtime ocamlc ocamllex ocamlyacc ocamltools library ocaml ¶ - otherlibraries camlp4out maccaml - -# The compilation of ocaml will fail if the runtime has changed. -# Never mind, just do make bootstrap to reach fixpoint again. - -# Compile everything the first time -world Ä - domake coldstart - domake all - -# Complete bootstrapping cycle -bootstrap Ä - # Save the original bootstrap compiler - domake backup - # Promote the new compiler but keep the old runtime - # This compiler runs on :boot:ocamlrun and produces bytecode for - # :byterun:ocamlrun - domake promote-cross - # Rebuild ocamlc and ocamllex (run on :byterun:ocamlrun) - domake partialclean - domake ocamlc ocamllex - # Rebuild the library (using :byterun:ocamlrun :ocamlc) - domake library-cross - # Promote the new compiler and the new runtime - domake promote - # Rebuild everything, including ocaml and the tools - domake partialclean - domake all - # Check if fixpoint reached - domake compare - -LIBFILES = :stdlib.cma :std_exit.cmo :Å.cmi camlheader - -# Start up the system from the distribution compiler -coldstart Ä - directory :byterun; domake all; directory :: - duplicate -y :byterun:ocamlrun :boot:ocamlrun - directory :yacc; domake all; directory :: - duplicate -y :yacc:ocamlyacc :boot:ocamlyacc - directory :stdlib - domake -d COMPILER=::boot:ocamlc all - duplicate -y {LIBFILES} ::boot: - directory :: - -# Build the core system: the minimum needed to make depend and bootstrap -core Ä runtime ocamlc ocamllex ocamlyacc ocamltools library - -# Save the current bootstrap compiler -backup Ä - if `exists -d :boot:Saved:` == "" - newfolder :boot:Saved: - end - move :boot:Saved: :boot:Saved.prev: - newfolder :boot:Saved: - move :boot:Saved.prev: :boot:Saved:Saved.prev: - duplicate -y :boot:ocamlrun :boot:Saved: - move :boot:ocamlc :boot:ocamllex :boot:ocamlyacc :boot:Saved: - directory :boot; duplicate -y {LIBFILES} :Saved:; directory :: - -# Promote the newly compiled system to the rank of cross compiler -# (Runs on the old runtime, produces code for the new runtime) -promote-cross Ä - duplicate -y :ocamlc :boot:ocamlc - duplicate -y :lex:ocamllex :boot:ocamllex - duplicate -y :yacc:ocamlyacc :boot:ocamlyacc - directory :stdlib - duplicate -y {LIBFILES} ::boot: || set status 0 - directory :: - -# Promote the newly compiled system to the rank of bootstrap compiler -# (Runs on the new runtime, produces code for the new runtime) -promote Ä promote-cross - duplicate -y :byterun:ocamlrun :boot:ocamlrun - -clean ÄÄ - delete -i :boot:Å.cm[aio] || set status 0 - delete -i :boot:camlheader :boot:ocamlrun :boot:ocamlyacc - -# Restore the saved bootstrap compiler if a problem arises -restore Ä - move -y :boot:Saved:Å :boot: - delete -y :boot:Saved: - move -y :boot:Saved.prev: :boot:Saved: - -# Check if fixpoint reached -compare Ä - set exit 0 - equal -q :boot:ocamlc :ocamlc && equal -q :boot:ocamllex :lex:ocamllex - if {status} - echo "¶nFixpoint not reached, try one more bootstrapping cycle.¶n" - else - echo "¶nFixpoint reached, bootstrap succeeded.¶n" - end - -# Remove old bootstrap compilers -cleanboot Ä - delete -i -y :boot:Saved:Saved.prev:Å || set status 0 - - -install Ä $OutOfDate - flush - for i in "{BINDIR}" "{LIBDIR}" "{APPLIDIR}" "{APPLIDIR}stdlib:" - if "`exists -d "{i}"`" == "" - newfolder "{i}" - end - end - directory :byterun: - domake install - directory :: - duplicate -y :ocamlc "{BINDIR}ocamlc" - duplicate -y :ocaml "{BINDIR}ocaml" - directory :stdlib: - domake install - directory :: - duplicate -y :lex:ocamllex "{BINDIR}ocamllex" - duplicate -y :yacc:ocamlyacc "{BINDIR}ocamlyacc" - duplicate -y toplevellib.cma expunge "{LIBDIR}" - duplicate -y :typing:outcometree.cmi :typing:outcometree.mli "{LIBDIR}" - duplicate -y :toplevel:topmain.cmo "{LIBDIR}topmain.cmo" - duplicate -y :toplevel:toploop.cmi :toplevel:topdirs.cmi "{LIBDIR}" - directory :tools: - domake install - directory :: - directory :camlp4: - execute :config:config.mpw - domake install -d LIBDIR="{LIBDIR}camlp4:" - directory :: - duplicate -y :man:ocaml.help "{HELPFILE}" - for i in {OTHERLIBRARIES} - directory :otherlibs:{i} - domake install - directory ::: - end - duplicate -y "{LIBDIR}"Å "{APPLIDIR}stdlib:" - duplicate -y :test:Moretest:graph_example.ml "{APPLIDIR}" - directory :maccaml: - domake install - directory :: - -clean ÄÄ partialclean - - -# The compiler - -ocamlc Ä {COMPOBJS} - {CAMLC} {LINKFLAGS} -o ocamlc {COMPOBJS} - -partialclean ÄÄ - delete -i ocamlc - - -# The toplevel - -ocaml Ä toplevellib.cma {TOPLEVELMAIN} expunge - {CAMLC} {LINKFLAGS} -linkall -o ocaml.tmp toplevellib.cma {TOPLEVELMAIN} - {CAMLRUN} :expunge ocaml.tmp ocaml {PERVASIVES} || set status 0 - delete -i ocaml.tmp - -toplevellib.cma Ä {TOPLIB} - {CAMLC} -a -o toplevellib.cma {TOPLIB} - -partialclean ÄÄ - delete -i ocaml toplevellib.cma - - -# The configuration file - -:utils:config.ml Ä :utils:config.mlp :config:config.Mac - delete -i :utils:config.ml - streamedit -e "/let version =/ replace /¶¶¶"°/ ¶"/{MacVersion}¶¶¶"¶"" ¶ - -e "1,$ replace /%%BYTERUN%%/ ¶"{BINDIR}ocamlrun¶"" ¶ - -e "1,$ replace /%%LIBDIR%%/ ¶"{LIBDIR}¶"" ¶ - -e "1,$ replace /%%EXT_OBJ%%/ '.o'" ¶ - -e "1,$ replace /%%EXT_LIB%%/ '.x'" ¶ - :utils:config.mlp > :utils:config.ml - -partialclean ÄÄ - delete -i :utils:config.ml - -beforedepend ÄÄ :utils:config.ml - - -# The parser - -:parsing:parser.mli Ä :parsing:parser.ml - echo -n - -:parsing:parser.ml Ä :parsing:parser.mly - {CAMLYACC} {YACCFLAGS} :parsing:parser.mly - -partialclean ÄÄ - delete -i :parsing:parser.mli :parsing:parser.ml :parsing:parser.output - -beforedepend ÄÄ :parsing:parser.mli :parsing:parser.ml - - -# The lexer - -:parsing:lexer.ml Ä :parsing:lexer.mll - streamedit -e "1,$ replace /¶¶''\223'¶¶'-¶¶''\246'¶¶'/ '' -c °" ¶ - -e "1,$ replace /¶¶''\248'¶¶'-¶¶''\255'¶¶'/ '' -c °" ¶ - -e "1,$ replace /¶¶''\192'¶¶'-¶¶''\214'¶¶'/ '' -c °" ¶ - -e "1,$ replace /¶¶''\216'¶¶'-¶¶''\222'¶¶'/ '' -c °" ¶ - -e "1,$ replace /¶¶''\216'¶¶'-¶¶''\246'¶¶'/ '' -c °" ¶ - <:parsing:lexer.mll >:parsing:lexer_tmp.mll - {CAMLLEX} :parsing:lexer_tmp.mll - rename -y :parsing:lexer_tmp.ml :parsing:lexer.ml - -partialclean ÄÄ - delete -i :parsing:lexer.ml - -beforedepend ÄÄ :parsing:lexer.ml - - -# The auxiliary lexer for counting line numbers - -:parsing:linenum.ml Ä :parsing:linenum.mll - {CAMLLEX} :parsing:linenum.mll - -partialclean ÄÄ - delete -i :parsing:linenum.ml - -beforedepend ÄÄ :parsing:linenum.ml - - -# The numeric opcodes - -:bytecomp:opcodes.ml Ä :byterun:instruct.h - :tools:make-opcodes.Mac :byterun:instruct.h :bytecomp:opcodes.ml - -partialclean ÄÄ - delete -i :bytecomp:opcodes.ml - -beforedepend ÄÄ :bytecomp:opcodes.ml - - -# The predefined exceptions and primitives - -:byterun:primitives Ä - directory :byterun: - domake primitives - directory :: - -:bytecomp:runtimedef.ml Ä :byterun:primitives :byterun:fail.h - (echo 'let builtin_exceptions = [|' ; ¶ - streamedit -d -e '/¶/¶* (¶"[A-Za-z_]*¶")¨0 ¶*¶/°/ print ¨0 ";"' :byterun:fail.h | ¶ - streamedit -e '$ replace /;°/ "|]"'; ¶ - echo 'let builtin_primitives = [|'; ¶ - streamedit -e "1,$ replace /(Å)¨0/ ' ¶"' ¨0 '¶";'" -e '$ replace /;°/ "|]"' :byterun:primitives; ¶ - ) > :bytecomp:runtimedef.ml - -partialclean ÄÄ - delete -i :bytecomp:runtimedef.ml - -beforedepend ÄÄ :bytecomp:runtimedef.ml - - -# The "expunge" utility - -expunge Ä {EXPUNGEOBJS} - {CAMLC} {LINKFLAGS} -o expunge {EXPUNGEOBJS} - -partialclean ÄÄ - delete -i expunge - - -# The runtime system for the bytecode compiler - -runtime Ä - directory :byterun:; domake all; directory :: -clean ÄÄ - directory :byterun:; domake clean; directory :: -alldepend ÄÄ - directory :byterun:; domake depend; directory :: - - -# The library - -library Ä ocamlc - directory :stdlib; domake all; directory :: -library-cross Ä - directory :stdlib; domake -d RUNTIME=::byterun:ocamlrun all; directory :: -partialclean ÄÄ - directory :stdlib; domake clean; directory :: -alldepend ÄÄ - directory :stdlib; domake depend; directory :: - - -# The lexer and parser generators - -ocamllex Ä ocamlyacc ocamlc - directory :lex; domake all; directory :: -partialclean ÄÄ - directory :lex; domake clean; directory :: -alldepend ÄÄ - directory :lex; domake depend; directory :: - -ocamlyacc Ä - directory :yacc; domake all; directory :: -clean ÄÄ - directory :yacc; domake clean; directory :: - - -# Tools - -ocamltools Ä ocamlc ocamlyacc ocamllex - directory :tools; domake all; directory :: -partialclean ÄÄ - directory :tools; domake clean; directory :: -alldepend ÄÄ - directory :tools; domake depend; directory :: - - -# The extra libraries - -otherlibraries Ä - for i in {OTHERLIBRARIES} - directory :otherlibs:{i}; domake all; directory ::: - end -partialclean ÄÄ - for i in {OTHERLIBRARIES} - directory :otherlibs:{i}; domake partialclean; directory ::: - end -clean ÄÄ - for i in {OTHERLIBRARIES} - directory :otherlibs:{i}; domake clean; directory ::: - end -alldepend ÄÄ - for i in {OTHERLIBRARIES} - directory :otherlibs:{i}; domake depend; directory ::: - end - - -# Camlp4 - -camlp4out Ä ocamlc - directory :camlp4: - execute :config:config.mpw - domake all - directory :: - -partialclean ÄÄ - directory :camlp4: - execute :config:config.mpw - domake clean - directory :: - -alldepend ÄÄ - directory :camlp4: - execute :config:config.mpw - domake depend - directory :: - -# The standalone application - -maccaml Ä - directory :maccaml:; domake all; directory :: -partialclean ÄÄ - directory :maccaml:; domake partialclean; directory :: -clean ÄÄ - directory :maccaml:; domake clean; directory :: -alldepend ÄÄ - directory :maccaml:; domake depend; directory :: - - -# Clean up the test directory - -clean ÄÄ - if `exists :test:` - directory :test:; domake clean; directory :: - end - - -# Default rules - -.cmo Ä .ml - {CAMLC} {COMPFLAGS} -c {depdir}{default}.ml - -.cmi Ä .mli - {CAMLC} {COMPFLAGS} -c {depdir}{default}.mli - -partialclean ÄÄ - for i in utils parsing typing bytecomp driver toplevel tools - delete -i :{i}:Å.cm[io] || set status 0 - end - -depend Ä beforedepend - for d in utils parsing typing bytecomp driver toplevel - {CAMLDEP} {DEPFLAGS} :{d}:Å.mli :{d}:Å.ml - end > Makefile.Mac.depend - -alldepend ÄÄ depend - - -# Make sure the config file was executed -dummy Ä {OTHERLIBRARIES} |
