X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fuser%2Finstall.itely;h=faad7342a372d47bc81b106844825ff78456e6e0;hb=84dfa31321b6f0c3224ed8c586b64ec97e88402f;hp=1e1b86c42369264b389827cba231b39970159fc3;hpb=d3e5995c6de5a29249118c71cc60cbb61df5e938;p=lilypond.git diff --git a/Documentation/user/install.itely b/Documentation/user/install.itely index 1e1b86c423..faad7342a3 100644 --- a/Documentation/user/install.itely +++ b/Documentation/user/install.itely @@ -7,32 +7,90 @@ version that you are working on. See TRANSLATION for details. @end ignore -@c was "INSTALL - compiling and installing GNU LilyPond" +@ifclear INSTALL @node Install @chapter Install +@end ifclear -@html +@c I don't know what this comment does. Remove? -gp +@ignore +@h tml -@end html +@e nd html +@end ignore + +There are two sets of releases for LilyPond: stable releases, and +unstable development releases. Stable versions have an even-numbered +@q{minor} version number (i.e. 2.8, 2.10, 2.12, etc). Development +versions have an odd-numbered @q{minor} version number (i.e. 2.7, 2.9, +2.11, etc). + +Building LilyPond is a very involved process, so we @strong{highly} +recommend using the precompiled binaries. + +@menu +* Precompiled binaries:: +* Compiling from source:: +@end menu + + +@node Precompiled binaries +@section Precompiled binaries + +@subsection Downloading + +Check out @uref{http://lilypond.org/web/install/} for up to date +information on binary packages for your platform. If your operating +system is not covered on that general page, please see the complete list +at @uref{http://download.linuxaudio.org/lilypond/binaries/} + +We currently create binaries for + +@example +darwin-ppc - MacOS X powerpc +darwin-x86 - MacOS X intel +freebsd-64 - FreeBSD 6.x, x86_64 +freebsd-x86 - FreeBSD 4.x, x86 +linux-64 - Any GNU/Linux distribution, x86_64 +linux-arm - Any GNU/Linux distribution, arm +linux-ppc - Any GNU/Linux distribution, powerpc +linux-x86 - Any GNU/Linux distribution, x86 +mingw - Windows x86 +@end example -@section Downloading -Even numbered minor versions are `stable' (2.6, 2.8, etc), while odd -version are development releases (2.7, 2.9, etc). Building LilyPond -is an involved process. If possible -@uref{http://lilypond.org/install,download a precompiled binary} for -your platform. +@c TRANSLATORS: +@c Please **do not** translate anything below this line. Users +@c should not be compiling LilyPond themselves; if they really +@c want to do so, they should be able to read the English docs, +@c because they'll probably need to ask questions in English +@c on the -devel list. -gp -@subsection Source code +@node Compiling from source +@section Compiling from source + +@menu +* Downloading source code:: +* Requirements:: +* Building LilyPond:: +* Building documentation without compiling LilyPond:: +* Testing LilyPond:: +* Problems:: +@end menu + +@node Downloading source code +@subsection Downloading source code Download source -@itemize @bullet + +@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 @@ -46,19 +104,14 @@ The repository does not contain generated files. To create For information on packaging, see @uref{http://lilypond.org/devel}. -@subsection Precompiled binary packages - -Check out @uref{http://lilypond.org/web/install/} for up to date -information on binary packages for your platform. - +@node Requirements +@subsection Requirements -@section Requirements +@unnumberedsubsubsec Compilation -@subsection Compilation - -In addition to the packages needed for running Lilypond (see below), -you need the following extra packages for building. +In addition to the packages needed for running Lilypond (see below), you +need the following extra packages for building. When installing a binary package FOO, you may need to install the FOO-devel, libFOO-dev or FOO-dev package too. @@ -67,24 +120,17 @@ FOO-devel, libFOO-dev or FOO-dev package too. @item @uref{http://fontforge.sf.net/,FontForge} 20060125 or newer. -@item New Century Schoolbook fonts, as PFB files. These are shipped -with X11 and Ghostscript, and are named @file{c059033l.pfb} +@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.xs4all.nl/~hanwen/mftrace/,mftrace} (1.1.19 or -newer), - -You will need to install some additional packages to get mftrace to -work. - -@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{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.8 or newer). +@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 4.x or +@item @uref{http://gcc.gnu.org/, The GNU c++ compiler} (version 4.x or newer). @item @uref{http://www.python.org,Python} (version 2.4 or newer) @@ -104,12 +150,12 @@ header files and libraries. @end itemize -@subsection Running requirements -Running LilyPond requires proper installation of the following -software +@unnumberedsubsubsec Running requirements -@itemize @bullet +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://www.freetype.org/,FontConfig} (version 2.2). @@ -127,21 +173,14 @@ International fonts are required to create music with international text or lyrics. -@subsection Building documentation +@unnumberedsubsubsec 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. The -documentation is built by issuing -@quotation -@example -make web -@end example -@end quotation +This process requires a successful compile of lilypond, and some +additional tools and packages -Building the website requires some additional tools and packages - -@itemize @bullet +@itemize @item The @uref{http://netpbm.sourceforge.net/,netpbm utilities} @item ImageMagick @item International fonts (see input/regression/utf-8.ly for hints @@ -152,63 +191,46 @@ and the patch from @uref{http://bugs.ghostscript.com/show_bug.cgi?id=688017}. @end itemize -The HTML files can be installed into the standard documentation path -by issuing +The documentation is built by issuing -@quotation @example -make out=www web-install +make web @end example -@end quotation -@section Testing LilyPond - -@html - -@end html +After compilation, the HTML documentation tree is available in +@file{out-www/offline-root/}, and can be browsed locally. -LilyPond comes with an extensive suite that excercises the entire -program. This suite can be used to automatically check the impact of a -change. This is done as follows +The HTML and PDF files can be installed into the standard documentation +path by issuing @example - make test-baseline - @emph{## apply your changes, compile} - make check +make out=www web-install @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 +It is also possible to build a documentation tree in +@file{out-www/online-root/}, with special processing, so it can be used +on a website with content negotiation for automatic language selection; +this can be achieved by issuing @example - make test-redo @emph{## redo files differing from baseline} - make test-clean @emph{## remove all test results} +make WEB_TARGETS=online web @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 +and both @q{offline} and @q{online} targets can be generated by issuing @example - ./buildscripts/build-coverage.sh - @emph{# uncovered files, least covered first} - python ./buildscripts/coverage.py --summary out-cov/*.cc - @emph{# consecutive uncovered lines, longest first} - python ./buildscripts/coverage.py --uncovered out-cov/*.cc +make WEB_TARGETS="offline online" web @end example -@section Building LilyPond + +@node Building LilyPond +@subsection Building LilyPond + +@unnumberedsubsubsec Compiling To install GNU LilyPond, type -@quotation + @example gunzip -c lilypond-x.y.z | tar xf - cd lilypond-x.y.z @@ -216,60 +238,161 @@ cd lilypond-x.y.z make make install @end example -@end quotation If you are not root, you should choose a @code{--prefix} argument that points into your home directory, e.g. -@quotation + @example ./configure --prefix=$HOME/usr @end example -@end quotation -@subsection Configuring for multiple platforms +@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 configure. You should use @samp{make conf=CONF} to generate +option of configure. You should use @code{make conf=CONF} to generate the output in @file{out-CONF}. Example: Suppose you want to build with and without profiling, then use the following for the normal build -@quotation @example ./configure --prefix=$HOME/usr/ --enable-checking make make install @end example -@end quotation and for the profiling version, specify a different configuration -@quotation @example ./configure --prefix=$HOME/usr/ --enable-profiling --enable-config=prof --disable-checking make conf=prof make conf=prof install @end example -@end quotation +@node Building documentation without compiling LilyPond +@subsection Building documentation without compiling LilyPond + +The documentation can be built locally without compiling lilypond from +scratch. -@section Problems +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 web +% change the lilypond directory as appropriate +@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 +unstable Lily will fail to build the docs. + +You may build the manual ( Documentation/user/ ) without building all +the input/* stuff. + +@knownissues + +You may also need to create a script for @command{pngtopnm} and +@code{pnmtopng}. On Linux, I use this: + +@verbatim +export LD_LIBRARY_PATH=/usr/lib +exec /usr/bin/pngtopnm "$@" +@end verbatim + +On OSX, I use this: + +@verbatim +export DYLD_LIBRARY_PATH=/sw/lib +exec /sw/bin/pngtopnm "$@" +@end verbatim + +In order to force make to build a complete manual (this does not +rebuild all examples, only things which are changed), I recommend +writing a script like this: + +@verbatim +### run from Documentation/user/ +# possibly required on OSX and/or old texinfo +# ulimit -n 4096 +if [ -e out-www/lilypond.texi ]; then rm out-www/lilypond.* ; fi; +if [ -e out-www/lilypond-program.texi ]; then rm +out-www/lilypond-program.* ; fi; +if [ -e out-www/lilypond-learning.texi ]; then rm +out-www/lilypond-learning.* ; fi; +nice make LILYPOND_EXTERNAL_BINARY=~/usr/bin/lilypond web +@end verbatim + +To rebuild the complete HTML docs, run the above script from the +@file{Documentation/user/} directory, then run the final line (the +@code{nice make}) from the top source dir. + + + +@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 +./buildscripts/build-coverage.sh +@emph{# uncovered files, least covered first} +python ./buildscripts/coverage.py --summary out-cov/*.cc +@emph{# consecutive uncovered lines, longest first} +python ./buildscripts/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. -@subsection Bison 1.875 +@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 +before `goto'" in line 4922 due to a bug in bison. To fix, please recompile bison 1.875 with the following fix -@quotation @example $ cd lily; make out/parser.cc $ vi +4919 out/parser.cc @@ -277,41 +400,28 @@ $ vi +4919 out/parser.cc # save $ make @end example -@end quotation -@unnumberedsubsec MacOS X - -For Fink, use the following command to compile. - -@verbatim -export GUILE=guile-1.6 -export GUILE_CONFIG=guile-1.6-config -export PKG_CONFIG_PATH=/sw/lib/freetype219/lib/pkgconfig/:/sw/lib/fontconfig2/lib/pkgconfig/ -./configure -@end verbatim +@unnumberedsubsubsec Solaris -@unnumberedsubsec Solaris - -@itemize @bullet -@item Solaris7, ./configure +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 -@quotation + @example - CONFIG_SHELL=/bin/ksh ksh -c ./configure +CONFIG_SHELL=/bin/ksh ksh -c ./configure @end example -@end quotation + +@noindent or -@quotation + @example - CONFIG_SHELL=/bin/bash bash -c ./configure +CONFIG_SHELL=/bin/bash bash -c ./configure @end example -@end quotation -@item FreeBSD +@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}. @@ -324,10 +434,8 @@ for your hierarchy.) /usr/X11R6/lib/X11/fonts @end example -@end itemize - -@section International fonts +@unnumberedsubsubsec International fonts On MacOs X, all fonts are installed by default. However, finding all system fonts requires a bit of configuration; see