permit multiline comments and strings in macros
[bpt/coccinelle.git] / docs / developer.txt
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