>From 9696c2f384614ba933f5949ffed33db390ed60ab Mon Sep 17 00:00:00 2001 From: Graham Percival 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. address@hidden * 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 address@hidden application/install.itely address@hidden @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 @@ address@hidden -*- coding: utf-8; mode: texinfo; -*- + + address@hidden DO NOT TRANSLATE THIS FILE + address@hidden include any node/sections from the higher-level *texi file. address@hidden @n ode Compiling from source address@hidden @s ection Compiling from source + address@hidden +* Downloading source code:: +* Requirements:: +* Building LilyPond:: +* Building documentation:: +* Testing LilyPond:: +* Problems:: address@hidden menu + address@hidden Downloading source code address@hidden Downloading source code + +Download source + address@hidden address@hidden tarballs from address@hidden://lilypond.org/download/} by HTTP. address@hidden tarballs from address@hidden://download.linuxaudio.org/lilypond/} by HTTP. address@hidden +GIT from @uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=summary,git.sv.gnu.org} + address@hidden +git clone git://git.sv.gnu.org/lilypond.git address@hidden example + +The repository does not contain generated files. To create address@hidden, run address@hidden +./autogen.sh address@hidden example address@hidden itemize + +For information on packaging, see @uref{http://lilypond.org/devel}. + + address@hidden Requirements address@hidden Requirements + address@hidden 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 + address@hidden @columnfractions .5 .5 address@hidden Distribution address@hidden Command + address@hidden Debian, Ubuntu address@hidden @code{sudo apt-get build-dep lilypond} + address@hidden Fedora, RHEL address@hidden @code{sudo yum-builddep lilypond} + address@hidden openSUSE, SLED address@hidden sorry for the idiosyncratic command, I really asked and argued address@hidden for "zypper build-dep" :-( address@hidden @code{sudo zypper --build-deps-only source-install lilypond} + address@hidden multitable + +When installing a binary package FOO, you may need to install the +FOO-devel, libFOO-dev or FOO-dev package too. + address@hidden + address@hidden @uref{http://fontforge.sf.net/,FontForge} 20060125 or newer. + address@hidden @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. + address@hidden @uref{http://www.lcdf.org/~eddietwo/type/#t1utils,t1utils} +(version 1.33 or newer recommended). + address@hidden New Century Schoolbook fonts, as PFB files. These are shipped with +X11 and Ghostscript, and are named @file{c059033l.pfb} address@hidden, @file{c059013l.pfb} and @file{c059016l.pfb}. + address@hidden @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. + address@hidden @uref{ftp://ftp.gnu.org/gnu/texinfo/,Texinfo} (version 4.11 or newer). + address@hidden @uref{http://gcc.gnu.org/, The GNU c++ compiler} (version 3.4 or +newer. 4.x is strongly recommended). + address@hidden @uref{http://www.python.org,Python} (version 2.4 or newer) + address@hidden @uref{ftp://ftp.gnu.org/gnu/make/,GNU Make} (version 3.78 or newer). + address@hidden @uref{http://www.gnu.org/software/gettext/gettext.html,gettext} +(version 0.17 or newer). + address@hidden @uref{http://www.gnu.org/software/flex/,Flex}. + address@hidden @uref{http://www.perl.org/,Perl}. + address@hidden @uref{http://www.gnu.org/software/bison/,GNU Bison}. + address@hidden All packages required for running, including development packages with +header files and libraries. + address@hidden itemize + + address@hidden Running requirements + +Running LilyPond requires proper installation of the following software + address@hidden + address@hidden @uref{http://www.freetype.org/,Freetype} (version 2.1.10 or newer). address@hidden @uref{http://fontconfig.org/,FontConfig} (version 2.2 or newer). address@hidden @uref{http://www.pango.org/,Pango} (version 1.12 or newer). address@hidden @uref{http://www.gnu.org/software/guile/guile.html,GUILE} +(version 1.8.2 or newer), or patch 1.8.1 with address@hidden://lilypond.org/vc/gub.darcs/patches/guile-1.8-rational.patch}. address@hidden @uref{http://www.python.org,Python} (version 2.4 or newer). address@hidden @uref{http://www.ghostscript.com,Ghostscript} (version 8.15 or +newer. 8.60 recommended) address@hidden Dejaview. (This is normally installed by default) address@hidden itemize + +International fonts are required to create music with international text +or lyrics. + + address@hidden Requirements for building documentation + +You can view the documentation online at address@hidden://lilypond.org/doc/}, but you can also build it locally. +This process requires a successful compile of LilyPond, and some +additional tools and packages: + address@hidden address@hidden The @uref{http://netpbm.sourceforge.net/,netpbm utilities} address@hidden ImageMagick address@hidden International fonts (see input/regression/utf-8.ly for hints +about which font packages are necessary for your platform) address@hidden Ghostscript 8.60 or newer, or 8.50 with the patch from address@hidden://bugs.ghostscript.com/show_bug.cgi?id=688154} +and the patch from address@hidden://bugs.ghostscript.com/show_bug.cgi?id=688017}. address@hidden @uref{http://www.nongnu.org/texi2html/,Texi2HTML} 1.80 or newer address@hidden rsync address@hidden itemize + + address@hidden Building LilyPond address@hidden Building LilyPond + address@hidden Compiling + +To install GNU LilyPond, type + address@hidden +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' address@hidden example + address@hidden +If you are not root, you should choose a @code{--prefix} argument that +points into your home directory, e.g. + address@hidden +./configure --prefix=$HOME/usr address@hidden example + + address@hidden 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 + address@hidden +./configure --prefix=$HOME/usr/ --enable-checking +make +make install address@hidden example + +and for the profiling version, specify a different configuration + address@hidden +./configure --prefix=$HOME/usr/ --enable-profiling --enable-config=prof --disable-checking +make conf=prof +make conf=prof install address@hidden example + + address@hidden 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}: + address@hidden +mkdir lily-build && cd lily-build address@hidden/configure address@hidden + address@hidden example + + address@hidden Useful @command{make} variables + +If a less verbose build output if desired, the variable address@hidden may be set to @code{1} on @command{make} command +line, or in @file{local.make} at top of the build tree. + + address@hidden Building documentation address@hidden Building documentation + +This requires a successful compile of LilyPond, or using an external +LilyPond binary. + address@hidden +* Commands for building documentation:: Compiling and installing the documentation. +* Building documentation without compiling LilyPond:: Using a LilyPond binary already installed. address@hidden menu + address@hidden Commands for building documentation address@hidden Commands for building documentation + +The documentation is built by issuing + address@hidden +make doc address@hidden example + +After compilation, the HTML documentation tree is available in address@hidden/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 + address@hidden +make install-doc address@hidden example + address@hidden +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 + address@hidden +make info address@hidden example + address@hidden +Separate installation of this documentation is done by issuing + address@hidden +make install-info address@hidden example + address@hidden +Note that to get the images in Info documentation, @code{install-doc} +target creates symbolic links to HTML and PDF installed documentation +tree in @address@hidden/share/info}, in order to save disk space, +whereas @code{install-info} copies images in address@hidden@var{prefix}/share/info} subdirectories. + +It is possible to build a documentation tree in address@hidden/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 + address@hidden +make WEB_TARGETS=online doc address@hidden example + address@hidden +and both @q{offline} and @q{online} targets can be generated by issuing + address@hidden +make WEB_TARGETS="offline online" doc address@hidden example + +Several targets are available to clean the documentation build and +help with maintaining documentation; an overview of these targets is +available with + address@hidden +make help address@hidden example + address@hidden +from every directory in the build tree. Most targets for +documentation maintenance are available from @file{Documentation/}; address@hidden FIXME: xref to CG +for more information, see the Contributors' Guide, section address@hidden 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. + + address@hidden + +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} address@hidden 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 address@hidden files that LilyPond should process simultaneously, e.g. on +a bi-processor or dual core machine + address@hidden +make -j3 CPU_COUNT=3 doc address@hidden example + address@hidden +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. + address@hidden +touch Documentation/notation/*.itely +touch Documentation/snippets/*.ly address@hidden example + + address@hidden Building documentation without compiling LilyPond address@hidden 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 + address@hidden +./autogen.sh # ignore any warning messages +cp GNUmakefile.in GNUmakefile +make -C python +nice make LILYPOND_EXTERNAL_BINARY=/path/to/bin/lilypond doc address@hidden 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 address@hidden/}, 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 + address@hidden +make out=www WWW-post address@hidden example + address@hidden + +You may also need to create a script for @command{pngtopnm} and address@hidden On GNU/Linux, I use this: + address@hidden +export LD_LIBRARY_PATH=/usr/lib +exec /usr/bin/pngtopnm "$@" address@hidden verbatim + +On address@hidden, I use this: + address@hidden +export DYLD_LIBRARY_PATH=/sw/lib +exec /sw/bin/pngtopnm "$@" address@hidden verbatim + + + address@hidden Testing LilyPond address@hidden Testing LilyPond + address@hidden + address@hidden 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 + address@hidden +make test-baseline address@hidden apply your changes, compile} +make check address@hidden 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 + address@hidden +make test-redo @emph{## redo files differing from baseline} +make test-clean @emph{## remove all test results} address@hidden example + address@hidden +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: address@hidden://lilypond.org/vc/gub.darcs/patches/guile-1.9-gcstats.patch}. + +For checking the coverage of the test suite, do the following + address@hidden +./scripts/auxiliar/build-coverage.sh address@hidden uncovered files, least covered first} +./scripts/auxiliar/coverage.py --summary out-cov/*.cc address@hidden consecutive uncovered lines, longest first} +./scripts/auxiliar/coverage.py --uncovered out-cov/*.cc address@hidden example + + address@hidden Problems address@hidden 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. + address@hidden 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 + address@hidden +$ cd lily; make out/parser.cc +$ vi +4919 out/parser.cc +# append a semicolon to the line containing "__attribute__ ((__unused__)) +# save +$ make address@hidden example + + address@hidden Solaris + +Solaris7, ./configure + address@hidden/configure} needs a POSIX compliant shell. On Solaris7, address@hidden/bin/sh} is not yet POSIX compliant, but @file{/bin/ksh} or bash +is. Run configure like + address@hidden +CONFIG_SHELL=/bin/ksh ksh -c ./configure address@hidden example + address@hidden +or + address@hidden +CONFIG_SHELL=/bin/bash bash -c ./configure address@hidden example + address@hidden 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{} line. (Adjust as necessary +for your hierarchy.) + address@hidden +/usr/X11R6/lib/X11/fonts address@hidden example + + address@hidden International fonts + +On address@hidden, all fonts are installed by default. However, finding all +system fonts requires a bit of configuration; see address@hidden://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: + address@hidden +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 address@hidden 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 @@ address@hidden -*- coding: utf-8; mode: texinfo; -*- - - address@hidden DO NOT TRANSLATE THIS FILE - address@hidden Compiling from source address@hidden Compiling from source - address@hidden -* Downloading source code:: -* Requirements:: -* Building LilyPond:: -* Building documentation:: -* Testing LilyPond:: -* Problems:: address@hidden menu - address@hidden Downloading source code address@hidden Downloading source code - -Download source - address@hidden address@hidden tarballs from address@hidden://lilypond.org/download/} by HTTP. address@hidden tarballs from address@hidden://download.linuxaudio.org/lilypond/} by HTTP. address@hidden -GIT from @uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=summary,git.sv.gnu.org} - address@hidden -git clone git://git.sv.gnu.org/lilypond.git address@hidden example - -The repository does not contain generated files. To create address@hidden, run address@hidden -./autogen.sh address@hidden example address@hidden itemize - -For information on packaging, see @uref{http://lilypond.org/devel}. - - address@hidden Requirements address@hidden Requirements - address@hidden 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 - address@hidden @columnfractions .5 .5 address@hidden Distribution address@hidden Command - address@hidden Debian, Ubuntu address@hidden @code{sudo apt-get build-dep lilypond} - address@hidden Fedora, RHEL address@hidden @code{sudo yum-builddep lilypond} - address@hidden openSUSE, SLED address@hidden sorry for the idiosyncratic command, I really asked and argued address@hidden for "zypper build-dep" :-( address@hidden @code{sudo zypper --build-deps-only source-install lilypond} - address@hidden multitable - -When installing a binary package FOO, you may need to install the -FOO-devel, libFOO-dev or FOO-dev package too. - address@hidden - address@hidden @uref{http://fontforge.sf.net/,FontForge} 20060125 or newer. - address@hidden @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. - address@hidden @uref{http://www.lcdf.org/~eddietwo/type/#t1utils,t1utils} -(version 1.33 or newer recommended). - address@hidden New Century Schoolbook fonts, as PFB files. These are shipped with -X11 and Ghostscript, and are named @file{c059033l.pfb} address@hidden, @file{c059013l.pfb} and @file{c059016l.pfb}. - address@hidden @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. - address@hidden @uref{ftp://ftp.gnu.org/gnu/texinfo/,Texinfo} (version 4.11 or newer). - address@hidden @uref{http://gcc.gnu.org/, The GNU c++ compiler} (version 3.4 or -newer. 4.x is strongly recommended). - address@hidden @uref{http://www.python.org,Python} (version 2.4 or newer) - address@hidden @uref{ftp://ftp.gnu.org/gnu/make/,GNU Make} (version 3.78 or newer). - address@hidden @uref{http://www.gnu.org/software/gettext/gettext.html,gettext} -(version 0.17 or newer). - address@hidden @uref{http://www.gnu.org/software/flex/,Flex}. - address@hidden @uref{http://www.perl.org/,Perl}. - address@hidden @uref{http://www.gnu.org/software/bison/,GNU Bison}. - address@hidden All packages required for running, including development packages with -header files and libraries. - address@hidden itemize - - address@hidden Running requirements - -Running LilyPond requires proper installation of the following software - address@hidden - address@hidden @uref{http://www.freetype.org/,Freetype} (version 2.1.10 or newer). address@hidden @uref{http://fontconfig.org/,FontConfig} (version 2.2 or newer). address@hidden @uref{http://www.pango.org/,Pango} (version 1.12 or newer). address@hidden @uref{http://www.gnu.org/software/guile/guile.html,GUILE} -(version 1.8.2 or newer), or patch 1.8.1 with address@hidden://lilypond.org/vc/gub.darcs/patches/guile-1.8-rational.patch}. address@hidden @uref{http://www.python.org,Python} (version 2.4 or newer). address@hidden @uref{http://www.ghostscript.com,Ghostscript} (version 8.15 or -newer. 8.60 recommended) address@hidden Dejaview. (This is normally installed by default) address@hidden itemize - -International fonts are required to create music with international text -or lyrics. - - address@hidden Requirements for building documentation - -You can view the documentation online at address@hidden://lilypond.org/doc/}, but you can also build it locally. -This process requires a successful compile of LilyPond, and some -additional tools and packages: - address@hidden address@hidden The @uref{http://netpbm.sourceforge.net/,netpbm utilities} address@hidden ImageMagick address@hidden International fonts (see input/regression/utf-8.ly for hints -about which font packages are necessary for your platform) address@hidden Ghostscript 8.60 or newer, or 8.50 with the patch from address@hidden://bugs.ghostscript.com/show_bug.cgi?id=688154} -and the patch from address@hidden://bugs.ghostscript.com/show_bug.cgi?id=688017}. address@hidden @uref{http://www.nongnu.org/texi2html/,Texi2HTML} 1.80 or newer address@hidden rsync address@hidden itemize - - address@hidden Building LilyPond address@hidden Building LilyPond - address@hidden Compiling - -To install GNU LilyPond, type - address@hidden -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' address@hidden example - address@hidden -If you are not root, you should choose a @code{--prefix} argument that -points into your home directory, e.g. - address@hidden -./configure --prefix=$HOME/usr address@hidden example - - address@hidden 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 - address@hidden -./configure --prefix=$HOME/usr/ --enable-checking -make -make install address@hidden example - -and for the profiling version, specify a different configuration - address@hidden -./configure --prefix=$HOME/usr/ --enable-profiling --enable-config=prof --disable-checking -make conf=prof -make conf=prof install address@hidden example - - address@hidden 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}: - address@hidden -mkdir lily-build && cd lily-build address@hidden/configure address@hidden - address@hidden example - - address@hidden Useful @command{make} variables - -If a less verbose build output if desired, the variable address@hidden may be set to @code{1} on @command{make} command -line, or in @file{local.make} at top of the build tree. - - address@hidden Building documentation address@hidden Building documentation - -This requires a successful compile of LilyPond, or using an external -LilyPond binary. - address@hidden -* Commands for building documentation:: Compiling and installing the documentation. -* Building documentation without compiling LilyPond:: Using a LilyPond binary already installed. address@hidden menu - address@hidden Commands for building documentation address@hidden Commands for building documentation - -The documentation is built by issuing - address@hidden -make doc address@hidden example - -After compilation, the HTML documentation tree is available in address@hidden/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 - address@hidden -make install-doc address@hidden example - address@hidden -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 - address@hidden -make info address@hidden example - address@hidden -Separate installation of this documentation is done by issuing - address@hidden -make install-info address@hidden example - address@hidden -Note that to get the images in Info documentation, @code{install-doc} -target creates symbolic links to HTML and PDF installed documentation -tree in @address@hidden/share/info}, in order to save disk space, -whereas @code{install-info} copies images in address@hidden@var{prefix}/share/info} subdirectories. - -It is possible to build a documentation tree in address@hidden/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 - address@hidden -make WEB_TARGETS=online doc address@hidden example - address@hidden -and both @q{offline} and @q{online} targets can be generated by issuing - address@hidden -make WEB_TARGETS="offline online" doc address@hidden example - -Several targets are available to clean the documentation build and -help with maintaining documentation; an overview of these targets is -available with - address@hidden -make help address@hidden example - address@hidden -from every directory in the build tree. Most targets for -documentation maintenance are available from @file{Documentation/}; address@hidden FIXME: xref to CG -for more information, see the Contributors' Guide, section address@hidden 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. - - address@hidden - -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} address@hidden 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 address@hidden files that LilyPond should process simultaneously, e.g. on -a bi-processor or dual core machine - address@hidden -make -j3 CPU_COUNT=3 doc address@hidden example - address@hidden -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. - address@hidden -touch Documentation/notation/*.itely -touch Documentation/snippets/*.ly address@hidden example - - address@hidden Building documentation without compiling LilyPond address@hidden 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 - address@hidden -./autogen.sh # ignore any warning messages -cp GNUmakefile.in GNUmakefile -make -C python -nice make LILYPOND_EXTERNAL_BINARY=/path/to/bin/lilypond doc address@hidden 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 address@hidden/}, 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 - address@hidden -make out=www WWW-post address@hidden example - address@hidden - -You may also need to create a script for @command{pngtopnm} and address@hidden On GNU/Linux, I use this: - address@hidden -export LD_LIBRARY_PATH=/usr/lib -exec /usr/bin/pngtopnm "$@" address@hidden verbatim - -On address@hidden, I use this: - address@hidden -export DYLD_LIBRARY_PATH=/sw/lib -exec /sw/bin/pngtopnm "$@" address@hidden verbatim - - - address@hidden Testing LilyPond address@hidden Testing LilyPond - address@hidden - address@hidden 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 - address@hidden -make test-baseline address@hidden apply your changes, compile} -make check address@hidden 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 - address@hidden -make test-redo @emph{## redo files differing from baseline} -make test-clean @emph{## remove all test results} address@hidden example - address@hidden -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: address@hidden://lilypond.org/vc/gub.darcs/patches/guile-1.9-gcstats.patch}. - -For checking the coverage of the test suite, do the following - address@hidden -./scripts/auxiliar/build-coverage.sh address@hidden uncovered files, least covered first} -./scripts/auxiliar/coverage.py --summary out-cov/*.cc address@hidden consecutive uncovered lines, longest first} -./scripts/auxiliar/coverage.py --uncovered out-cov/*.cc address@hidden example - - address@hidden Problems address@hidden 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. - address@hidden 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 - address@hidden -$ cd lily; make out/parser.cc -$ vi +4919 out/parser.cc -# append a semicolon to the line containing "__attribute__ ((__unused__)) -# save -$ make address@hidden example - - address@hidden Solaris - -Solaris7, ./configure - address@hidden/configure} needs a POSIX compliant shell. On Solaris7, address@hidden/bin/sh} is not yet POSIX compliant, but @file{/bin/ksh} or bash -is. Run configure like - address@hidden -CONFIG_SHELL=/bin/ksh ksh -c ./configure address@hidden example - address@hidden -or - address@hidden -CONFIG_SHELL=/bin/bash bash -c ./configure address@hidden example - address@hidden 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{} line. (Adjust as necessary -for your hierarchy.) - address@hidden -/usr/X11R6/lib/X11/fonts address@hidden example - - address@hidden International fonts - -On address@hidden, all fonts are installed by default. However, finding all -system fonts requires a bit of configuration; see address@hidden://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: - address@hidden -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 address@hidden 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) address@hidden currently broken; will fix after 2.14 address@hidden @include compile.itely address@hidden 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 address@hidden install.itely address@hidden contributor/basic-compile.itexi @bye -- 1.5.6.5