]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/topdocs/INSTALL.texi
release: 1.2.13
[lilypond.git] / Documentation / topdocs / INSTALL.texi
index c246ff15749514aa3c212cb8cf8f75dbc2e1a6cd..aedec6a853715a65385da76b997354a1cbb5b426 100644 (file)
@@ -2,37 +2,13 @@
 @setfilename INSTALL.info
 @settitle INSTALL - compiling and installing GNU LilyPond
 
-@node Top, , AUTHORS, (dir)
+@node Top, , , (dir)
 @top
-@menu
-* INSTALL - compiling and installing GNU LilyPond::INSTALL - compiling and installing GNU LilyPond
-@end menu
-
-
-@node INSTALL - compiling and installing GNU LilyPond, abstract, , Top
-@menu
-* abstract::                      abstract
-* obtaining::                     obtaining
-* PREREQUISITES::                 PREREQUISITES
-* running::                       running
-* WEBSITE::                       WEBSITE
-* CONFIGURING and COMPILING::     CONFIGURING and COMPILING
-* CONFIGURING FOR MULTIPLE PLATFORMS::CONFIGURING FOR MULTIPLE PLATFORMS
-* INSTALLING::                    INSTALLING
-* REDHAT LINUX::                  REDHAT LINUX
-* DEBIAN GNU/LINUX::              DEBIAN GNU/LINUX
-* WINDOWS NT/95::                 WINDOWS NT/95
-* w32::                           w32
-* BUGS::                          BUGS
-* AUTHORS::                       AUTHORS
-@end menu
-@chapter INSTALL - compiling and installing GNU LilyPond
 
+@chapter INSTALL - compiling and installing GNU LilyPond
 
-@node abstract, obtaining, INSTALL - compiling and installing GNU LilyPond, INSTALL - compiling and installing GNU LilyPond
-@section abstract
 
-TODO: document xdeltas
+@section Abstract
 
 This document explains what you need to install LilyPond, and what you
 should do.  If you are going to compile and install LilyPond often,
@@ -41,18 +17,27 @@ e.g. when doing development, you might want to check out the
 variables and symlinks, which comes in handly when you have to compile 
 LilyPond more often.  
 
-@node obtaining, PREREQUISITES, abstract, INSTALL - compiling and installing GNU LilyPond
-@section obtaining
+@section Obtaining
 
 You can get the latest version of LilyPond at
-@url{ ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/}.  Refer to the links
+@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/,ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/}.  Refer to the links
 document for mirror sites.
 
 @emph{If you upgrade by patching do remember to rerun autoconf after
 applying the patch}.
 
-@node PREREQUISITES, running, obtaining, INSTALL - compiling and installing GNU LilyPond
-@section PREREQUISITES
+If you do not want to download the entire archive for each version, the
+safest method for upgrading is to use @file{xdelta}, see
+@uref{ftp://ftp.xcf.berkeley.edu/pub/xdelta/}
+
+The following command produces @file{lilypond-1.1.55.tar.gz} from
+@file{lilypond-1.1.54} identical (up to compression dates) to the .55 on
+the FTP site.
+@example
+  xdelta patch lilypond-1.1.54-1.1.55.xd lilypond-1.1.54.tar.gz
+@end example
+
+@section Prerequisites
 
 For compilation you need:
 
@@ -65,36 +50,34 @@ Solaris.
 compile if you use debugging information.  If you are short on
 disk-space run configure with @code{--disable-debugging}.
 
+@item
 Although we recommend to use Unix, LilyPond is known to run on Windows
-NT/95/98 as well.  See Section @xref{w32}.
+NT/95/98 as well.  See Section Windows NT/95,es.
 
-@item  EGCS 1.1 or newer. Check out @url{ ftp://ftp.gnu.org/pub/gcc/}
+@item  EGCS 1.1 or newer. Check out @uref{ftp://ftp.gnu.org/pub/gcc/}.
 
 @item  Python 1.5,
 Check out
-@url{ftp://ftp.python.org} or @url{ftp://ftp.cwi.nl/pub/python}.
+@uref{ftp://ftp.python.org} or @uref{ftp://ftp.cwi.nl/pub/python}.
 
-@item  GUILE 1.3,  check out @url{http://www.gnu.org/software/guile/guile.html}.
+@item  GUILE 1.3,  check out @uref{http://www.gnu.org/software/guile/guile.html,http://www.gnu.org/software/guile/guile.html}.
 
 @item GNU make. 
-Check out @url{ftp://ftp.gnu.org/make/}.
+Check out @uref{ftp://ftp.gnu.org/make/,ftp://ftp.gnu.org/make/}.
 
 @item Flex (version 2.5.4 or newer). 
-Check out @url{ftp://ftp.gnu.org/flex/}.
+Check out @uref{ftp://ftp.gnu.org/flex/,ftp://ftp.gnu.org/flex/}.
 
 @item Bison (version 1.25 or newer).
-Check out @url{ftp://ftp.gnu.org/bison/}.
+Check out @uref{ftp://ftp.gnu.org/bison/,ftp://ftp.gnu.org/bison/}.
 
-@item Texinfo. Check out @url{ftp://ftp.gnu.org/pub/texinfo/}.
+@item Texinfo. Check out @uref{ftp://ftp.gnu.org/pub/texinfo/,ftp://ftp.gnu.org/pub/texinfo/}.
 Most documentation is in texinfo.
 
-@item Yodl.  Needed for obsolete docs (1.31.17)
-@url{ftp://ftp.lilypond.org/pub/yodl}.
-
 @item The geometry package for LaTeX is needed to use ly2dvi.  
 Available at 
-@url{ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry}
-or at mirror site @url{ftp://ftp.dante.de}
+@uref{ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry,ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry}
+or at mirror site @uref{ftp://ftp.dante.de,ftp://ftp.dante.de}
 
 @item MetaPost, if you want to use direct PostScript output. Please
 note  that  tetex-0.4pl8 (included with Redhat 5.x) does not include
@@ -102,8 +85,7 @@ note  that  tetex-0.4pl8 (included with Redhat 5.x) does not include
 
 @end itemize
 
-@node running, WEBSITE, PREREQUISITES, INSTALL - compiling and installing GNU LilyPond
-@section running
+@section Running
 
 GNU LilyPond does use a lot of resources. For operation you need the
 following software
@@ -113,7 +95,7 @@ following software
 @item A PostScript printer and/or viewer (such as Ghostscript) is strongly
     recommended.  Xdvi will show all embedded PostScript too if you have
     Ghostscript installed.
-@item  GUILE 1.3, check out @url{http://www.gnu.org/programs/guile.html}
+@item  GUILE 1.3, check out @uref{http://www.gnu.org/programs/guile.html,http://www.gnu.org/programs/guile.html}
 @end itemize
 
 For running LilyPond successfully you have to help TeX and MetaFont
@@ -135,8 +117,7 @@ the proper paths for the bourne and C-shell respectively are generated in
 LilyPond is a hiddeously big, slow and bloated program.  A fast CPU
 and plenty of RAM is recommended for comfortable use.
 
-@node WEBSITE, CONFIGURING and COMPILING, running, INSTALL - compiling and installing GNU LilyPond
-@section WEBSITE
+@section Website
 
 The website is the most convenient form to use for reading the
 documentation on-line documentation. It is made by entering @example 
@@ -150,16 +131,14 @@ If you want to auto-generate Lily's website, you'll need some additional
 conversion tools.
 
 @itemize @bullet
-@item YODL 1.31.15 or later.
-
 @item xpmtoppm (from the Portable Bitmap Utilities) (For RedHat Linux
             users: it is included within the package libgr-progs).
        the original is at
-@url{ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz}
+@uref{ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz,ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz}
 
 @item pnmtopng, which is also in libgr-progs for RedHat. The original is
 at
-@url{ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz}.i
+@uref{ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz,ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz}.i
 
 The version of @file{pnmtopng} that is distributed with RedHat 5.1 and
 5.2 contains a bug: pnmtopng is dynamically linked to the wrong
@@ -179,9 +158,9 @@ problem.
 
 You can then install the new pnmtopng into @file{/usr/local/bin/}
 
-@item Bib2html @url{http://pertsserver.cs.uiuc.edu/~hull/bib2html.}
+@item Bib2html @uref{http://pertsserver.cs.uiuc.edu/~hull/bib2html.,http://pertsserver.cs.uiuc.edu/~hull/bib2html.}
     Which, in turn depends on man2html for proper installation.
-man2html can be had from @url{http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05}.
+man2html can be had from @uref{http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05,http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05}.
 
 The website will build without this utility, but you will not see our
 hypertextified bibliography.
@@ -190,11 +169,7 @@ hypertextified bibliography.
 
 @end itemize
 
-You also have to install @file{buildscripts/out/ps-to-gifs} in a
-directory that is in the path.
-
-@node CONFIGURING and COMPILING, CONFIGURING FOR MULTIPLE PLATFORMS, WEBSITE, INSTALL - compiling and installing GNU LilyPond
-@section CONFIGURING and COMPILING
+@section configuring and compiling
 
 to install GNU LilyPond, simply type:
 @example 
@@ -208,17 +183,19 @@ to install GNU LilyPond, simply type:
 @end example 
 
 This will install a number of files, something close to:
-@example 
 
+@example 
        /usr/local/man/man1/mi2mu.1
        /usr/local/man/man1/convert-mudela.1
        /usr/local/man/man1/mudela-book.1
        /usr/local/man/man1/lilypond.1
        /usr/local/bin/lilypond
        /usr/local/bin/mi2mu
+       /usr/local/bin/convert-mudela
+       /usr/local/bin/mudela-book
+       /usr/local/bin/abc2ly
        /usr/local/share/lilypond/*
        /usr/local/share/locale/@{it,nl@}/LC_MESSAGES/lilypond.mo
 @end example 
 
 
@@ -236,8 +213,8 @@ adjust your environment variables to your taste:
 @code{CPPFLAGS} are the preprocessor flags. 
 
 The configure script is Cygnus configure, and it will accept
-@strong{--help}. If you are not root, you will probably have to make it
-with a different @strong{--prefix} option.  Our favourite location is
+@code{--help}. If you are not root, you will probably have to make it
+with a different @code{--prefix} option.  Our favourite location is
 
 @example 
 
@@ -259,20 +236,20 @@ Since GNU LilyPond currently is beta, you are advised to also use
 Options to configure include:
 
 @table @samp
-@item @strong{--enable-printing}
-    Enable debugging print routines (lilypond @strong{-D} option)
-@item @strong{--enable-optimise}
-    Set maximum optimisation: compile with @strong{-O2}.  This can be
+@item @code{--enable-printing}
+    Enable debugging print routines (lilypond @code{-D} option)
+@item @code{--enable-optimise}
+    Set maximum optimisation: compile with @code{-O2}.  This can be
 unreliable on some compiler/platform combinations (eg, DEC Alpha and PPC)
-@item @strong{--enable-profiling}
+@item @code{--enable-profiling}
     Compile with support for profiling.
-@item @strong{--enable-config}
+@item @code{--enable-config}
     Output to a different configuration file.  Needed for multi-platform
     builds
 @end table
 
 All options are documented in the @file{configure} help
-The option @strong{--enable-optimise} is recommended for Real Life usage.
+The option @code{--enable-optimise} is recommended for Real Life usage.
 
 If you do
 
@@ -286,11 +263,10 @@ everything will be compiled, but nothing will be installed.  The
 resulting binaries can be found in the subdirectories @file{out/} (which
 contain all files generated during compilation).
 
-@node CONFIGURING FOR MULTIPLE PLATFORMS, INSTALLING, CONFIGURING and COMPILING, INSTALL - compiling and installing GNU LilyPond
-@section CONFIGURING FOR MULTIPLE PLATFORMS
+@section configuring for multiple platforms
 
 If you want to compile LilyPond with different configuration settings,
-then, you can use the @strong{--enable-config} option.  Example: suppose I
+then, you can use the @code{--enable-config} option.  Example: suppose I
 want to build with and   without profiling.  Then I'd use the
 following for the normal build, 
 
@@ -313,10 +289,9 @@ and for the profiling version, I specify a different configuration.
 @end example 
 
 
-@node INSTALLING, REDHAT LINUX, CONFIGURING FOR MULTIPLE PLATFORMS, INSTALL - compiling and installing GNU LilyPond
-@section INSTALLING
+@section Installing
 
-If you have done a successful @code{make}, then a simple
+if you have done a successful @code{make}, then a simple
 
 @example 
 
@@ -330,18 +305,8 @@ If you are doing an upgrade, please remember to remove obsolete
 @file{.pk} and @file{.tfm} files of the fonts.  A script has been
 provided to do the work for you, see @file{bin/clean-fonts.sh}.
 
-@unnumberedsec CAVEATS
-    
 
-@itemize @bullet
-@item The -O2 option  triggers  bugs on various platforms (PowerPC, Alpha).
-    If you experience problems, you  should first try  turning off
-    this.
-@item  On PPC you need at least EGCS-1.1.2f.
-@end itemize
-
-@node REDHAT LINUX, DEBIAN GNU/LINUX, INSTALLING, INSTALL - compiling and installing GNU LilyPond
-@section REDHAT LINUX
+@section Redhat linux
 
 RedHat Linux users can compile an RPM. A spec file is in
 @file{make/out/lilypond.spec}, it is distributed along with the
@@ -356,8 +321,8 @@ You can make the rpm by issuing
 @end example 
 
 Precompiled i386 RedHat RPMS are available from
-@url{ftp://freshmeat.net/pub/rpms/lilypond/} and
-@url{http://linux.umbc.edu/software/lilypond/rpms/}.
+@uref{ftp://freshmeat.net/pub/rpms/lilypond/,ftp://freshmeat.net/pub/rpms/lilypond/} and
+@uref{http://linux.umbc.edu/software/lilypond/rpms/,http://linux.umbc.edu/software/lilypond/rpms/}.
 
 For compilation on a RedHat system you need these packages,
 in addition to the those needed for running:
@@ -370,30 +335,144 @@ in addition to the those needed for running:
 @item texinfo
 @end itemize
 
-@node DEBIAN GNU/LINUX, WINDOWS NT/95, REDHAT LINUX, INSTALL - compiling and installing GNU LilyPond
-@section DEBIAN GNU/LINUX
+@section Debian GNU/linux
 
 A Debian package is also available; contact Anthony Fok
 @email{foka@@debian.org}.  The build scripts are in the subdirectory
 @file{debian/}.
 
-@node WINDOWS NT/95, w32, DEBIAN GNU/LINUX, INSTALL - compiling and installing GNU LilyPond
-@section WINDOWS NT/95
-@node w32, BUGS, WINDOWS NT/95, INSTALL - compiling and installing GNU LilyPond
+@section Windows NT/95
+
+Separate instructions on building for W32 are available; See file
+README-W32, included with the sources.
+
+@section Problems
+
+
+For help and questions use @email{help-gnu-music@@gnu.org} and
+@email{gnu-music-discuss@@gnu.org}.  Please consult the faq before
+mailing your problems.
+
+If you find bugs, please send bug reports to
+@email{bug-gnu-music@@gnu.org}.
+
+Known bugs that are LilyPond's fault are listed in @file{TODO}, or
+demonstrated in @file{input/bugs/}.
+
+Known bugs that are not LilyPond's fault are documented here.
+
+@unnumbered All platforms
+@table @bullet
+@item GUILE 1.3.2
+Guile 1.3.2 is buggy in several respects. Do not use it for LilyPond.
+@end table
+
+@unnumbered LinuxPPC Bugs:
+
+@table @bullet
+@item R5, egcs-1.1.2-12c
+Egcs-1.1.2-12c (stock LinuxPPC R5) has a serious bug, upgrade to 
+fixed in egcs-1.1.2-12f or gcc-2.95-0a, @uref{ftp://dev.linuxppc.org/users/fsirl/R5/RPMS/ppc/}
+
+@item R4, egcs-1.0.2
+All compiling with @code{-O2} is suspect, in particular guile-1.3, and
+Lily herself will break.
+@end table
+
+
 
+@unnumbered Linux-i386
 
-Separate instructions on building for W32 are available
-@url{../../outdir/README-W32.html}.
+@table @bullet
+@item SuSE6.2 and similar platforms (glibc 2.1, libstdc++ 2.9.0)
 
-@node BUGS, AUTHORS, w32, INSTALL - compiling and installing GNU LilyPond
-@section BUGS
+Lily will crash during parsing (which suggests a C++ library
+incompatibility).  Precise cause, precise platform description or
+solution are not known.
+
+Note that this only happens on some computers with the said platform.
+
+@item GUILE
+A binary RPM of Guile 1.3 has been distributed from the LilyPond ftp
+site.  This binary was made in RedHat 5.x, and it will fail if this
+RPM is used with RedHat 6.x.
+
+
+@item libg++ 2.7
+
+LilyPond occasionally crashes while parsing the initialisation files.
+This is a very obscure bug, and usually entering the commandline
+differently "fixes" it.
+
+@example
+       lilypond input.ly 
+@end  example
+
+and
+@example
+       lilypond -I. ./input.ly 
+@end example
+makes a difference
+
+Typical stacktrace:
+@example
+       SIGSEGV
+       __libc_malloc (bytes=16384)
+       ?? ()
+       yyFlexLexer::yy_create_buffer ()
+       Includable_lexer::new_input (this=0x8209a00, s=@{strh_ = @{
+@end example
+
+This behaviour has been observed with machines that have old libg++
+versions (LinuxPPC feb '98, RedHat 4.x).  
+@end table
+
+
+
+
+@unnumbered Solaris:
+
+@table @bullet
+@item Sparc64/Solaris 2.6, GNU make-3.77
+
+GNU make-3.77 is buggy on this platform, upgrade to 3.78.1 or newer.
+
+
+@item Sparc64/Solaris 2.6, ld
+
+Not yet resolved.
+@end table
+
+
+@unnumbered AIX
+
+@table @bullet
+@item AIX 4.3 ld
+
+The following is from the gcc install/SPECIFIC file.
+@quotation
+   Some versions of the AIX binder (linker) can fail with a relocation
+   overflow severe error when the -bbigtoc option is used to link
+   GCC-produced object files into an executable that overflows the TOC. A
+   fix for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND  
+   -BBIGTOC) is available from IBM Customer Support and from its
+   27service.boulder.ibm.com website as PTF U455193.   
+
+   Binutils does not support AIX 4.3 (at least through release 2.9). GNU
+   as and GNU ld will not work properly and one should not configure GCC
+   to use those GNU utilities. Use the native AIX tools which do
+   interoperate with GCC.
+@end quotation
+
+add -Wl,-bbigtoc to USER_LDFLAGS, ie:
+@example
+    LDFLAGS='-Wl,-bbigtoc' ./configure
+@end example
+
+@end table
 
-Send bug reports to bug-gnu-music@@gnu.org.  For help and questions use
-help-gnu-music@@gnu.org and gnu-music-discuss@@gnu.org.  Please consult
-the faq before mailing your problems.
 
-@node AUTHORS, Top, BUGS, INSTALL - compiling and installing GNU LilyPond
-@section AUTHORS
+@section Authors
 
 @email{hanwen@@cs.uu.nl, Han-Wen Nienhuys}