Commit | Line | Data |
---|---|---|
174d1640 C |
1 | |
2 | ** Compilation ** | |
3 | ||
4 | You must first install a recent version of | |
5 | - OCaml (at least 3.09.2), | |
34e49164 | 6 | see http://caml.inria.fr/download.en.html |
174d1640 C |
7 | At least, OCaml 3.11 is required to use the OCaml scripting |
8 | feature in the SmPL code. | |
9 | - The Menhir parser generator (at least 20080912), | |
34e49164 C |
10 | see http://cristal.inria.fr/~fpottier/menhir/ |
11 | (unless you got a version of the coccinelle source with | |
12 | the SmPL parser pre-generated) | |
13 | - Python and its development files (python-dev) | |
14 | (unless you run configure with the --without-python option) | |
34e49164 | 15 | |
174d1640 | 16 | Then simply type |
34e49164 C |
17 | ./configure |
18 | make depend | |
19 | make | |
20 | make install | |
21 | ||
b1b2de81 | 22 | |
708f4980 C |
23 | |
24 | ||
25 | ||
174d1640 C |
26 | 'make' will compile the bytecode version by default. You could use |
27 | 'make all.opt' to have the optimized version. If you compile both, | |
28 | 'make install' will take care of that and install both, spatch and | |
29 | spatch.opt. If you use only one of them, 'make install' will install | |
30 | the one you have compiled, either spatch ou spatch.opt, under the | |
31 | front-end spatch. You could use 'make world' to compile the bytecode | |
32 | and the optimized code version. | |
33 | ||
34 | We provide the files generated by menhir in the tarball. However, | |
35 | 'make distclean' will remove them. You could either restore them from | |
36 | the tarball or install menhir. Using 'make clean' should be safe with | |
37 | regards to these files. | |
38 | ||
39 | Note: The test target is intended for developers. In particular, you | |
40 | should not expect that every test will pass. | |
41 | ||
42 | ||
43 | In order to use the OCaml scripting feature in SmPL, you must compile | |
44 | Coccinelle with at least OCaml version 3.11. | |
45 | ||
46 | ||
47 | ** Runtime dependencies ** | |
48 | ||
49 | - Basic shell commands: | |
50 | - ls, cat, cp, mv, rm, grep, mkdir, find | |
51 | - Developper tool: diff | |
52 | ||
53 | ||
54 | ** Optional runtime dependencies ** | |
55 | ||
56 | - To quickly apply the semantic patches | |
57 | - glimpse indexer | |
58 | ||
59 | - To use OCaml scripting feature in SmPL | |
60 | - ocaml-native-compilers or ocaml-nox | |
61 | - ocaml-findlib | |
62 | ||
63 | - To generate a PDF of the control flow graph with '-graphical_trace' | |
64 | - pdftk and graphviz (with PDF support) | |
65 | ||
66 | ||
708f4980 | 67 | |
174d1640 | 68 | ** Dependencies for additional tools ** |
9f8e26f4 | 69 | |
174d1640 | 70 | git, pushd, popd, sed, diffstat, cpp |