Coccinelle release 1.0.0-rc13
[bpt/coccinelle.git] / ocaml / Makefile
CommitLineData
174d1640
C
1##############################################################################
2# Variables
3##############################################################################
feec80c3
C
4
5ifneq ($(MAKECMDGOALS),distclean)
6include ../Makefile.config
7endif
8
9include Makefile.doc
174d1640
C
10
11TARGET=cocciocaml
12
17ba0788 13SRC=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
17INCLUDES = -I ../commons -I ../commons/ocamlextra -I ../globals \
18 -I ../parsing_cocci -I ../parsing_c
19LIBS=../commons/commons.cma ../globals/globals.cma \
20 ../parsing_c/parsing_c.cma ../parsing_cocci/cocci_parser.cma
21
22SYSLIBS= str.cma unix.cma
23
24##############################################################################
25# Generic variables
26##############################################################################
27
28#for warning: -w A
29#for profiling: -p -inline 0 with OCAMLOPT
30OCAMLCFLAGS ?= -g -dtypes
d6ce1786 31OPTFLAGS ?= -g -dtypes
174d1640 32
d6ce1786
C
33OCAMLC_CMD=$(OCAMLC) -thread $(OCAMLCFLAGS) $(INCLUDES)
34OCAMLOPT_CMD=$(OCAMLOPT) -thread $(OPTFLAGS) $(INCLUDES)
feec80c3
C
35OCAMLDEP_CMD=$(OCAMLDEP) $(INCLUDES)
36OCAMLMKTOP_CMD=$(OCAMLMKTOP) -g -custom $(INCLUDES)
174d1640
C
37
38OBJS = $(SRC:.ml=.cmo)
39OPTOBJS = $(SRC:.ml=.cmx)
40
41
42##############################################################################
43# Top rules
44##############################################################################
45all: $(TARGET).cma
d6ce1786
C
46all.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
58clean::
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
83clean::
84 rm -f *.cm[ioxa] *.o *.a *.cmxa *.annot
85 rm -f *~ .*~ gmon.out #*#
174d1640
C
86 rm -f .depend
87
feec80c3 88distclean: clean
174d1640 89
feec80c3
C
90.depend depend:
91 $(OCAMLDEP_CMD) *.mli *.ml > .depend
174d1640 92
feec80c3
C
93ifneq ($(MAKECMDGOALS),clean)
94ifneq ($(MAKECMDGOALS),distclean)
95ifneq ($(MAKECMDGOALS),cleandoc)
174d1640 96-include .depend
feec80c3
C
97endif
98endif
99endif
d6ce1786
C
100
101include ../Makefile.common