permit multiline comments and strings in macros
[bpt/coccinelle.git] / docs / developer.txt
CommitLineData
34e49164
C
1-*- org -*-
2
3
4* How to install coccinelle
5------------------------------
6
7** CVS
8
9export CVS_RSH=ssh
10export CVSROOT=:ext:topps.diku.dk:/var/cvs/cocci
11
12You must be a member of the cocci group on the topps.diku.dk machine.
13
14Then
15cvs checkout coccinelle.
16
17** Dependencies
18
19See install.txt
20
21** Tools
22
23OCaml, Emacs.
24
25** Compile
26
27make depend
28make
29
30
31* How to use coccinelle
32------------------------------
33
34** Test
35
36** Tutorial
37
38I have put demos/examples.
39
40** spatch, sgrep
41
42** Emacs coccinelle mode
43
44See emacs/cocci.el for instructions.
45
46** Manual
47
48See docs/manual.tex
49
50* How to extend coccinelle
51------------------------------
52
53
54Send 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
69See docs/graph-module-dependencies.ps
70
71** coccinelle/ organization
72
73See authors.txt
74
75* Being a coccinelle developer
76------------------------------
77
78** Conventions/advices
79Do not use the 'open' OCaml module instruction.
80Qualify, like in 'Cocci.full_engine x'.
81
82Have a makefile in each directory with a clean:, depend:,
83and 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
109pruning 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
126yoyo is a dummy name
127
128
129
130
131* Coders
132------------------------------
133
134See authors.txt