@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,
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
-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}.
-@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:
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.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 @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
@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
@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.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
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
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
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.
@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
@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
@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
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
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,
@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
@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
@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:
@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 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
+
+
+
+@unnumbered Linux-i386
+
+@itemize
+@item SuSE6.2 and similar platforms (glibc 2.1, libstdc++ 2.9.0)
+
+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 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 itemize
+
+
+
+
+@unnumbered Solaris:
+
+@itemize
+@item Sparc64/Solaris 2.6, GNU make-3.77
-Separate instructions on building for W32 are available
-@url{../../outdir/README-W32.html}.
+GNU make-3.77 is buggy on this platform, upgrade to 3.78.1 or newer.
-@node BUGS, AUTHORS, w32, INSTALL - compiling and installing GNU LilyPond
-@section BUGS
-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.
+@item Sparc64/Solaris 2.6, ld
-@node AUTHORS, Top, BUGS, INSTALL - compiling and installing GNU LilyPond
-@section AUTHORS
+Not yet resolved.
+@end itemize
+
+
+@unnumbered AIX
-@email{hanwen@@cs.uu.nl, Han-Wen Nienhuys}
+@itemize
+@item AIX 4.3 ld
-@email{janneke@@gnu.org, Jan Nieuwenhuizen}
+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.
-In case of problems, please use the mailing list for help.
+ 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
+