@section Abstract
-TODO: document xdeltas
-
This document explains what you need to install LilyPond, and what you
should do. If you are going to compile and install LilyPond often,
e.g. when doing development, you might want to check out the
@section Obtaining
You can get the latest version of LilyPond at
-@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.
+@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/,
+ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/}.
+
@emph{If you upgrade by patching do remember to rerun autoconf after
applying the patch}.
+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:
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 Windows NT/95,es.
-@item EGCS 1.1 or newer. Check out @uref{ ftp://ftp.gnu.org/pub/gcc/, 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
-@uref{ftp://ftp.python.org,ftp://ftp.python.org} or @uref{ftp://ftp.cwi.nl/pub/python,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 @uref{http://www.gnu.org/software/guile/guile.html,http://www.gnu.org/software/guile/guile.html}.
+@item GUILE 1.3.4, check out @uref{http://www.gnu.org/software/guile/guile.html,http://www.gnu.org/software/guile/guile.html}.
@item GNU make.
Check out @uref{ftp://ftp.gnu.org/make/,ftp://ftp.gnu.org/make/}.
@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 @uref{http://www.gnu.org/programs/guile.html,http://www.gnu.org/programs/guile.html}
+@item GUILE 1.3.4, check out @uref{http://www.gnu.org/programs/guile.html,http://www.gnu.org/software/guile/}
@end itemize
For running LilyPond successfully you have to help TeX and MetaFont
@end itemize
-You also have to install @file{buildscripts/out/ps-to-gifs} in a
-directory that is in the path.
-
-@section configuring and compiling
+@section Configuring and compiling
to install GNU LilyPond, simply type:
@example
@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
resulting binaries can be found in the subdirectories @file{out/} (which
contain all files generated during compilation).
-@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 @code{--enable-config} option. Example: suppose I
@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
@section Redhat linux
@section Windows NT/95
-Separate instructions on building for W32 are available; See file
-README-W32, included with the sources.
+Separate instructions on building for W32 are available; See the files
+in @file{Documentation/ntweb/}, 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 LinuxPPC Bugs:
+
+@itemize
+@item 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 egcs-1.0.2 (LinuxPPC R4):
+all compiling with @code{-O2} is suspect, in particular guile-1.3, and
+Lily herself will break.
+@end itemize
+
+
-@section Bugs
+@unnumbered Linux-i386
-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.
+@itemize
+@item SuSE6.2 and similar platforms (glibc 2.1, libstdc++ 2.9.0)
-@section Authors
+Lily will crash during parsing (which suggests a C++ library
+incompatibility). Precise cause, precise platform description or
+solution are not known.
-@email{hanwen@@cs.uu.nl, Han-Wen Nienhuys}
+Note that this only happens on some computers with the said platform.
-@email{janneke@@gnu.org, Jan Nieuwenhuizen}
+@item libg++ 2.7
-In case of problems, please use the mailing list for help.
+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 itemize
+
+
+
+
+@unnumbered Solaris:
+
+@itemize
+@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 itemize
+
+
+@unnumbered AIX
+
+@itemize
+@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 itemize
-Have fun!
@bye
+