blob: 5fdf5a18461966ddb486415db5b026b398c2213f (
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
|
#########################################################################
# #
# OCaml #
# #
# Xavier Clerc, SED, INRIA Rocquencourt #
# #
# Copyright 2010 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. #
# #
#########################################################################
TOPDIR=$(BASEDIR)/..
WINTOPDIR=`cygpath -m "$(TOPDIR)"`
# TOPDIR is the root directory of the OCaml sources, in Unix syntax.
# WINTOPDIR is the same directory, in Windows syntax.
OTOPDIR=$(TOPDIR)
CTOPDIR=$(TOPDIR)
CYGPATH=echo
DIFF=diff -q
CANKILL=true
SORT=sort
SET_LD_PATH=CAML_LD_LIBRARY_PATH="$(LD_PATH)"
# The variables above may be overridden by .../config/Makefile
# OTOPDIR is either TOPDIR or WINTOPDIR, whichever is appropriate for
# arguments given to the OCaml compiler.
# CTOPDIR is either TOPDIR or WINTOPDIR, whichever is appropriate for
# arguments given to the C and Fortran compilers.
# CYGPATH is the command that translates unix-style file names into
# whichever syntax is appropriate for arguments of OCaml programs.
# DIFF is a "diff -q" command that ignores trailing CRs under Windows.
# CANKILL is true if a script launched by Make can kill an OCaml process,
# and false for the mingw and MSVC ports.
# SORT is the Unix "sort" command. Usually a simple command, but may be an
# absolute name if the Windows "sort" command is in the PATH.
# SET_LD_PATH is a command prefix that sets the path for dynamic libraries
# (CAML_LD_LIBRARY_PATH for Unix, PATH for Windows) using the LD_PATH shell
# variable. Note that for Windows we add Unix-syntax directory names in
# PATH, and Cygwin will translate it to Windows syntax.
include $(TOPDIR)/config/Makefile
OCAMLRUN=$(TOPDIR)/boot/ocamlrun$(EXE)
OCFLAGS=-nostdlib -I $(OTOPDIR)/stdlib $(COMPFLAGS)
OCOPTFLAGS=
ifeq ($(SUPPORTS_SHARED_LIBRARIES),false)
CUSTOM = -custom
else
CUSTOM =
endif
OCAML=$(OCAMLRUN) $(OTOPDIR)/ocaml $(OCFLAGS) \
-init $(OTOPDIR)/testsuite/lib/empty
OCAMLC=$(OCAMLRUN) $(OTOPDIR)/ocamlc $(CUSTOM) $(OCFLAGS)
OCAMLOPT=$(OCAMLRUN) $(OTOPDIR)/ocamlopt $(OCFLAGS)
OCAMLDOC=$(OCAMLRUN) $(OTOPDIR)/ocamldoc/ocamldoc
OCAMLLEX=$(OCAMLRUN) $(OTOPDIR)/lex/ocamllex
OCAMLMKLIB=$(OCAMLRUN) $(OTOPDIR)/tools/ocamlmklib \
-ocamlc "$(OTOPDIR)/boot/ocamlrun$(EXE) \
$(OTOPDIR)/ocamlc $(OCFLAGS)" \
-ocamlopt "$(OTOPDIR)/boot/ocamlrun$(EXE) \
$(OTOPDIR)/ocamlopt $(OCFLAGS)"
OCAMLYACC=$(TOPDIR)/yacc/ocamlyacc$(EXE)
OCAMLBUILD=$(TOPDIR)/_build/ocamlbuild/ocamlbuild.native
DUMPOBJ=$(OCAMLRUN) $(OTOPDIR)/tool/dumpobj
BYTECODE_ONLY=[ "$(ARCH)" = "none" -o "$(ASM)" = "none" ]
#FORTRAN_COMPILER=
#FORTRAN_LIBRARY=
UNIXLIBVAR=`case "$(OTHERLIBRARIES)" in *win32unix*) echo win32;; esac`
defaultpromote:
@for file in *.reference; do \
cp `basename $$file reference`result $$file; \
done
defaultclean:
@rm -f *.cmo *.cmi *.cmx *.cma *.cmxa *.cmxs *.$(O) *.$(SO) *.$(A)
@for dsym in *.dSYM; do \
if [ -d $$dsym ]; then \
rm -fr $$dsym; \
fi \
done
.SUFFIXES:
.SUFFIXES: .mli .ml .mly .mll .cmi .cmo .cmx .cmm .cmxa .s .S .o .so .c .f
.mli.cmi:
@$(OCAMLC) -c $(ADD_COMPFLAGS) $<
.ml.cmi:
@$(OCAMLC) -c $(ADD_COMPFLAGS) $<
.ml.cmo:
@if [ -f $<i ]; then $(OCAMLC) -c $(ADD_COMPFLAGS) $<i; fi
@$(OCAMLC) -c $(ADD_COMPFLAGS) $<
.ml.cmx:
@$(OCAMLOPT) -c $(ADD_COMPFLAGS) $<
.cmx.so:
@$(OCAMLOPT) -o $@ -shared $(ADD_COMPFLAGS) $<
.cmxa.so:
@$(OCAMLOPT) -o $@ -shared -linkall $(ADD_COMPFLAGS) $<
%.ml %.mli: %.mly
@$(OCAMLYACC) -q $< 2> /dev/null
.mll.ml:
@$(OCAMLLEX) -q $< > /dev/null
.cmm.o:
@$(OCAMLRUN) ./codegen $*.cmm > $*.s
@$(ASM) -o $*.o $*.s
.S.o:
@$(ASPP) $(ASPPFLAGS) -DSYS_$(SYSTEM) -o $*.o $*.S
.s.o:
@$(ASPP) $(ASPPFLAGS) -DSYS_$(SYSTEM) -o $*.o $*.s
.c.o:
@$(CC) -c -I$(CTOPDIR)/byterun $*.c -o $*.$(O)
.f.o:
@$(FORTRAN_COMPILER) -c -I$(CTOPDIR)/byterun $*.f -o $*.$(O)
|