1 -include ..
/Makefile.config
5 LEXER_SOURCES
= lexer_cocci.mll
6 SCRIPT_LEXER_SOURCES
= lexer_script.mll
7 PARSER_SOURCES
= parser_cocci_menhir.mly
8 SOURCES
= flag_parsing_cocci.ml type_cocci.ml ast_cocci.ml ast0_cocci.ml \
9 pretty_print_cocci.ml unparse_ast0.ml visitor_ast0_types.ml \
10 visitor_ast.ml visitor_ast0.ml compute_lines.ml comm_assoc.ml \
11 iso_pattern.ml iso_compile.ml single_statement.ml simple_assignments.ml \
12 ast0toast.ml check_meta.ml top_level.ml type_infer.ml \
13 test_exps.ml unitary_ast0.ml arity.ml index.ml context_neg.ml \
14 adjust_pragmas.ml insert_plus.ml function_prototypes.ml \
15 unify_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
) \
18 get_constants.ml get_constants2.ml adjacency.ml parse_cocci.ml
20 LIBS
=..
/commons
/commons.cma ..
/globals
/globals.cma
21 SYSLIBS
= str.cma unix.cma
23 #MENHIR_PATH=$(shell ocamlfind query menhirLib)
24 MENHIR_PATH
=..
/menhirlib
26 INCLUDES
= -I ..
/commons
-I ..
/commons
/ocamlextra
-I ..
/globals \
29 MENHIR
=$(MENHIR_PATH
)/menhirLib.cmo
30 MENHIRO
=$(MENHIR_PATH
)/menhirLib.cmx
34 OCAMLCFLAGS ?
= -g
-dtypes
35 OCAMLC
=ocamlc
$(OPTBIN
) $(OCAMLCFLAGS
) $(INCLUDES
)
36 OCAMLOPT
= ocamlopt
$(OPTBIN
) $(OPTFLAGS
) $(INCLUDES
)
37 OCAMLLEX
= ocamllex
$(OPTBIN
)
38 OCAMLYACC
= menhir
--table
39 OCAMLDEP
= ocamldep
$(OPTBIN
) $(INCLUDES
)
43 OPTLIB
=$(LIB
:.cma
=.cmxa
)
45 GENERATED
= $(LEXER_SOURCES
:.mll
=.ml
) $(SCRIPT_LEXER_SOURCES
:.mll
=.ml
) \
46 $(PARSER_SOURCES
:.mly
=.ml
) $(PARSER_SOURCES
:.mly
=.mli
)
47 OBJS
= $(SOURCES
:.ml
=.cmo
)
48 OPTOBJS
= $(OBJS
:.cmo
=.cmx
)
56 $(LIB
): $(GENERATED
) $(OBJS
)
57 $(OCAMLC
) -I
$(MENHIR_PATH
) -a
-o
$(LIB
) $(MENHIR
) $(OBJS
)
60 $(OPTLIB
): $(GENERATED
) $(OPTOBJS
)
61 $(OCAMLOPT
) -I
$(MENHIR_PATH
) -a
-o
$(OPTLIB
) $(MENHIRO
) $(OPTOBJS
)
64 $(EXEC
): $(OBJS
) main.cmo
$(LIBS
)
65 $(OCAMLC
) -o
$(EXEC
) $(SYSLIBS
) $(LIBS
) $(OBJS
) main.cmo
72 rm -f
$(OPTLIB
) $(LIB
:.cma
=.a
)
79 .SUFFIXES
: .ml .mli .cmo .cmi .cmx
90 $(LEXER_SOURCES
:.mll
=.ml
) : $(LEXER_SOURCES
)
91 $(OCAMLLEX
) $(LEXER_SOURCES
)
93 $(PARSER_SOURCES
:.mly
=.ml
) $(PARSER_SOURCES
:.mly
=.mli
) : $(PARSER_SOURCES
)
94 $(OCAMLYACC
) $(PARSER_SOURCES
)
96 $(SCRIPT_LEXER_SOURCES
:.mll
=.ml
): $(SCRIPT_LEXER_SOURCES
)
97 $(OCAMLLEX
) $(SCRIPT_LEXER_SOURCES
)
102 # clean rule for others files
104 rm -f
*.cm
[iox
] *.o
*.annot
111 $(OCAMLDEP
) *.mli
*.ml
> .depend
114 $(OCAMLDEP
) *.mli
*.ml
> .depend
118 lexer_cocci.ml
: lexer_cocci.mll
119 parser_cocci_menhir.ml
: parser_cocci_menhir.mly lexer_cocci.mll
120 parser_cocci_menhir.mli
: parser_cocci_menhir.mly lexer_cocci.mll
121 lexer_script.ml
: lexer_script.mll