+
+@node Building LilyPond
+@subsection Building LilyPond
+
+@unnumberedsubsubsec Compiling
+
+To install GNU LilyPond, type
+
+@example
+gunzip -c lilypond-x.y.z | tar xf -
+cd lilypond-x.y.z
+./configure # run with --help for applicable options
+make
+su -c 'make install'
+@end example
+
+@noindent
+If you are not root, you should choose a @code{--prefix} argument that
+points into your home directory, e.g.
+
+@example
+./configure --prefix=$HOME/usr
+@end example
+
+
+@unnumberedsubsubsec Compiling for multiple platforms
+
+If you want to build multiple versions of LilyPond with different
+configuration settings, you can use the @code{--enable-config=CONF}
+option of @command{configure}. You should use @code{make conf=CONF}
+to generate the output in @file{out-CONF}. For example, suppose you
+want to build with and without profiling, then use the following for
+the normal build
+
+@example
+./configure --prefix=$HOME/usr/ --enable-checking
+make
+make install
+@end example
+
+and for the profiling version, specify a different configuration
+
+@example
+./configure --prefix=$HOME/usr/ --enable-profiling --enable-config=prof --disable-checking
+make conf=prof
+make conf=prof install
+@end example
+
+
+@unnumberedsubsubsec Compiling outside the source tree
+
+It is possible to compile LilyPond in a build tree different from the
+source tree, with @code{--srcdir} option of @command{configure}:
+
+@example
+mkdir lily-build && cd lily-build
+@var{sourcedir}/configure --srcdir=@var{sourcedir}
+
+@end example
+
+
+@unnumberedsubsubsec Useful @command{make} variables
+
+If a less verbose build output if desired, the variable
+@code{QUIET_BUILD} may be set to @code{1} on @command{make} command
+line, or in @file{local.make} at top of the build tree.
+
+
+@node Building documentation
+@subsection Building documentation
+
+This requires a successful compile of LilyPond, or using an external
+LilyPond binary.
+
+@menu
+* Commands for building documentation:: Compiling and installing the documentation.
+* Building documentation without compiling LilyPond:: Using a LilyPond binary already installed.
+@end menu
+
+@node Commands for building documentation
+@unnumberedsubsubsec Commands for building documentation
+