From: Graham Percival Date: Fri, 31 Jul 2009 03:56:26 +0000 (-0700) Subject: Doc: remove install from AU, add to CG, rename to basic-compile.itexi X-Git-Tag: release/2.13.4-1~245 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=185ec0692c7517cf77752f98b5e4dc8e0360632c;p=lilypond.git Doc: remove install from AU, add to CG, rename to basic-compile.itexi --- diff --git a/Documentation/application.tely b/Documentation/application.tely index f5337541ee..b9970f04eb 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 ffe7797f16..03985cdaa3 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 0000000000..981879ea86 --- /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 --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 + +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 @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" 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 MacOS@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 + +@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{} line. (Adjust as necessary +for your hierarchy.) + +@example +/usr/X11R6/lib/X11/fonts +@end example + + +@unnumberedsubsubsec International fonts + +On MacOS@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 8d3112aa5e..0000000000 --- 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 --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 - -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 @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" 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 MacOS@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 - -@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{} line. (Adjust as necessary -for your hierarchy.) - -@example -/usr/X11R6/lib/X11/fonts -@end example - - -@unnumberedsubsubsec International fonts - -On MacOS@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 1d0dfd8bc0..014288eadd 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 de50b2f66e..79a9b4e97f 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