aboutsummaryrefslogtreecommitdiffstats
path: root/doc/developer.xml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/developer.xml')
-rw-r--r--doc/developer.xml50
1 files changed, 48 insertions, 2 deletions
diff --git a/doc/developer.xml b/doc/developer.xml
index 729e6a513..aa3cc62c0 100644
--- a/doc/developer.xml
+++ b/doc/developer.xml
@@ -10,7 +10,7 @@
<para>
This is a guide for those who wish to hack on the MPD source
code. MPD is an open project, and we are always happy about
- contributions. So far, more than 50 people have contributed
+ contributions. So far, more than 150 people have contributed
patches.
</para>
@@ -155,7 +155,53 @@ foo(const char *abc, int xyz)
<para>
Send your patches to the mailing list:
- mpd-devel@musicpd.org
+ <email>mpd-devel@musicpd.org</email> (<ulink
+ url="http://mailman.blarg.de/listinfo/mpd-devel">subscribe
+ here</ulink>)
</para>
+
+ <para>
+ <command>git pull</command> requests are preferred. Regular
+ contributors can get <ulink
+ url="http://git.musicpd.org/account-policy.html">an account on
+ git.musicpd.org</ulink>, but any public git repository will do.
+ </para>
+ </chapter>
+
+ <chapter>
+ <title>Development Tools</title>
+
+ <section>
+ <title>Clang Static Analyzer</title>
+
+ <para>
+ The <ulink url="http://clang-analyzer.llvm.org/">clang static
+ analyzer</ulink> is a tool that helps find bugs. To run it on
+ the MPD code base, install LLVM and clang. Configure MPD to
+ use clang:
+ </para>
+
+ <programlisting>./configure --enable-debug CXX=clang++ CC=clang ...</programlisting>
+
+ <para>
+ It is recommended to use <option>--enable-debug</option>,
+ because the analyzer takes advantage of
+ <function>assert()</function> calls, which are only enabled in
+ the debug build.
+ </para>
+
+ <para>
+ Now run the analyzer:
+ </para>
+
+ <programlisting>scan-build --use-c++=clang++ --use-cc=clang make</programlisting>
+
+ <para>
+ The options <option>--use-c++</option> and
+ <option>--use-cc</option> are necessary because it invokes
+ <command>cc</command> for actually compiling the sources by
+ default. That breaks, because MPD requires a C99 compiler.
+ </para>
+ </section>
</chapter>
</book>