Release coccinelle-0.1.8
[bpt/coccinelle.git] / ocamlsexp / Makefile
CommitLineData
b1b2de81
C
1##############################################################################
2# Variables
3##############################################################################
4
5SRC= \
6 type.ml \
7 parser.ml \
8 lexer.ml \
9 pre_sexp.ml \
10 sexp_intf.ml \
11 sexp.ml \
12 path.ml \
13 conv.ml \
14 conv_error.ml
15#SOURCES = \
16# parser.mly \
17# lexer.mll \
18# sexp.mli path.mli conv.mli
19
20
21TARGET=sexplib1
22TARGETPACK=sexplib
23#LIB_PACK_NAME = sexplib
24
25##############################################################################
26# Generic variables
27##############################################################################
28
29INCLUDES=
30#-I +camlp4
31SYSLIBS= str.cma unix.cma bigarray.cma num.cma
32#INCDIRS = +camlp4
33#pad: take care for bigarray otherwise get some caml_ba_get_1 error msg
34
35##############################################################################
36#OCAMLFLAGS = -for-pack Sexplib
37
38#PACKS = type-conv
39#RESULT = sexplib
40
41#TRASH = pa_sexp_conv.cmi pa_sexp_conv.cmo pa_sexp_conv.annot
42
43#all: \
44# pack-byte-code pack-native-code \
45# sexplib.cma sexplib.cmxa \
46# pa_sexp_conv.cmi pa_sexp_conv.cmo
47#
48#LIBINSTALL_FILES = \
49# sexp.mli path.mli conv.mli \
50# sexplib.cmi sexplib.cma sexplib.cmxa sexplib.a \
51# pa_sexp_conv.cmi pa_sexp_conv.cmo
52#
53#install: libinstall
54#uninstall: libuninstall
55#
56#clean:: clean-doc
57#
58#-include $(OCAMLMAKEFILE)
59
60##############################################################################
61
62##############################################################################
63# Generic variables
64##############################################################################
65
66#dont use -custom, it makes the bytecode unportable.
708f4980 67OCAMLCFLAGS ?= -g -dtypes # -w A
b1b2de81
C
68#-for-pack Sexplib
69
70# This flag is also used in subdirectories so don't change its name here.
71OPTFLAGS=
72
73
74OCAMLC=ocamlc$(OPTBIN) $(OCAMLCFLAGS) $(INCLUDES) $(SYSINCLUDES) -thread
75OCAMLOPT=ocamlopt$(OPTBIN) $(OPTFLAGS) $(INCLUDES) $(SYSINCLUDES) -thread
76OCAMLLEX=ocamllex #-ml # -ml for debugging lexer, but slightly slower
77OCAMLYACC=ocamlyacc -v
78OCAMLDEP=ocamldep $(INCLUDES)
79OCAMLMKTOP=ocamlmktop -g -custom $(INCLUDES) -thread
80
81#-ccopt -static
82STATIC=
83
84
85##############################################################################
86# Top rules
87##############################################################################
88
89OBJS = $(SRC:.ml=.cmo)
90OPTOBJS = $(SRC:.ml=.cmx)
91
92all: $(TARGET).cma $(TARGETPACK).cmo
93all.opt: $(TARGET).cmxa
94
95$(TARGET).cma: $(OBJS)
96 $(OCAMLC) -a -o $(TARGET).cma $(OBJS)
97
98$(TARGET).cmxa: $(OPTOBJS) $(LIBS:.cma=.cmxa)
99 $(OCAMLOPT) -a -o $(TARGET).cmxa $(OPTOBJS)
100
101$(TARGET).top: $(OBJS) $(LIBS)
102 $(OCAMLMKTOP) -o $(TARGET).top $(SYSLIBS) $(LIBS) $(OBJS)
103
104clean::
105 rm -f $(TARGET).top
106
107
108
109$(TARGETPACK).cmo: $(OBJS)
110 $(OCAMLC) -pack -o $(TARGETPACK).cmo $(OBJS)
111
112# special handling, fun that they use cpp whereas they claim camplp4 can do everything
113pre_sexp.cmo: pre_sexp.ml
708f4980 114 $(OCAMLC) -pp "cpp -w" -c $<
b1b2de81
C
115
116pre_sexp.cmx: pre_sexp.ml
708f4980 117 $(OCAMLOPT) -pp "cpp -w" -c $<
b1b2de81
C
118
119
120
121lexer.ml: lexer.mll
122 $(OCAMLLEX) $<
123clean::
124 rm -f lexer.ml
125beforedepend:: lexer.ml
126
127
128parser.ml parser.mli: parser.mly
129 $(OCAMLYACC) $<
130clean::
131 rm -f parser.ml parser.mli parser.output
132beforedepend:: parser.ml parser.mli
133
134
135
136##############################################################################
137# Generic rules
138##############################################################################
139
140.SUFFIXES: .ml .mli .cmo .cmi .cmx
141
142.ml.cmo:
143 $(OCAMLC) -c $<
144.mli.cmi:
145 $(OCAMLC) -c $<
146.ml.cmx:
147 $(OCAMLOPT) -c $<
148
149.ml.mldepend:
150 $(OCAMLC) -i $<
151
152clean::
153 rm -f *.cm[ioxa] *.o *.a *.cmxa *.annot
154clean::
155 rm -f *~ .*~ gmon.out #*#
156
157beforedepend::
158
159# need also -pp cpp here
160depend:: beforedepend
708f4980 161 $(OCAMLDEP) -pp "cpp -w" *.mli *.ml > .depend
b1b2de81
C
162
163distclean: clean
164 rm -f .depend
165
166-include .depend