Commit | Line | Data |
---|---|---|
34e49164 C |
1 | -*- org -*- |
2 | ||
3 | ||
4 | * How to install coccinelle | |
5 | ------------------------------ | |
6 | ||
7 | ** CVS | |
8 | ||
9 | export CVS_RSH=ssh | |
10 | export CVSROOT=:ext:topps.diku.dk:/var/cvs/cocci | |
11 | ||
12 | You must be a member of the cocci group on the topps.diku.dk machine. | |
13 | ||
14 | Then | |
15 | cvs checkout coccinelle. | |
16 | ||
17 | ** Dependencies | |
18 | ||
19 | See install.txt | |
20 | ||
21 | ** Tools | |
22 | ||
23 | OCaml, Emacs. | |
24 | ||
25 | ** Compile | |
26 | ||
27 | make depend | |
28 | make | |
29 | ||
30 | ||
31 | * How to use coccinelle | |
32 | ------------------------------ | |
33 | ||
34 | ** Test | |
35 | ||
36 | ** Tutorial | |
37 | ||
38 | I have put demos/examples. | |
39 | ||
40 | ** spatch, sgrep | |
41 | ||
42 | ** Emacs coccinelle mode | |
43 | ||
44 | See emacs/cocci.el for instructions. | |
45 | ||
46 | ** Manual | |
47 | ||
48 | See docs/manual.tex | |
49 | ||
50 | * How to extend coccinelle | |
51 | ------------------------------ | |
52 | ||
53 | ||
54 | Send us a semantic patch :) | |
55 | ||
56 | ||
57 | * Documentation on coccinelle internals | |
58 | ---------------------------------------- | |
59 | - look at the papers from the coccinelle website: | |
60 | http://www.emn.fr/x-info/coccinelle | |
61 | - look in docs from | |
62 | cvs checkout working-documents | |
63 | - look at the code :) | |
64 | ||
65 | ||
66 | ||
67 | ** Software architecture | |
68 | ||
69 | See docs/graph-module-dependencies.ps | |
70 | ||
71 | ** coccinelle/ organization | |
72 | ||
73 | See authors.txt | |
74 | ||
75 | * Being a coccinelle developer | |
76 | ------------------------------ | |
77 | ||
78 | ** Conventions/advices | |
79 | Do not use the 'open' OCaml module instruction. | |
80 | Qualify, like in 'Cocci.full_engine x'. | |
81 | ||
82 | Have a makefile in each directory with a clean:, depend:, | |
83 | and possibly all: and all.opt: targets. | |
84 | ||
85 | ||
86 | * How to contribute to Linux | |
87 | ------------------------------ | |
88 | ||
89 | ** How to use git | |
90 | ** How to use spatch | |
91 | ** How to prepare a patch for Linus | |
92 | ||
93 | * Tools | |
94 | ------------------------------ | |
95 | ||
96 | ** Emacs | |
97 | ||
98 | ** debugging: ocamldebug, the ocaml replay debugger | |
99 | ||
100 | ** profiling: gprof (but can also use the -profile option of spatch) | |
101 | ||
102 | ** CVS tricks | |
103 | ||
104 | *** To remove <directory>: | |
105 | ||
106 | cvs release -d <directory> | |
107 | ||
108 | *** To update the code and allow the checkout of new directories but | |
109 | pruning empty (obsolete but still there because CVS sux) directories: | |
110 | ||
111 | cvs update -d -P | |
112 | ||
113 | *** To see what has changed since 2 days | |
114 | ||
115 | cvs diff -u -D "2 days ago" | |
116 | ||
117 | *** To create a new CVS module: | |
118 | ||
119 | mkdir nameofdir; | |
120 | cd nameofdir; | |
121 | cvs import -m"your commit message" <nameofdir> yoyo start | |
122 | cd ..; | |
123 | rm -rf nameofdir; | |
124 | cvs checkout nameofdir | |
125 | ||
126 | yoyo is a dummy name | |
127 | ||
128 | ||
129 | ||
130 | ||
131 | * Coders | |
132 | ------------------------------ | |
133 | ||
134 | See authors.txt |