Commit | Line | Data |
---|---|---|
174d1640 C |
1 | ############################################################################## |
2 | # Variables | |
3 | ############################################################################## | |
feec80c3 C |
4 | |
5 | ifneq ($(MAKECMDGOALS),distclean) | |
6 | include ../Makefile.config | |
7 | endif | |
8 | ||
9 | include Makefile.doc | |
174d1640 C |
10 | |
11 | TARGET=cocciocaml | |
12 | ||
17ba0788 | 13 | SRC=coccilib.ml ocamlcocci_aux.ml $(OCAMLCOCCI_FILE) prepare_ocamlcocci.ml run_ocamlcocci.ml |
174d1640 C |
14 | |
15 | #LIBS=../commons/commons.cma ../parsing_c/parsing_c.cma | |
16 | #INCLUDES= -I ../commons -I ../parsing_c | |
17 | INCLUDES = -I ../commons -I ../commons/ocamlextra -I ../globals \ | |
18 | -I ../parsing_cocci -I ../parsing_c | |
19 | LIBS=../commons/commons.cma ../globals/globals.cma \ | |
20 | ../parsing_c/parsing_c.cma ../parsing_cocci/cocci_parser.cma | |
21 | ||
22 | SYSLIBS= str.cma unix.cma | |
23 | ||
24 | ############################################################################## | |
25 | # Generic variables | |
26 | ############################################################################## | |
27 | ||
28 | #for warning: -w A | |
29 | #for profiling: -p -inline 0 with OCAMLOPT | |
30 | OCAMLCFLAGS ?= -g -dtypes | |
d6ce1786 | 31 | OPTFLAGS ?= -g -dtypes |
174d1640 | 32 | |
d6ce1786 C |
33 | OCAMLC_CMD=$(OCAMLC) -thread $(OCAMLCFLAGS) $(INCLUDES) |
34 | OCAMLOPT_CMD=$(OCAMLOPT) -thread $(OPTFLAGS) $(INCLUDES) | |
feec80c3 C |
35 | OCAMLDEP_CMD=$(OCAMLDEP) $(INCLUDES) |
36 | OCAMLMKTOP_CMD=$(OCAMLMKTOP) -g -custom $(INCLUDES) | |
174d1640 C |
37 | |
38 | OBJS = $(SRC:.ml=.cmo) | |
39 | OPTOBJS = $(SRC:.ml=.cmx) | |
40 | ||
41 | ||
42 | ############################################################################## | |
43 | # Top rules | |
44 | ############################################################################## | |
45 | all: $(TARGET).cma | |
d6ce1786 C |
46 | all.opt: |
47 | @$(MAKE) $(TARGET).cmxa BUILD_OPT=yes | |
174d1640 C |
48 | |
49 | $(TARGET).cma: $(OBJS) | |
feec80c3 | 50 | $(OCAMLC_CMD) -a -o $(TARGET).cma $(OBJS) |
174d1640 C |
51 | |
52 | $(TARGET).cmxa: $(OPTOBJS) $(LIBS:.cma=.cmxa) | |
feec80c3 | 53 | $(OCAMLOPT_CMD) -a -o $(TARGET).cmxa $(OPTOBJS) |
174d1640 C |
54 | |
55 | $(TARGET).top: $(OBJS) $(LIBS) | |
feec80c3 | 56 | $(OCAMLMKTOP_CMD) -o $(TARGET).top $(SYSLIBS) $(LIBS) $(OBJS) |
174d1640 C |
57 | |
58 | clean:: | |
59 | rm -f $(TARGET).top | |
60 | ||
61 | ||
62 | ||
63 | ############################################################################## | |
64 | # Pad's rules | |
65 | ############################################################################## | |
66 | ||
67 | ############################################################################## | |
68 | # Generic rules | |
69 | ############################################################################## | |
70 | ||
71 | .SUFFIXES: .ml .mli .cmo .cmi .cmx | |
72 | ||
73 | .ml.cmo: | |
feec80c3 | 74 | $(OCAMLC_CMD) -c $< |
174d1640 | 75 | .mli.cmi: |
feec80c3 | 76 | $(OCAMLC_CMD) -c $< |
174d1640 | 77 | .ml.cmx: |
feec80c3 | 78 | $(OCAMLOPT_CMD) -c $< |
174d1640 C |
79 | |
80 | .ml.mldepend: | |
feec80c3 | 81 | $(OCAMLC_CMD) -i $< |
174d1640 C |
82 | |
83 | clean:: | |
84 | rm -f *.cm[ioxa] *.o *.a *.cmxa *.annot | |
85 | rm -f *~ .*~ gmon.out #*# | |
174d1640 C |
86 | rm -f .depend |
87 | ||
feec80c3 | 88 | distclean: clean |
174d1640 | 89 | |
feec80c3 C |
90 | .depend depend: |
91 | $(OCAMLDEP_CMD) *.mli *.ml > .depend | |
174d1640 | 92 | |
feec80c3 C |
93 | ifneq ($(MAKECMDGOALS),clean) |
94 | ifneq ($(MAKECMDGOALS),distclean) | |
95 | ifneq ($(MAKECMDGOALS),cleandoc) | |
174d1640 | 96 | -include .depend |
feec80c3 C |
97 | endif |
98 | endif | |
99 | endif | |
d6ce1786 C |
100 | |
101 | include ../Makefile.common |