Release of coccinelle 1.0.0-rc9
[bpt/coccinelle.git] / extra / Makefile
1 -include ../Makefile.config
2
3 TARGET=extra
4
5 SOURCES = classic_patch.ml kbuild.ml maintainers.ml
6
7 SYSLIBS = str.cma unix.cma
8
9 LIBS=../commons/commons.cma ../parsing_c/parsing_c.cma ../globals/globals.cma
10 INCLUDES= -I ../commons -I ../globals -I ../parsing_cocci -I ../parsing_c
11
12 #for warning: -w A
13 #for profiling: -p -inline 0 with OCAMLOPT
14 OCAMLCFLAGS ?= -g -dtypes
15 OCAMLC =ocamlc$(OPTBIN) $(OCAMLCFLAGS) $(INCLUDES)
16 OCAMLOPT = ocamlopt$(OPTBIN) $(OPTFLAGS) $(INCLUDES)
17 OCAMLDEP = ocamldep$(OPTBIN) $(INCLUDES)
18 OCAMLMKTOP=ocamlmktop -g -custom $(INCLUDES)
19
20
21 OBJS = $(SOURCES:.ml=.cmo)
22 OPTOBJS = $(SOURCES:.ml=.cmx)
23
24
25 all: $(TARGET).cma
26
27 all.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
44 clean::
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
58 .ml.mldepend:
59 $(OCAMLC) -i $<
60
61 clean::
62 rm -f *.cm[ioxa] *.o *.a *.cmxa *.annot
63 rm -f *~ .*~ gmon.out #*#
64
65 distclean::
66 rm -f .depend
67
68 beforedepend::
69
70 depend:: beforedepend
71 $(OCAMLDEP) *.mli *.ml > .depend
72
73 -include .depend
74
75