Commit | Line | Data |
---|---|---|
34e49164 C |
1 | ############################################################################# |
2 | # Configuration section | |
3 | ############################################################################# | |
4 | -include ../Makefile.config | |
5 | ||
6 | ############################################################################## | |
7 | # Variables | |
8 | ############################################################################## | |
9 | TARGET=coccipython | |
10 | ||
b1b2de81 | 11 | SOURCES= pycocci_aux.ml pycocci.ml |
34e49164 | 12 | |
413ffc02 C |
13 | INCLUDEDIRS_LOCAL = ../commons ../commons/ocamlextra ../globals \ |
14 | ../parsing_c ../parsing_cocci | |
15 | ||
90aeb998 | 16 | ifeq ("$(PYCAMLDIR)", "pycaml") |
413ffc02 C |
17 | INCLUDEDIRS_LOCAL += ../$(PYCAMLDIR) |
18 | INCLUDEDIRS = $(INCLUDEDIRS_LOCAL) | |
90aeb998 | 19 | else |
413ffc02 | 20 | INCLUDEDIRS = $(INCLUDEDIRS_LOCAL) $(PYCAMLDIR) |
90aeb998 | 21 | endif |
34e49164 | 22 | |
90aeb998 | 23 | SYSLIBS = str.cma unix.cma pycaml.cma |
b1b2de81 | 24 | LIBS=../commons/commons.cma ../globals/globals.cma |
34e49164 | 25 | |
34e49164 C |
26 | ############################################################################## |
27 | # Generic variables | |
28 | ############################################################################## | |
29 | ||
30 | INCLUDES=$(INCLUDEDIRS:%=-I %) $(INCLUDESEXTRA) | |
413ffc02 | 31 | INCLUDES_DEPEND=$(INCLUDEDIRS_LOCAL:%=-I %) $(INCLUDESEXTRA) |
34e49164 C |
32 | |
33 | ############################################################################## | |
34 | # Generic ocaml variables | |
35 | ############################################################################## | |
36 | ||
37 | # The Caml compilers. | |
38 | OCAMLCFLAGS ?= -g -dtypes | |
39 | OCAMLC =ocamlc$(OPTBIN) $(OCAMLCFLAGS) $(INCLUDES) | |
40 | OCAMLOPT = ocamlopt$(OPTBIN) $(OPTFLAGS) $(INCLUDES) | |
413ffc02 | 41 | OCAMLDEP = ocamldep$(OPTBIN) $(INCLUDES_DEPEND) |
34e49164 C |
42 | |
43 | ||
44 | ############################################################################## | |
45 | # Top rules | |
46 | ############################################################################## | |
47 | ||
48 | EXEC=$(TARGET).byte | |
49 | LIB=$(TARGET).cma | |
50 | OPTLIB=$(LIB:.cma=.cmxa) | |
51 | ||
52 | CTLEXEC=$(CTLTARGET) | |
53 | ||
54 | OBJS = $(SOURCES:.ml=.cmo) | |
55 | OPTOBJS = $(OBJS:.cmo=.cmx) | |
56 | ||
57 | CTLOBJS = $(CTLSOURCES:.ml=.cmo) | |
58 | CTLOPTOBJS = $(CTLOBJS:.cmo=.cmx) | |
59 | ||
60 | ||
61 | #all: $(EXEC) $(LIB) | |
62 | all: $(LIB) | |
63 | ||
64 | all.opt: $(OPTLIB) | |
65 | ||
66 | ctl: $(CTLEXEC) | |
67 | ||
68 | ||
69 | $(LIB): $(OBJS) | |
70 | $(OCAMLC) -a -o $(LIB) $(OBJS) | |
71 | ||
72 | clean:: | |
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 | ||
87 | clean:: | |
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 |
95 | pycocci_aux.ml: |
96 | @echo "\n\n\t*** pycocci_aux.ml not found ! ***\n\n\tRun 'configure && make depend' first.\n\n" | |
34e49164 C |
97 | |
98 | rmlinks: | |
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 | |
119 | clean:: | |
120 | rm -f *.cm[iox] *.o *.annot | |
b1b2de81 C |
121 | rm -f *~ .*~ #*# |
122 | ||
123 | distclean:: | |
413ffc02 | 124 | $(MAKE) -C coccilib $@ |
b1b2de81 | 125 | rm -f .depend |
34e49164 C |
126 | |
127 | beforedepend: | |
128 | ||
129 | depend: beforedepend | |
130 | $(OCAMLDEP) *.mli *.ml > .depend | |
131 | ||
b1b2de81 | 132 | .depend: |
34e49164 C |
133 | $(OCAMLDEP) *.mli *.ml > .depend |
134 | ||
135 | -include .depend |