Coccinelle release 1.0.0-rc1
[bpt/coccinelle.git] / extra / Makefile
CommitLineData
0708f913
C
1-include ../Makefile.config
2
34e49164
C
3TARGET=extra
4
1be43e12 5SOURCES = classic_patch.ml kbuild.ml maintainers.ml
34e49164 6
b1b2de81 7SYSLIBS = str.cma unix.cma
34e49164 8
b1b2de81 9LIBS=../commons/commons.cma ../parsing_c/parsing_c.cma ../globals/globals.cma
34e49164
C
10INCLUDES= -I ../commons -I ../globals -I ../parsing_cocci -I ../parsing_c
11
b1b2de81 12#for warning: -w A
34e49164
C
13#for profiling: -p -inline 0 with OCAMLOPT
14OCAMLCFLAGS ?= -g -dtypes
15OCAMLC =ocamlc$(OPTBIN) $(OCAMLCFLAGS) $(INCLUDES)
16OCAMLOPT = ocamlopt$(OPTBIN) $(OPTFLAGS) $(INCLUDES)
0708f913 17OCAMLDEP = ocamldep$(OPTBIN) $(INCLUDES)
34e49164
C
18OCAMLMKTOP=ocamlmktop -g -custom $(INCLUDES)
19
20
21OBJS = $(SOURCES:.ml=.cmo)
22OPTOBJS = $(SOURCES:.ml=.cmx)
23
24
25all: $(TARGET).cma
26
27all.opt: $(TARGET).cmxa
28
29$(TARGET).byte: $(OBJS) $(LIBS)
30 $(OCAMLC) -o $(TARGET).byte $(SYSLIBS) $(LIBS) $(OBJS)
31
32$(TARGET).opt: $(OPTOBJS) $(LIBS:.cma=.cmxa)
33 $(OCAMLOPT) -o $(TARGET).opt $(SYSLIBS:.cma=.cmxa) $(LIBS:.cma=.cmxa) $(OPTOBJS)
34
35$(TARGET).cma: $(OBJS)
36 $(OCAMLC) -a -o $(TARGET).cma $(OBJS)
37
38$(TARGET).cmxa: $(OPTOBJS) $(LIBS:.cma=.cmxa)
39 $(OCAMLOPT) -a -o $(TARGET).cmxa $(OPTOBJS)
40
41$(TARGET).top: $(OBJS) $(LIBS)
42 $(OCAMLMKTOP) -o $(TARGET).top $(SYSLIBS) $(LIBS) $(OBJS)
43
44clean::
45 rm -f $(TARGET).byte $(TARGET).opt rm -f $(TARGET).top
46
47
48
49.SUFFIXES: .ml .mli .cmo .cmi .cmx
50
51.ml.cmo:
52 $(OCAMLC) -c $<
53.mli.cmi:
54 $(OCAMLC) -c $<
55.ml.cmx:
56 $(OCAMLOPT) -c $<
57
b1b2de81 58.ml.mldepend:
34e49164
C
59 $(OCAMLC) -i $<
60
61clean::
62 rm -f *.cm[ioxa] *.o *.a *.cmxa *.annot
34e49164
C
63 rm -f *~ .*~ gmon.out #*#
64
b1b2de81
C
65distclean::
66 rm -f .depend
67
34e49164
C
68beforedepend::
69
70depend:: beforedepend
71 $(OCAMLDEP) *.mli *.ml > .depend
72
73-include .depend
74
75