blob: 87cada26c4fb87971f2d4ffc5cace9022d9082de (
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
|
!include ..\config\Makefile.nt
CAMLRUN=..\boot\cslrun
CAMLC=$(CAMLRUN) ..\boot\cslc -I ..\boot
CAMLLEX=$(CAMLRUN) ..\boot\csllex
INCLUDES=-I ..\utils -I ..\parsing -I ..\typing -I ..\bytecomp -I ..\asmcomp
COMPFLAGS=$(INCLUDES)
LINKFLAGS=$(INCLUDES)
all: csldep cslprof
# The dependency generator
CAMLDEP=csldep.cmo
csldep: $(CAMLDEP)
$(CAMLC) $(LINKFLAGS) -o csldep misc.cmo $(CAMLDEP)
clean::
rm -f csldep
csldep.ml: csldep.mll
$(CAMLLEX) csldep.mll
clean::
rm -f csldep.ml
install::
cp csldep $(BINDIR)\csldep.exe
beforedepend:: csldep
# The profiler
CSLPROF=cslprof.cmo
CSLPROF_IMPORTS=misc.cmo config.cmo clflags.cmo terminfo.cmo \
location.cmo longident.cmo pstream.cmo parser.cmo lexer.cmo parse.cmo
cslprof: $(CSLPROF) profiling.cmo
$(CAMLC) $(LINKFLAGS) -o cslprof $(CSLPROF_IMPORTS) $(CSLPROF)
install::
cp cslprof $(BINDIR)\cslprof.exe
cp cslcp $(BINDIR)\cslcp
cp profiling.cmi profiling.cmo $(LIBDIR)
clean::
rm -f cslprof
# To make custom toplevels
install::
cp cslmktop $(BINDIR)\cslmktop
# 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) .\csldep $(INCLUDES) *.mli *.ml > .depend
!include .depend
|