summaryrefslogtreecommitdiff
path: root/tools/Makefile.Mac
blob: 6438d2cf6672b470f6ba9dd44c85d19d49357196 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#########################################################################
#                                                                       #
#                            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$

CAMLRUN = ::boot:ocamlrun
CAMLC = {CAMLRUN} ::boot:ocamlc -I ::boot:
CAMLLEX = {CAMLRUN} ::boot:ocamllex
INCLUDES = -I ::utils: -I ::parsing: -I ::typing: -I ::bytecomp: -I ::asmcomp:
COMPFLAGS = {INCLUDES}
LINKFLAGS = {INCLUDES}

all Ä ocamldep ocamldumpobj

# The dependency generator

CAMLDEP_IMPORTS = misc.cmo formatmsg.cmo config.cmo clflags.cmo terminfo.cmo ¶
   linenum.cmo warnings.cmo location.cmo longident.cmo pstream.cmo ¶
   syntaxerr.cmo parser.cmo lexer.cmo parse.cmo

CAMLDEP = ocamldep.cmo

ocamldep Ä {CAMLDEP}
    {CAMLC} {LINKFLAGS} -o ocamldep {CAMLDEP_IMPORTS} {CAMLDEP}

clean ÄÄ
    delete -i ocamldep

install ÄÄ
    duplicate -y OCamlDep "{BINDIR}OCamlDep"

# The profiler  (not available on MacOS for the moment)
#
#CSLPROF = ocamlprof.cmo
#CSLPROF_IMPORTS = misc.cmo formatmsg.cmo config.cmo clflags.cmo terminfo.cmo ¶
#  linenum.cmo warnings.cmo location.cmo longident.cmo pstream.cmo ¶
#  syntaxerr.cmo parser.cmo lexer.cmo parse.cmo
#
#ocamlprof Ä {CSLPROF} profiling.cmo
#   {CAMLC} {LINKFLAGS} -o ocamlprof {CSLPROF_IMPORTS} {CSLPROF}
#
#install ÄÄ
#   duplicate -y ocamlprof "{BINDIR}ocamlprof"
#   duplicate -y ocamlcp "{BINDIR}ocamlcp"
#   duplicate -y profiling.cmi profiling.cmo "{LIBDIR}"
#
#clean ÄÄ
#   delete -i ocamlprof

# To make custom toplevels

install ÄÄ
    duplicate -y ocamlmktop.tpl "{BINDIR}ocamlmktop"
    duplicate -y ocamlc-custom "{BINDIR}ocamlc-custom"

# The bytecode disassembler

DUMPOBJ = opnames.cmo dumpobj.cmo

ocamldumpobj Ä {DUMPOBJ}
    {CAMLC} {LINKFLAGS} -o ocamldumpobj ¶
            misc.cmo formatmsg.cmo tbl.cmo config.cmo ident.cmo opcodes.cmo ¶
            {DUMPOBJ}

clean ÄÄ
    delete -i OCamlDumpObj

opnames.ml Ä ::byterun:instruct.h
    streamedit -e '/¶/¶*/ delete' ¶
           -e '/enum (Å)¨0 {/ replace // "let names_of_" ¨0 "= [|"' ¶
           -e '/};°/ replace // "|]"' ¶
           -e '/([A-Z][A-Z_0-9a-z]*)¨0/ replace // "¶"" ¨0 "¶"" -c °' ¶
           -e '/,/ replace // ";" -c °' ¶
           ::byterun:instruct.h > opnames.ml

clean ÄÄ
    delete -i opnames.ml

beforedepend ÄÄ opnames.ml

# Dump .cmx files

dumpapprox Ä dumpapprox.cmo
    {CAMLC} {LINKFLAGS} -o dumpapprox config.cmo dumpapprox.cmo

clean ÄÄ
    delete -i dumpapprox

# Print imported interfaces for .cmo files

objinfo Ä objinfo.cmo
    {CAMLC} {LINKFLAGS} -o objinfo config.cmo objinfo.cmo

clean ÄÄ
    delete -i objinfo

# Common stuff

.cmo Ä .ml
    {CAMLC} -c {COMPFLAGS} {default}.ml

.cmi Ä .mli
    {CAMLC} -c {COMPFLAGS} {default}.mli

clean ÄÄ
    delete -i Å.cm[io] || set status 0

depend Ä beforedepend
    {CAMLRUN} :ocamldep {INCLUDES} Å.mli Å.ml > Makefile.Mac.depend

# Scan object files for required primitives

PRIMREQ=primreq.cmo

primreq Ä {PRIMREQ}
    {CAMLC} {LINKFLAGS} -o primreq config.cmo {PRIMREQ}
 
clean ÄÄ
    delete -i primreq