In addition to the packages needed for running LilyPond (see below), you
need the following extra packages for building.
+Below is a full list of packages needed to build LilyPond. However, for
+most common distributions there is an easy way of installing most all
+build dependencies in one go
+
+@multitable @columnfractions .5 .5
+@headitem Distribution
+@tab Command
+
+@item Debian, Ubuntu
+@tab @code{sudo apt-get build-dep lilypond}
+
+@item Fedora, RHEL
+@tab @code{sudo yum-builddep lilypond}
+
+@item openSUSE, SLED
+@c sorry for the idiosyncratic command, I really asked and argued
+@c for "zypper build-dep" :-(
+@tab @code{sudo zypper --build-deps-only source-install lilypond}
+
+@end multitable
+
When installing a binary package FOO, you may need to install the
FOO-devel, libFOO-dev or FOO-dev package too.
@item @uref{http://www.perl.org/,Perl}.
-@item @uref{http://www.gnu.org/software/flex/,GNU Bison}.
+@item @uref{http://www.gnu.org/software/bison/,GNU Bison}.
@item All packages required for running, including development packages with
header files and libraries.
The documentation is built by issuing
@example
-make web
+make doc
@end example
After compilation, the HTML documentation tree is available in
@file{out-www/offline-root/}, and can be browsed locally.
-The HTML and PDF files can be installed into the standard documentation
-path by issuing
+The HTML, PDF and if available Info files can be installed into the
+standard documentation path by issuing
@example
-make web-install
+make install-doc
@end example
@noindent
This also installs Info documentation with images if the installation
-prefix is properly set; otherwise, instructions for manual installation
-of Info documentation are printed on standard output.
+prefix is properly set; otherwise, instructions to complete proper
+installation of Info documentation are printed on standard output.
+
+Compilation of documentation in Info format with images can be done
+separately by issuing
+
+@example
+make info
+@end example
-It is also possible to build a documentation tree in
-@file{out-www/online-root/}, with special processing, so it can be used
-on a website with content negotiation for automatic language selection;
-this can be achieved by issuing
+@noindent
+Separate installation of this documentation is done by issuing
@example
-make WEB_TARGETS=online web
+make install-info
+@end example
+
+@noindent
+Note that to get the images in Info documentation, @code{install-doc}
+target creates symbolic links to HTML and PDF installed documentation
+tree in @file{@var{prefix}/share/info}, in order to save disk space,
+whereas @code{install-info} copies images in
+@file{@var{prefix}/share/info} subdirectories.
+
+It is possible to build a documentation tree in
+@file{out-www/online-root/}, with special processing, so it can be
+used on a website with content negotiation for automatic language
+selection; this can be achieved by issuing
+
+@example
+make WEB_TARGETS=online doc
@end example
@noindent
and both @q{offline} and @q{online} targets can be generated by issuing
@example
-make WEB_TARGETS="offline online" web
+make WEB_TARGETS="offline online" doc
@end example
Several targets are available to clean the documentation build and
@noindent
from every directory in the build tree. Most targets for
documentation maintenance are available from @file{Documentation/};
-for more information, see @file{Documentation/user/README.txt} and
-@file{Documentation/TRANSLATION}.
+@c FIXME: xref to CG
+for more information, see the Contributors' Guide, section
+@emph{Documentation work}.
The makefile variable @code{QUIET_BUILD} may be set to @code{1} for a
less verbose build output, just like for building the programs.
+
@knownissues
The most time consuming task for building the documentation is running
a bi-processor or dual core machine
@example
-make -j3 CPU_COUNT=3 web
+make -j3 CPU_COUNT=3 doc
@end example
@noindent
If source files have changed since last documentation build, output
files that need to be rebuilt are normally rebuilt, even if you do not
-run @code{make web-clean} first. However, building dependencies in the
+run @code{make doc-clean} first. However, building dependencies in the
documentation are so complex that rebuilding of some targets may not
be triggered as they should be; a workaround is to force rebuilding
by touching appropriate files, e.g.
./autogen.sh # ignore any warning messages
cp GNUmakefile.in GNUmakefile
make -C python
-nice make LILYPOND_EXTERNAL_BINARY=/path/to/bin/lilypond web
+nice make LILYPOND_EXTERNAL_BINARY=/path/to/bin/lilypond doc
@end example
Please note that this may break sometimes -- for example, if a new
You may build the manual without building all the @file{input/*}
stuff: change directory, for example to @file{Documentation/user},
-issue @code{make web}, which will build documentation in a
+issue @code{make doc}, which will build documentation in a
subdirectory @file{out-www} from the source files in current
directory. In this case, if you also want to browse the documentation
in its post-processed form, change back to top directory and issue