Coccinelle release 1.0.0-rc4
[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 \
90aeb998 18# sexp.mli path.mli conv.mli
b1b2de81
C
19
20
90aeb998 21TARGET=sexplib
b1b2de81 22TARGETPACK=sexplib
90aeb998 23LIB_PACK_NAME = Sexplib
b1b2de81
C
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
90aeb998 93all.opt: $(TARGET).cmxa $(TARGETPACK).cmx
b1b2de81
C
94
95$(TARGET).cma: $(OBJS)
90aeb998 96 $(OCAMLC) -a -o $@ $(OBJS)
b1b2de81
C
97
98$(TARGET).cmxa: $(OPTOBJS) $(LIBS:.cma=.cmxa)
90aeb998 99 $(OCAMLOPT) -a -o $@ $(OPTOBJS)
b1b2de81
C
100
101$(TARGET).top: $(OBJS) $(LIBS)
102 $(OCAMLMKTOP) -o $(TARGET).top $(SYSLIBS) $(LIBS) $(OBJS)
103
104clean::
105 rm -f $(TARGET).top
106
b1b2de81 107$(TARGETPACK).cmo: $(OBJS)
90aeb998
C
108 $(OCAMLC) -pack -o $@ $(OBJS)
109
110$(TARGETPACK).cmx: $(OPTOBJS)
111 $(OCAMLOPT) -pack -o $@ $(OPTOBJS)
b1b2de81
C
112
113# special handling, fun that they use cpp whereas they claim camplp4 can do everything
114pre_sexp.cmo: pre_sexp.ml
708f4980 115 $(OCAMLC) -pp "cpp -w" -c $<
b1b2de81
C
116
117pre_sexp.cmx: pre_sexp.ml
90aeb998 118 $(OCAMLOPT) -for-pack $(LIB_PACK_NAME) -pp "cpp -w" -c $<
b1b2de81
C
119
120
121
122lexer.ml: lexer.mll
123 $(OCAMLLEX) $<
124clean::
125 rm -f lexer.ml
126beforedepend:: lexer.ml
127
128
129parser.ml parser.mli: parser.mly
130 $(OCAMLYACC) $<
131clean::
132 rm -f parser.ml parser.mli parser.output
133beforedepend:: parser.ml parser.mli
134
135
136
137##############################################################################
138# Generic rules
139##############################################################################
140
141.SUFFIXES: .ml .mli .cmo .cmi .cmx
142
143.ml.cmo:
144 $(OCAMLC) -c $<
145.mli.cmi:
146 $(OCAMLC) -c $<
90aeb998 147
b1b2de81 148.ml.cmx:
90aeb998 149 $(OCAMLOPT) -for-pack $(LIB_PACK_NAME) -c $<
b1b2de81 150
90aeb998 151.ml.mldepend:
b1b2de81
C
152 $(OCAMLC) -i $<
153
154clean::
155 rm -f *.cm[ioxa] *.o *.a *.cmxa *.annot
156clean::
157 rm -f *~ .*~ gmon.out #*#
158
159beforedepend::
160
161# need also -pp cpp here
162depend:: beforedepend
708f4980 163 $(OCAMLDEP) -pp "cpp -w" *.mli *.ml > .depend
b1b2de81
C
164
165distclean: clean
166 rm -f .depend
167
168-include .depend