Release coccinelle-0.2.4rc2
[bpt/coccinelle.git] / python / Makefile
CommitLineData
34e49164
C
1#############################################################################
2# Configuration section
3#############################################################################
4-include ../Makefile.config
5
6##############################################################################
7# Variables
8##############################################################################
9TARGET=coccipython
10
b1b2de81 11SOURCES= pycocci_aux.ml pycocci.ml
34e49164 12
413ffc02
C
13INCLUDEDIRS_LOCAL = ../commons ../commons/ocamlextra ../globals \
14 ../parsing_c ../parsing_cocci
15
90aeb998 16ifeq ("$(PYCAMLDIR)", "pycaml")
413ffc02
C
17INCLUDEDIRS_LOCAL += ../$(PYCAMLDIR)
18INCLUDEDIRS = $(INCLUDEDIRS_LOCAL)
90aeb998 19else
413ffc02 20INCLUDEDIRS = $(INCLUDEDIRS_LOCAL) $(PYCAMLDIR)
90aeb998 21endif
34e49164 22
90aeb998 23SYSLIBS = str.cma unix.cma pycaml.cma
b1b2de81 24LIBS=../commons/commons.cma ../globals/globals.cma
34e49164 25
34e49164
C
26##############################################################################
27# Generic variables
28##############################################################################
29
30INCLUDES=$(INCLUDEDIRS:%=-I %) $(INCLUDESEXTRA)
413ffc02 31INCLUDES_DEPEND=$(INCLUDEDIRS_LOCAL:%=-I %) $(INCLUDESEXTRA)
34e49164
C
32
33##############################################################################
34# Generic ocaml variables
35##############################################################################
36
37# The Caml compilers.
38OCAMLCFLAGS ?= -g -dtypes
39OCAMLC =ocamlc$(OPTBIN) $(OCAMLCFLAGS) $(INCLUDES)
40OCAMLOPT = ocamlopt$(OPTBIN) $(OPTFLAGS) $(INCLUDES)
413ffc02 41OCAMLDEP = ocamldep$(OPTBIN) $(INCLUDES_DEPEND)
34e49164
C
42
43
44##############################################################################
45# Top rules
46##############################################################################
47
48EXEC=$(TARGET).byte
49LIB=$(TARGET).cma
50OPTLIB=$(LIB:.cma=.cmxa)
51
52CTLEXEC=$(CTLTARGET)
53
54OBJS = $(SOURCES:.ml=.cmo)
55OPTOBJS = $(OBJS:.cmo=.cmx)
56
57CTLOBJS = $(CTLSOURCES:.ml=.cmo)
58CTLOPTOBJS = $(CTLOBJS:.cmo=.cmx)
59
60
61#all: $(EXEC) $(LIB)
62all: $(LIB)
63
64all.opt: $(OPTLIB)
65
66ctl: $(CTLEXEC)
67
68
69$(LIB): $(OBJS)
70 $(OCAMLC) -a -o $(LIB) $(OBJS)
71
72clean::
73 rm -f $(LIB)
74
75
b1b2de81 76$(OPTLIB): $(OPTOBJS)
34e49164
C
77 $(OCAMLOPT) -a -o $(OPTLIB) $(OPTOBJS)
78
79
80$(EXEC): $(OBJS) main.cmo $(LIBS)
81 $(OCAMLC) -o $(EXEC) $(SYSLIBS) $(LIBS) $(OBJS) main.cmo
82
83$(CTLEXEC): $(CTLOBJS) $(LIBS)
84 $(OCAMLC) -o $(CTLEXEC) $(SYSLIBS) $(LIBS) $(CTLOBJS)
85
86
87clean::
b1b2de81 88 rm -f $(OPTLIB) $(LIB:.cma=.a)
34e49164
C
89 rm -f $(TARGET) rm -f $(TARGET).byte
90 rm -f $(CTLTARGET)
91
92
93#pycocci.ml: ../pycaml/pycaml.ml ../pycaml/pycaml_ml.c
94#pycocci_aux.ml: ../pycaml/pycaml.ml ../pycaml/pycaml_ml.c
b1b2de81
C
95pycocci_aux.ml:
96 @echo "\n\n\t*** pycocci_aux.ml not found ! ***\n\n\tRun 'configure && make depend' first.\n\n"
34e49164
C
97
98rmlinks:
99 rm -f pycocci.ml pycocci_aux.ml
100
101##############################################################################
102# Generic ocaml rules
103##############################################################################
104
105.SUFFIXES:
106.SUFFIXES: .ml .mli .cmo .cmi .cmx
107
108.ml.cmo:
109 $(OCAMLC) -c $<
110
111.mli.cmi:
112 $(OCAMLC) -c $<
113
114.ml.cmx:
115 $(OCAMLOPT) -c $<
116
117
118# clean rule for others files
119clean::
120 rm -f *.cm[iox] *.o *.annot
b1b2de81
C
121 rm -f *~ .*~ #*#
122
123distclean::
413ffc02 124 $(MAKE) -C coccilib $@
b1b2de81 125 rm -f .depend
34e49164
C
126
127beforedepend:
128
129depend: beforedepend
130 $(OCAMLDEP) *.mli *.ml > .depend
131
b1b2de81 132.depend:
34e49164
C
133 $(OCAMLDEP) *.mli *.ml > .depend
134
135-include .depend