diff --git a/README.rst b/README.rst
index 91a4f7058b5e388d27cc7b9d806976415f225be5..ec791d4d5896cf5f984b782f5156f90b153fadbe 100644
--- a/README.rst
+++ b/README.rst
@@ -39,6 +39,43 @@ All background jobs are run as mapreduces: again the current
 implementation is very simple and does not run workers on multiple
 machines.
 
+Building
+--------
+
+Dependencies:
+
+- portaudio
+- leveldb
+- libtool
+- fftw
+- pcre
+
+To build djrandom on GNU/Linux::
+
+  $ mkdir -p $GOPATH/src/git.autistici.org/ale
+  $ cd $GOPATH/src/git.autistici.org/ale
+  $ git clone https://git.autistici.org/ale/imms.git imms
+  $ cd imms
+  $ aclocal ; libtoolize ; automake --foreign --add-missing ; autoconf
+  $ ./configure && make && sudo make install
+  $ go get -d git.autistici.org/ale/djrandom
+  $ cd $GOPATH/src/git.autistici.org/ale/djrandom
+  $ go get -v ./...
+  $ ./mkclientdist.sh
+
+To build only the client you can run the following command instead of
+``go get -v ./...``::
+
+  $ go get -v ./client/...
+
+To build djrandom on OS X you can install all the dependencies with
+`homebrew`::
+
+  $ brew install portaudio leveldb libtool fftw pcre
+
+You also have to use ``glibtoolize`` instead of ``libtoolize``::
+
+  $ aclocal ; glibtoolize ; automake --foreign --add-missing ; autoconf
 
 Running the upload client
 -------------------------