| 1 | # Compile all .ml files against some base libraries |
| 2 | # (defined in the plugin as unix,str,nums and bigarray) |
| 3 | <**/*.ml>: use_base |
| 4 | |
| 5 | # |
| 6 | # Cocci sources and directories |
| 7 | # |
| 8 | |
| 9 | <commons>: include |
| 10 | <commons/ocamlextra>: include |
| 11 | <commons/ocollection>: include |
| 12 | |
| 13 | <globals>: include |
| 14 | <globals/regexp_pcre.ml>: use_pcre |
| 15 | |
| 16 | <parsing_cocci>: include |
| 17 | <parsing_cocci/parser_cocci_menhir.ml>: use_menhirLib, nowarn20 |
| 18 | |
| 19 | <parsing_c>: include |
| 20 | <ctl>: include |
| 21 | <engine>: include |
| 22 | <popl09>: include |
| 23 | <extra>: include |
| 24 | |
| 25 | <ocaml>: include |
| 26 | <ocaml/coccilib.ml{,i}>: use_pcre |
| 27 | |
| 28 | <python>: include |
| 29 | <python/yes_pycocci.ml>: thread, use_pycaml |
| 30 | |
| 31 | # some users have a symlink 'result' pointing to the outcome |
| 32 | # of the build, which causes troubles with the hygiene check. |
| 33 | <result>: -traverse |
| 34 | |
| 35 | |
| 36 | # |
| 37 | # Subdirectories |
| 38 | # |
| 39 | |
| 40 | <engine/engine.{cma,cmxa}>: use_pcre |
| 41 | <globals/globals.{cma,cmxa}>: use_pcre |
| 42 | <ocaml/ocaml.{cma,cmxa}>: use_pcre |
| 43 | <parsing_c/parsing_c.{cma,cmxa}>: use_pcre |
| 44 | <parsing_cocci/parsing_cocci.{cma,cmxa}>: use_pcre, use_menhirLib |
| 45 | <popl09/popl09.{cma,cmxa}>: use_pcre |
| 46 | <python/python.{cma,cmxa}>: use_pcre, use_pycaml |
| 47 | |
| 48 | |
| 49 | # |
| 50 | # Bundled packages |
| 51 | # |
| 52 | |
| 53 | # apriori remove the traverse tag from the bundle |
| 54 | # directories to prevent them from being included. |
| 55 | # The traverse tag will be added by the plugin for |
| 56 | # the bundles that are included. |
| 57 | <bundles/*>: -traverse |
| 58 | |
| 59 | <bundles/pcre/pcre.{cma,cmxa}>: use_pcre |
| 60 | <bundles/pycaml/pycaml.{cma,cmxa}>: thread, use_pycaml |
| 61 | |
| 62 | # Interaction between the bundles and the plugin. |
| 63 | <bundles/pcre/libpcre_stubs.a>: use_pcre |
| 64 | <bundles/pcre/*/lib/pcre_stubs.c>: use_pcre |
| 65 | <bundles/pycaml/libpycaml_stubs.a>: use_pycaml |
| 66 | <bundles/pycaml/*/pycaml_stubs.c>: pp_pycaml, use_pycaml |
| 67 | <bundles/pycaml/*/pycaml.ml>: pp_pycaml |
| 68 | <bundles/menhirLib/*/src/*.cmx>: for-pack(MenhirLib) |
| 69 | |
| 70 | |
| 71 | # |
| 72 | # Hygiene |
| 73 | # |
| 74 | |
| 75 | # Some lexers and parsers are precompiled in the |
| 76 | # source distribution to make some preprocessors |
| 77 | # optional |
| 78 | |
| 79 | <parsing_c/parser_c.mly>: not_hygienic |
| 80 | <parsing_c/lexer_c.mll>: not_hygienic |
| 81 | <parsing_cocci/lexer_cli.mll>: not_hygienic |
| 82 | <parsing_cocci/lexer_script.mll>: not_hygienic |
| 83 | <parsing_cocci/lexer_cocci.mll>: not_hygienic |
| 84 | <parsing_cocci/parser_cocci_menhir.mly>: not_hygienic |
| 85 | <parsing_cocci/parser_cocci_menhir.ml{,i}>: precious |
| 86 | <ocaml/coccilib/coccilib.cmi>: not_hygienic |
| 87 | |
| 88 | |
| 89 | # |
| 90 | # Applications |
| 91 | # Main is the entry point of spatch. |
| 92 | # |
| 93 | |
| 94 | # library dependencies of spatch. |
| 95 | <main.{byte,native}>: thread, use_base, use_menhirLib, use_pcre, use_pycaml |
| 96 | |
| 97 | # some test tools in the subdirectories |
| 98 | <parsing_cocci/main.{byte,native}>: use_base, use_pcre |
| 99 | <ctl/test_ctl.{byte,native}>: use_base |
| 100 | |
| 101 | |
| 102 | # Build tools/all.otarget for all tools, or |
| 103 | # tools/all.opt.otarget for all tools with the native compiler. |
| 104 | |
| 105 | <tools/gitgrep.{byte,native}>: use_base |
| 106 | <tools/gitsort.{byte,native}>: use_base |
| 107 | <tools/process_isoprofile.{byte,native}>: use_base |
| 108 | <tools/alloc_free.{byte,native}>: use_base |
| 109 | <tools/bridge.{byte,native}>: use_base |
| 110 | <tools/spp.{byte,native}>: use_base |
| 111 | <tools/splitpatch.{byte,native}>: use_base |
| 112 | <tools/extract_c_and_res.{byte,native}>: use_base |
| 113 | <tools/cstripenv.{byte,native}>: use_base, use_pcre |
| 114 | <tools/distributed/cleanup.{byte,native}>: use_base |
| 115 | |
| 116 | |
| 117 | # |
| 118 | # Documentation |
| 119 | # |
| 120 | |
| 121 | <ocaml/man.docdir/index.html>: gen_man, use_menhirLib, use_pcre, use_pycaml |
| 122 | <ocaml/html.docdir/index.html>: gen_html, use_menhirLib, use_pcre, use_pycaml |