Release coccinelle-0.2.0rc1
[bpt/coccinelle.git] / parsing_cocci / Makefile
CommitLineData
0708f913
C
1-include ../Makefile.config
2
34e49164
C
3TARGET=cocci_parser
4
5LEXER_SOURCES = lexer_cocci.mll
6SCRIPT_LEXER_SOURCES = lexer_script.mll
7PARSER_SOURCES = parser_cocci_menhir.mly
8SOURCES = flag_parsing_cocci.ml type_cocci.ml ast_cocci.ml ast0_cocci.ml \
b1b2de81 9pretty_print_cocci.ml unparse_ast0.ml visitor_ast0_types.ml \
34e49164
C
10visitor_ast.ml visitor_ast0.ml compute_lines.ml comm_assoc.ml \
11iso_pattern.ml iso_compile.ml single_statement.ml simple_assignments.ml \
978fd7e5
C
12ast0toast.ml check_meta.ml top_level.ml type_infer.ml \
13test_exps.ml unitary_ast0.ml arity.ml index.ml context_neg.ml \
0708f913 14adjust_pragmas.ml insert_plus.ml function_prototypes.ml \
34e49164
C
15unify_ast.ml semantic_cocci.ml data.ml free_vars.ml parse_aux.ml disjdistr.ml \
16$(LEXER_SOURCES:.mll=.ml) $(PARSER_SOURCES:.mly=.ml) \
17$(SCRIPT_LEXER_SOURCES:.mll=.ml) \
708f4980 18get_constants.ml get_constants2.ml adjacency.ml parse_cocci.ml
34e49164 19
b1b2de81 20LIBS=../commons/commons.cma ../globals/globals.cma
34e49164
C
21SYSLIBS = str.cma unix.cma
22
23#MENHIR_PATH=$(shell ocamlfind query menhirLib)
24MENHIR_PATH=../menhirlib
25
26INCLUDES = -I ../commons -I ../commons/ocamlextra -I ../globals \
27-I $(MENHIR_PATH)
28
29MENHIR=$(MENHIR_PATH)/menhirLib.cmo
30MENHIRO=$(MENHIR_PATH)/menhirLib.cmx
31
32
33# The Caml compilers.
34OCAMLCFLAGS ?= -g -dtypes
35OCAMLC =ocamlc$(OPTBIN) $(OCAMLCFLAGS) $(INCLUDES)
36OCAMLOPT = ocamlopt$(OPTBIN) $(OPTFLAGS) $(INCLUDES)
37OCAMLLEX = ocamllex$(OPTBIN)
38OCAMLYACC= menhir --table
0708f913 39OCAMLDEP = ocamldep$(OPTBIN) $(INCLUDES)
34e49164
C
40EXEC=$(TARGET).byte
41EXEC=$(TARGET)
42LIB=$(TARGET).cma
43OPTLIB=$(LIB:.cma=.cmxa)
44
45GENERATED= $(LEXER_SOURCES:.mll=.ml) $(SCRIPT_LEXER_SOURCES:.mll=.ml) \
46 $(PARSER_SOURCES:.mly=.ml) $(PARSER_SOURCES:.mly=.mli)
47OBJS = $(SOURCES:.ml=.cmo)
48OPTOBJS = $(OBJS:.cmo=.cmx)
49
50
51all: $(LIB)
52local: $(EXEC)
53
54all.opt: $(OPTLIB)
55
34e49164
C
56$(LIB): $(GENERATED) $(OBJS)
57 $(OCAMLC) -I $(MENHIR_PATH) -a -o $(LIB) $(MENHIR) $(OBJS)
58
59
b1b2de81 60$(OPTLIB): $(GENERATED) $(OPTOBJS)
34e49164
C
61 $(OCAMLOPT) -I $(MENHIR_PATH) -a -o $(OPTLIB) $(MENHIRO) $(OPTOBJS)
62
63
64$(EXEC): $(OBJS) main.cmo $(LIBS)
65 $(OCAMLC) -o $(EXEC) $(SYSLIBS) $(LIBS) $(OBJS) main.cmo
66
67
68
69
70clean::
71 rm -f $(LIB)
b1b2de81 72 rm -f $(OPTLIB) $(LIB:.cma=.a)
34e49164
C
73 rm -f $(TARGET)
74
75
76
77
78.SUFFIXES:
79.SUFFIXES: .ml .mli .cmo .cmi .cmx
80
81.ml.cmo:
82 $(OCAMLC) -c $<
83
84.mli.cmi:
85 $(OCAMLC) -c $<
86
87.ml.cmx:
88 $(OCAMLOPT) -c $<
89
90$(LEXER_SOURCES:.mll=.ml) : $(LEXER_SOURCES)
91 $(OCAMLLEX) $(LEXER_SOURCES)
92
93$(PARSER_SOURCES:.mly=.ml) $(PARSER_SOURCES:.mly=.mli) : $(PARSER_SOURCES)
94 $(OCAMLYACC) $(PARSER_SOURCES)
95
96$(SCRIPT_LEXER_SOURCES:.mll=.ml): $(SCRIPT_LEXER_SOURCES)
97 $(OCAMLLEX) $(SCRIPT_LEXER_SOURCES)
98
708f4980 99distclean::
34e49164
C
100 rm -f $(GENERATED)
101
102# clean rule for others files
103clean::
104 rm -f *.cm[iox] *.o *.annot
b1b2de81
C
105 rm -f *~ .*~ #*#
106
107distclean::
108 rm -f .depend
34e49164
C
109
110depend: $(GENERATED)
111 $(OCAMLDEP) *.mli *.ml > .depend
112
113.depend:
114 $(OCAMLDEP) *.mli *.ml > .depend
115
116-include .depend
117
118lexer_cocci.ml: lexer_cocci.mll
119parser_cocci_menhir.ml: parser_cocci_menhir.mly lexer_cocci.mll
120parser_cocci_menhir.mli: parser_cocci_menhir.mly lexer_cocci.mll
121lexer_script.ml: lexer_script.mll