blob: 0c5d5984d665802fb05e6c3c3569661955fe1e91 (
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
129
130
131
132
133
134
135
136
137
138
139
|
!include ..\config\Makefile.nt
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 ocamlprof ocamlcp.exe ocamlmktop.exe
# The dependency generator
CAMLDEP=ocamldep.cmo
ocamldep: $(CAMLDEP)
$(CAMLC) $(LINKFLAGS) -o ocamldep misc.cmo $(CAMLDEP)
clean::
rm -f ocamldep
ocamldep.ml: ocamldep.mll
$(CAMLLEX) ocamldep.mll
clean::
rm -f ocamldep.ml
install::
cp ocamldep $(BINDIR)\ocamldep.exe
beforedepend:: ocamldep.ml
# The profiler
CSLPROF=ocamlprof.cmo
CSLPROF_IMPORTS=misc.cmo config.cmo clflags.cmo terminfo.cmo \
linenum.cmo location.cmo longident.cmo pstream.cmo \
parser.cmo lexer.cmo parse.cmo
ocamlprof: $(CSLPROF) profiling.cmo
$(CAMLC) $(LINKFLAGS) -o ocamlprof $(CSLPROF_IMPORTS) $(CSLPROF)
ocamlcp.exe: ocamlcp.cmo
$(CAMLC) $(LINKFLAGS) -o ocamlcp.exe ocamlcp.cmo
install::
cp ocamlprof $(BINDIR)\ocamlprof.exe
cp ocamlcp.exe $(BINDIR)\ocamlcp.exe
cp profiling.cmi profiling.cmo $(LIBDIR)
clean::
rm -f ocamlprof ocamlcp.exe
# To make custom toplevels
ocamlmktop.exe: ocamlmktop.cmo
$(CAMLC) $(LINKFLAGS) -o ocamlmktop.exe ocamlmktop.cmo
install::
cp ocamlmktop.exe $(BINDIR)\ocamlmktop.exe
clean::
rm -f ocamlmktop.exe
# The preprocessor for asm generators
CVT_EMIT=cvt_emit.cmo
cvt_emit: $(CVT_EMIT)
$(CAMLC) $(LINKFLAGS) -o cvt_emit $(CVT_EMIT)
clean::
rm -f cvt_emit
cvt_emit.ml: cvt_emit.mll
$(CAMLLEX) cvt_emit.mll
clean::
rm -f cvt_emit.ml
beforedepend:: cvt_emit.ml
# The bytecode disassembler
DUMPOBJ=opnames.cmo dumpobj.cmo
dumpobj: $(DUMPOBJ)
$(CAMLC) $(LINKFLAGS) -o dumpobj misc.cmo tbl.cmo config.cmo ident.cmo opcodes.cmo runtimedef.cmo $(DUMPOBJ)
clean::
rm -f dumpobj
opnames.ml: ..\byterun\instruct.h
sed -e '/\/\*/d' \
-e 's\enum \(.*\) {/let names_of_\1 = [|/' \
-e 's/};$$/ |]/' \
-e 's/\([A-Z][A-Z_0-9a-z]*\)/"\1"/g' \
-e 's/,/;/g' \
..\byterun\instruct.h > opnames.ml
clean::
rm -f opnames.ml
beforedepend:: opnames.ml
# Dump .cmx files
dumpapprox: dumpapprox.cmo
$(CAMLC) $(LINKFLAGS) -o dumpapprox config.cmo dumpapprox.cmo
clean::
rm -f dumpapprox
# Print imported interfaces for .cmo files
objinfo: objinfo.cmo
$(CAMLC) $(LINKFLAGS) -o objinfo config.cmo objinfo.cmo
clean::
rm -f objinfo
# Common stuff
.SUFFIXES:
.SUFFIXES: .ml .cmo .mli .cmi
.ml.cmo:
$(CAMLC) -c $(COMPFLAGS) $<
.mli.cmi:
$(CAMLC) -c $(COMPFLAGS) $<
clean::
rm -f *.cmo *.cmi
depend: beforedepend
$(CAMLRUN) .\ocamldep $(INCLUDES) *.mli *.ml > .depend
!include .depend
|