Release coccinelle-0.2.0
[bpt/coccinelle.git] / globals / Makefile
1 # Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
2 # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
3 # This file is part of Coccinelle.
4 #
5 # Coccinelle is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation, according to version 2 of the License.
8 #
9 # Coccinelle is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with Coccinelle. If not, see <http://www.gnu.org/licenses/>.
16 #
17 # The authors reserve the right to distribute this or future versions of
18 # Coccinelle under other licenses.
19
20
21
22 -include ../Makefile.config
23
24 ##############################################################################
25 # Variables
26 ##############################################################################
27 TARGET=globals
28
29 SRC= flag.ml config.ml
30
31 LIBS=
32 INCLUDES=
33
34 ##############################################################################
35 # Generic variables
36 ##############################################################################
37 OCAMLCFLAGS ?= -g -dtypes
38 OCAMLC =ocamlc$(OPTBIN) $(OCAMLCFLAGS) $(INCLUDES)
39 OCAMLOPT = ocamlopt$(OPTBIN) $(OPTFLAGS) $(INCLUDES)
40 OCAMLDEP = ocamldep$(OPTBIN) $(INCLUDES)
41 OCAMLMKTOP=ocamlmktop -g -custom $(INCLUDES)
42
43 OBJS= $(SRC:.ml=.cmo)
44 OPTOBJS= $(SRC:.ml=.cmx)
45
46
47 ##############################################################################
48 # Top rules
49 ##############################################################################
50 all: $(TARGET).cma
51
52 all.opt: $(TARGET).cmxa
53
54 $(TARGET).cma: $(OBJS) $(LIBS)
55 $(OCAMLC) -a -o $(TARGET).cma $(OBJS)
56
57 $(TARGET).cmxa: $(OPTOBJS) $(LIBS:.cma=.cmxa)
58 $(OCAMLOPT) -a -o $(TARGET).cmxa $(OPTOBJS)
59
60
61
62 ##############################################################################
63 # Developer rules
64 ##############################################################################
65 .SUFFIXES: .ml .mli .cmo .cmi .cmx
66
67 .ml.cmo:
68 $(OCAMLC) -c $<
69 .mli.cmi:
70 $(OCAMLC) -c $<
71 .ml.cmx:
72 $(OCAMLOPT) -c $<
73
74 .ml.mldepend:
75 $(OCAMLC) -i $<
76
77 clean::
78 rm -f *.cm[ioxa] *.o *.a *.cmxa *.annot
79 rm -f *~ .*~ gmon.out #*#
80
81 distclean::
82 rm -f .depend
83
84 beforedepend::
85
86 depend:: beforedepend
87 $(OCAMLDEP) *.mli *.ml > .depend
88
89 -include .depend
90
91
92
93