Attached patch works for me. Cheers, - Graham
>From 9696c2f384614ba933f5949ffed33db390ed60ab Mon Sep 17 00:00:00 2001 From: Graham Percival <gra...@percival-music.ca> Date: Thu, 30 Jul 2009 20:56:26 -0700 Subject: [PATCH] Doc: remove install from AU, add to CG, rename to basic-compile.itexi
--- Documentation/application.tely | 4 +- Documentation/application/install.itely | 1 - Documentation/contributor/basic-compile.itexi | 534 +++++++++++++++++++++++++ Documentation/contributor/compile.itexi | 533 ------------------------ Documentation/contributor/compiling.itexi | 4 +- Documentation/topdocs/INSTALL.texi | 2 +- 6 files changed, 538 insertions(+), 540 deletions(-) create mode 100644 Documentation/contributor/basic-compile.itexi delete mode 100644 Documentation/contributor/compile.itexi diff --git a/Documentation/application.tely b/Documentation/application.tely index f533754..b9970f0 100644 --- a/Documentation/application.tely +++ b/Documentation/application.tely @@ -118,8 +118,8 @@ More information can be found at @uref{http://@/www@/.lilypond@/.org/}. The website contains on-line copies of this and other documentation. +...@c * Install:: How to install or compile. @menu -* Install:: How to install or compile. * Setup:: Using LilyPond with other programs. * Running LilyPond:: Operation. * LilyPond-book:: Integrating text and music. @@ -135,7 +135,7 @@ Appendices @contents -...@include application/install.itely +...@c @include application/install.itely @include application/setup.itely @include application/running.itely @include application/lilypond-book.itely diff --git a/Documentation/application/install.itely b/Documentation/application/install.itely index ffe7797..03985cd 100644 --- a/Documentation/application/install.itely +++ b/Documentation/application/install.itely @@ -25,7 +25,6 @@ recommend using the precompiled binaries. @menu * Precompiled binaries:: -* Compiling from source:: @end menu diff --git a/Documentation/contributor/basic-compile.itexi b/Documentation/contributor/basic-compile.itexi new file mode 100644 index 0000000..981879e --- /dev/null +++ b/Documentation/contributor/basic-compile.itexi @@ -0,0 +1,534 @@ +...@c -*- coding: utf-8; mode: texinfo; -*- + + +...@c DO NOT TRANSLATE THIS FILE + +...@c include any node/sections from the higher-level *texi file. +...@c @n ode Compiling from source +...@c @s ection Compiling from source + +...@menu +* Downloading source code:: +* Requirements:: +* Building LilyPond:: +* Building documentation:: +* Testing LilyPond:: +* Problems:: +...@end menu + +...@node Downloading source code +...@subsection Downloading source code + +Download source + +...@itemize +...@item tarballs from +...@uref{http://lilypond.org/download/} by HTTP. +...@item tarballs from +...@uref{http://download.linuxaudio.org/lilypond/} by HTTP. +...@item +GIT from @uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=summary,git.sv.gnu.org} + +...@example +git clone git://git.sv.gnu.org/lilypond.git +...@end example + +The repository does not contain generated files. To create +...@file{configure}, run +...@example +./autogen.sh +...@end example +...@end itemize + +For information on packaging, see @uref{http://lilypond.org/devel}. + + +...@node Requirements +...@subsection Requirements + +...@unnumberedsubsubsec Compilation + +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. + +...@itemize + +...@item @uref{http://fontforge.sf.net/,FontForge} 20060125 or newer. + +...@item @uref{http://metafont.tutorial.free.fr/,MetaFont} (mf-nowin, mf, mfw or +mfont binaries) and @uref{http://cm.bell-labs.com/who/hobby/MetaPost.html,MetaPost} +(mpost binary), usually packaged with a @LaTeX{} distribution like +tetex or texlive. + +...@item @uref{http://www.lcdf.org/~eddietwo/type/#t1utils,t1utils} +(version 1.33 or newer recommended). + +...@item New Century Schoolbook fonts, as PFB files. These are shipped with +X11 and Ghostscript, and are named @file{c059033l.pfb} +...@file{c059036l.pfb}, @file{c059013l.pfb} and @file{c059016l.pfb}. + +...@item @uref{http://www.gnu.org/software/guile/guile.html,GUILE} (version +1.8.2 or newer). If you are installing binary packages, you may need to +install guile-devel or guile-dev or libguile-dev too. + +...@item @uref{ftp://ftp.gnu.org/gnu/texinfo/,Texinfo} (version 4.11 or newer). + +...@item @uref{http://gcc.gnu.org/, The GNU c++ compiler} (version 3.4 or +newer. 4.x is strongly recommended). + +...@item @uref{http://www.python.org,Python} (version 2.4 or newer) + +...@item @uref{ftp://ftp.gnu.org/gnu/make/,GNU Make} (version 3.78 or newer). + +...@item @uref{http://www.gnu.org/software/gettext/gettext.html,gettext} +(version 0.17 or newer). + +...@item @uref{http://www.gnu.org/software/flex/,Flex}. + +...@item @uref{http://www.perl.org/,Perl}. + +...@item @uref{http://www.gnu.org/software/bison/,GNU Bison}. + +...@item All packages required for running, including development packages with +header files and libraries. + +...@end itemize + + +...@unnumberedsubsubsec Running requirements + +Running LilyPond requires proper installation of the following software + +...@itemize + +...@item @uref{http://www.freetype.org/,Freetype} (version 2.1.10 or newer). +...@item @uref{http://fontconfig.org/,FontConfig} (version 2.2 or newer). +...@item @uref{http://www.pango.org/,Pango} (version 1.12 or newer). +...@item @uref{http://www.gnu.org/software/guile/guile.html,GUILE} +(version 1.8.2 or newer), or patch 1.8.1 with +...@uref{http://lilypond.org/vc/gub.darcs/patches/guile-1.8-rational.patch}. +...@item @uref{http://www.python.org,Python} (version 2.4 or newer). +...@item @uref{http://www.ghostscript.com,Ghostscript} (version 8.15 or +newer. 8.60 recommended) +...@item Dejaview. (This is normally installed by default) +...@end itemize + +International fonts are required to create music with international text +or lyrics. + + +...@unnumberedsubsubsec Requirements for building documentation + +You can view the documentation online at +...@uref{http://lilypond.org/doc/}, but you can also build it locally. +This process requires a successful compile of LilyPond, and some +additional tools and packages: + +...@itemize +...@item The @uref{http://netpbm.sourceforge.net/,netpbm utilities} +...@item ImageMagick +...@item International fonts (see input/regression/utf-8.ly for hints +about which font packages are necessary for your platform) +...@item Ghostscript 8.60 or newer, or 8.50 with the patch from +...@uref{http://bugs.ghostscript.com/show_bug.cgi?id=688154} +and the patch from +...@uref{http://bugs.ghostscript.com/show_bug.cgi?id=688017}. +...@item @uref{http://www.nongnu.org/texi2html/,Texi2HTML} 1.80 or newer +...@item rsync +...@end itemize + + +...@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 --srcd...@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 + +The documentation is built by issuing + +...@example +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, PDF and if available Info files can be installed into the +standard documentation path by issuing + +...@example +make install-doc +...@end example + +...@noindent +This also installs Info documentation with images if the installation +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 + +...@noindent +Separate installation of this documentation is done by issuing + +...@example +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 @fi...@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" doc +...@end example + +Several targets are available to clean the documentation build and +help with maintaining documentation; an overview of these targets is +available with + +...@example +make help +...@end example + +...@noindent +from every directory in the build tree. Most targets for +documentation maintenance are available from @file{Documentation/}; +...@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 +LilyPond to build images of music, and there cannot be several +simultaneously running @command{lilypond-book} instances, so @code{-j} +...@command{make} option does not significantly speed up the build process. +To help speed it up, the makefile variable @var{CPU_COUNT} may be set +in @file{local.make} or on the command line to the number of +...@code{.ly} files that LilyPond should process simultaneously, e.g. on +a bi-processor or dual core machine + +...@example +make -j3 CPU_COUNT=3 doc +...@end example + +...@noindent +The recommended value of @var{CPU_COUNT} is one plus the number of +cores or processors, but it is advisable to set it to a smaller value +if your system has not enough RAM to run that many simultaneous +LilyPond instances. + +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 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. + +...@example +touch Documentation/notation/*.itely +touch Documentation/snippets/*.ly +...@end example + + +...@node Building documentation without compiling LilyPond +...@unnumberedsubsubsec Building documentation without compiling LilyPond + +The documentation can be built locally without compiling LilyPond +binary, if LilyPond is already installed on your system. + +From a fresh Git checkout, do + +...@example +./autogen.sh # ignore any warning messages +cp GNUmakefile.in GNUmakefile +make -C python +nice make LILYPOND_EXTERNAL_BINARY=/path/to/bin/lilypond doc +...@end example + +Please note that this may break sometimes -- for example, if a new +feature is added with a test file in input/regression, even the latest +development release of LilyPond will fail to build the docs. + +You may build the manual without building all the @file{input/*} stuff +(i.e. mostly regression tests): change directory, for example to +...@file{documentation/}, 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 + +...@example +make out=www WWW-post +...@end example + +...@knownissues + +You may also need to create a script for @command{pngtopnm} and +...@code{pnmtopng}. On GNU/Linux, I use this: + +...@verbatim +export LD_LIBRARY_PATH=/usr/lib +exec /usr/bin/pngtopnm "$@" +...@end verbatim + +On ma...@tie{}x, I use this: + +...@verbatim +export DYLD_LIBRARY_PATH=/sw/lib +exec /sw/bin/pngtopnm "$@" +...@end verbatim + + + +...@node Testing LilyPond +...@subsection Testing LilyPond + +...@html +<a name="testing"></a> +...@end html + +LilyPond comes with an extensive suite that exercises the entire +program. This suite can be used to automatically check the impact of a +change. This is done as follows + +...@example +make test-baseline +...@emph{## apply your changes, compile} +make check +...@end example + +This will leave an HTML page @file{out/test-results/index.html}. This +page shows all the important differences that your change introduced, +whether in the layout, MIDI, performance or error reporting. + +To rerun tests, use + +...@example +make test-redo @emph{## redo files differing from baseline} +make test-clean @emph{## remove all test results} +...@end example + +...@noindent +and then run @code{make check} again. + +For tracking memory usage as part of this test, you will need GUILE +CVS; especially the following patch: +...@uref{http://lilypond.org/vc/gub.darcs/patches/guile-1.9-gcstats.patch}. + +For checking the coverage of the test suite, do the following + +...@example +./scripts/auxiliar/build-coverage.sh +...@emph{# uncovered files, least covered first} +./scripts/auxiliar/coverage.py --summary out-cov/*.cc +...@emph{# consecutive uncovered lines, longest first} +./scripts/auxiliar/coverage.py --uncovered out-cov/*.cc +...@end example + + +...@node Problems +...@subsection Problems + +For help and questions use @email{lilypond-user@@gnu.org}. Send bug +reports to @email{bug-lilypond@@gnu.org}. + +Bugs that are not fault of LilyPond are documented here. + +...@unnumberedsubsubsec Bison 1.875 + +There is a bug in bison-1.875: compilation fails with "parse error +before `goto'" in line 4922 due to a bug in bison. To fix, please +recompile bison 1.875 with the following fix + +...@example +$ cd lily; make out/parser.cc +$ vi +4919 out/parser.cc +# append a semicolon to the line containing "__attribute__ ((__unused__)) +# save +$ make +...@end example + + +...@unnumberedsubsubsec Solaris + +Solaris7, ./configure + +...@file{./configure} needs a POSIX compliant shell. On Solaris7, +...@file{/bin/sh} is not yet POSIX compliant, but @file{/bin/ksh} or bash +is. Run configure like + +...@example +CONFIG_SHELL=/bin/ksh ksh -c ./configure +...@end example + +...@noindent +or + +...@example +CONFIG_SHELL=/bin/bash bash -c ./configure +...@end example + +...@unnumberedsubsubsec FreeBSD + +To use system fonts, dejaview must be installed. With the default +port, the fonts are installed in @file{usr/X11R6/lib/X11/fonts/dejavu}. + +Open the file @file{$LILYPONDBASE/usr/etc/fonts/local.conf} and add the +following line just after the @code{<fontconfig>} line. (Adjust as necessary +for your hierarchy.) + +...@example +<dir>/usr/X11R6/lib/X11/fonts</dir> +...@end example + + +...@unnumberedsubsubsec International fonts + +On ma...@tie{}x, all fonts are installed by default. However, finding all +system fonts requires a bit of configuration; see +...@uref{http://lists.gnu.org/archive/html/lilypond-user/2007-03/msg00472.html, +this post} on the @code{lilypond-user} mailing list. + +On Linux, international fonts are installed by different means on +every distribution. We cannot list the exact commands or packages +that are necessary, as each distribution is different, and the exact +package names within each distribution changes. Here are some +hints, though: + +...@verbatim +Red Hat Fedora + + taipeifonts fonts-xorg-truetype ttfonts-ja fonts-arabic \ + ttfonts-zh_CN fonts-ja fonts-hebrew + +Debian GNU/Linux + + apt-get install emacs-intl-fonts xfonts-intl-.* \ + ttf-kochi-gothic ttf-kochi-mincho \ + xfonts-bolkhov-75dpi xfonts-cronyx-100dpi xfonts-cronyx-75dpi +...@end verbatim + diff --git a/Documentation/contributor/compile.itexi b/Documentation/contributor/compile.itexi deleted file mode 100644 index 8d3112a..0000000 --- a/Documentation/contributor/compile.itexi +++ /dev/null @@ -1,533 +0,0 @@ -...@c -*- coding: utf-8; mode: texinfo; -*- - - -...@c DO NOT TRANSLATE THIS FILE - -...@node Compiling from source -...@section Compiling from source - -...@menu -* Downloading source code:: -* Requirements:: -* Building LilyPond:: -* Building documentation:: -* Testing LilyPond:: -* Problems:: -...@end menu - -...@node Downloading source code -...@subsection Downloading source code - -Download source - -...@itemize -...@item tarballs from -...@uref{http://lilypond.org/download/} by HTTP. -...@item tarballs from -...@uref{http://download.linuxaudio.org/lilypond/} by HTTP. -...@item -GIT from @uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=summary,git.sv.gnu.org} - -...@example -git clone git://git.sv.gnu.org/lilypond.git -...@end example - -The repository does not contain generated files. To create -...@file{configure}, run -...@example -./autogen.sh -...@end example -...@end itemize - -For information on packaging, see @uref{http://lilypond.org/devel}. - - -...@node Requirements -...@subsection Requirements - -...@unnumberedsubsubsec Compilation - -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. - -...@itemize - -...@item @uref{http://fontforge.sf.net/,FontForge} 20060125 or newer. - -...@item @uref{http://metafont.tutorial.free.fr/,MetaFont} (mf-nowin, mf, mfw or -mfont binaries) and @uref{http://cm.bell-labs.com/who/hobby/MetaPost.html,MetaPost} -(mpost binary), usually packaged with a @LaTeX{} distribution like -tetex or texlive. - -...@item @uref{http://www.lcdf.org/~eddietwo/type/#t1utils,t1utils} -(version 1.33 or newer recommended). - -...@item New Century Schoolbook fonts, as PFB files. These are shipped with -X11 and Ghostscript, and are named @file{c059033l.pfb} -...@file{c059036l.pfb}, @file{c059013l.pfb} and @file{c059016l.pfb}. - -...@item @uref{http://www.gnu.org/software/guile/guile.html,GUILE} (version -1.8.2 or newer). If you are installing binary packages, you may need to -install guile-devel or guile-dev or libguile-dev too. - -...@item @uref{ftp://ftp.gnu.org/gnu/texinfo/,Texinfo} (version 4.11 or newer). - -...@item @uref{http://gcc.gnu.org/, The GNU c++ compiler} (version 3.4 or -newer. 4.x is strongly recommended). - -...@item @uref{http://www.python.org,Python} (version 2.4 or newer) - -...@item @uref{ftp://ftp.gnu.org/gnu/make/,GNU Make} (version 3.78 or newer). - -...@item @uref{http://www.gnu.org/software/gettext/gettext.html,gettext} -(version 0.17 or newer). - -...@item @uref{http://www.gnu.org/software/flex/,Flex}. - -...@item @uref{http://www.perl.org/,Perl}. - -...@item @uref{http://www.gnu.org/software/bison/,GNU Bison}. - -...@item All packages required for running, including development packages with -header files and libraries. - -...@end itemize - - -...@unnumberedsubsubsec Running requirements - -Running LilyPond requires proper installation of the following software - -...@itemize - -...@item @uref{http://www.freetype.org/,Freetype} (version 2.1.10 or newer). -...@item @uref{http://fontconfig.org/,FontConfig} (version 2.2 or newer). -...@item @uref{http://www.pango.org/,Pango} (version 1.12 or newer). -...@item @uref{http://www.gnu.org/software/guile/guile.html,GUILE} -(version 1.8.2 or newer), or patch 1.8.1 with -...@uref{http://lilypond.org/vc/gub.darcs/patches/guile-1.8-rational.patch}. -...@item @uref{http://www.python.org,Python} (version 2.4 or newer). -...@item @uref{http://www.ghostscript.com,Ghostscript} (version 8.15 or -newer. 8.60 recommended) -...@item Dejaview. (This is normally installed by default) -...@end itemize - -International fonts are required to create music with international text -or lyrics. - - -...@unnumberedsubsubsec Requirements for building documentation - -You can view the documentation online at -...@uref{http://lilypond.org/doc/}, but you can also build it locally. -This process requires a successful compile of LilyPond, and some -additional tools and packages: - -...@itemize -...@item The @uref{http://netpbm.sourceforge.net/,netpbm utilities} -...@item ImageMagick -...@item International fonts (see input/regression/utf-8.ly for hints -about which font packages are necessary for your platform) -...@item Ghostscript 8.60 or newer, or 8.50 with the patch from -...@uref{http://bugs.ghostscript.com/show_bug.cgi?id=688154} -and the patch from -...@uref{http://bugs.ghostscript.com/show_bug.cgi?id=688017}. -...@item @uref{http://www.nongnu.org/texi2html/,Texi2HTML} 1.80 or newer -...@item rsync -...@end itemize - - -...@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 --srcd...@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 - -The documentation is built by issuing - -...@example -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, PDF and if available Info files can be installed into the -standard documentation path by issuing - -...@example -make install-doc -...@end example - -...@noindent -This also installs Info documentation with images if the installation -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 - -...@noindent -Separate installation of this documentation is done by issuing - -...@example -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 @fi...@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" doc -...@end example - -Several targets are available to clean the documentation build and -help with maintaining documentation; an overview of these targets is -available with - -...@example -make help -...@end example - -...@noindent -from every directory in the build tree. Most targets for -documentation maintenance are available from @file{Documentation/}; -...@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 -LilyPond to build images of music, and there cannot be several -simultaneously running @command{lilypond-book} instances, so @code{-j} -...@command{make} option does not significantly speed up the build process. -To help speed it up, the makefile variable @var{CPU_COUNT} may be set -in @file{local.make} or on the command line to the number of -...@code{.ly} files that LilyPond should process simultaneously, e.g. on -a bi-processor or dual core machine - -...@example -make -j3 CPU_COUNT=3 doc -...@end example - -...@noindent -The recommended value of @var{CPU_COUNT} is one plus the number of -cores or processors, but it is advisable to set it to a smaller value -if your system has not enough RAM to run that many simultaneous -LilyPond instances. - -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 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. - -...@example -touch Documentation/notation/*.itely -touch Documentation/snippets/*.ly -...@end example - - -...@node Building documentation without compiling LilyPond -...@unnumberedsubsubsec Building documentation without compiling LilyPond - -The documentation can be built locally without compiling LilyPond -binary, if LilyPond is already installed on your system. - -From a fresh Git checkout, do - -...@example -./autogen.sh # ignore any warning messages -cp GNUmakefile.in GNUmakefile -make -C python -nice make LILYPOND_EXTERNAL_BINARY=/path/to/bin/lilypond doc -...@end example - -Please note that this may break sometimes -- for example, if a new -feature is added with a test file in input/regression, even the latest -development release of LilyPond will fail to build the docs. - -You may build the manual without building all the @file{input/*} stuff -(i.e. mostly regression tests): change directory, for example to -...@file{documentation/}, 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 - -...@example -make out=www WWW-post -...@end example - -...@knownissues - -You may also need to create a script for @command{pngtopnm} and -...@code{pnmtopng}. On GNU/Linux, I use this: - -...@verbatim -export LD_LIBRARY_PATH=/usr/lib -exec /usr/bin/pngtopnm "$@" -...@end verbatim - -On ma...@tie{}x, I use this: - -...@verbatim -export DYLD_LIBRARY_PATH=/sw/lib -exec /sw/bin/pngtopnm "$@" -...@end verbatim - - - -...@node Testing LilyPond -...@subsection Testing LilyPond - -...@html -<a name="testing"></a> -...@end html - -LilyPond comes with an extensive suite that exercises the entire -program. This suite can be used to automatically check the impact of a -change. This is done as follows - -...@example -make test-baseline -...@emph{## apply your changes, compile} -make check -...@end example - -This will leave an HTML page @file{out/test-results/index.html}. This -page shows all the important differences that your change introduced, -whether in the layout, MIDI, performance or error reporting. - -To rerun tests, use - -...@example -make test-redo @emph{## redo files differing from baseline} -make test-clean @emph{## remove all test results} -...@end example - -...@noindent -and then run @code{make check} again. - -For tracking memory usage as part of this test, you will need GUILE -CVS; especially the following patch: -...@uref{http://lilypond.org/vc/gub.darcs/patches/guile-1.9-gcstats.patch}. - -For checking the coverage of the test suite, do the following - -...@example -./scripts/auxiliar/build-coverage.sh -...@emph{# uncovered files, least covered first} -./scripts/auxiliar/coverage.py --summary out-cov/*.cc -...@emph{# consecutive uncovered lines, longest first} -./scripts/auxiliar/coverage.py --uncovered out-cov/*.cc -...@end example - - -...@node Problems -...@subsection Problems - -For help and questions use @email{lilypond-user@@gnu.org}. Send bug -reports to @email{bug-lilypond@@gnu.org}. - -Bugs that are not fault of LilyPond are documented here. - -...@unnumberedsubsubsec Bison 1.875 - -There is a bug in bison-1.875: compilation fails with "parse error -before `goto'" in line 4922 due to a bug in bison. To fix, please -recompile bison 1.875 with the following fix - -...@example -$ cd lily; make out/parser.cc -$ vi +4919 out/parser.cc -# append a semicolon to the line containing "__attribute__ ((__unused__)) -# save -$ make -...@end example - - -...@unnumberedsubsubsec Solaris - -Solaris7, ./configure - -...@file{./configure} needs a POSIX compliant shell. On Solaris7, -...@file{/bin/sh} is not yet POSIX compliant, but @file{/bin/ksh} or bash -is. Run configure like - -...@example -CONFIG_SHELL=/bin/ksh ksh -c ./configure -...@end example - -...@noindent -or - -...@example -CONFIG_SHELL=/bin/bash bash -c ./configure -...@end example - -...@unnumberedsubsubsec FreeBSD - -To use system fonts, dejaview must be installed. With the default -port, the fonts are installed in @file{usr/X11R6/lib/X11/fonts/dejavu}. - -Open the file @file{$LILYPONDBASE/usr/etc/fonts/local.conf} and add the -following line just after the @code{<fontconfig>} line. (Adjust as necessary -for your hierarchy.) - -...@example -<dir>/usr/X11R6/lib/X11/fonts</dir> -...@end example - - -...@unnumberedsubsubsec International fonts - -On ma...@tie{}x, all fonts are installed by default. However, finding all -system fonts requires a bit of configuration; see -...@uref{http://lists.gnu.org/archive/html/lilypond-user/2007-03/msg00472.html, -this post} on the @code{lilypond-user} mailing list. - -On Linux, international fonts are installed by different means on -every distribution. We cannot list the exact commands or packages -that are necessary, as each distribution is different, and the exact -package names within each distribution changes. Here are some -hints, though: - -...@verbatim -Red Hat Fedora - - taipeifonts fonts-xorg-truetype ttfonts-ja fonts-arabic \ - ttfonts-zh_CN fonts-ja fonts-hebrew - -Debian GNU/Linux - - apt-get install emacs-intl-fonts xfonts-intl-.* \ - ttf-kochi-gothic ttf-kochi-mincho \ - xfonts-bolkhov-75dpi xfonts-cronyx-100dpi xfonts-cronyx-75dpi -...@end verbatim - diff --git a/Documentation/contributor/compiling.itexi b/Documentation/contributor/compiling.itexi index 1d0dfd8..014288e 100644 --- a/Documentation/contributor/compiling.itexi +++ b/Documentation/contributor/compiling.itexi @@ -12,9 +12,7 @@ @node Compiling from source @section Compiling from source -TODO (see AU 1 for now) -...@c currently broken; will fix after 2.14 -...@c @include compile.itely +...@include contributor/basic-compile.itexi @node Concurrent Stable and Development Versions diff --git a/Documentation/topdocs/INSTALL.texi b/Documentation/topdocs/INSTALL.texi index de50b2f..79a9b4e 100644 --- a/Documentation/topdocs/INSTALL.texi +++ b/Documentation/topdocs/INSTALL.texi @@ -13,7 +13,7 @@ @contents @include macros.itexi -...@include install.itely +...@include contributor/basic-compile.itexi @bye -- 1.5.6.5
_______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel