]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/topdocs/INSTALL.texi
patch::: 1.5.7.jcn2
[lilypond.git] / Documentation / topdocs / INSTALL.texi
index 66141d6c215c27e02c603c1d4fe65d60f2a9923b..dee4bec5f1ef42424273a4e29a8fd16a80eb8a63 100644 (file)
 @node Top, , , (dir)
 @top
 
 @node Top, , , (dir)
 @top
 
+@contents
+
 @chapter INSTALL - compiling and installing GNU LilyPond
 
 @chapter INSTALL - compiling and installing GNU LilyPond
 
-@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/}.
+This document describes how to build LilyPond on Unix platforms.  It is
+also known to run and compile on Windows NT/95/98 as well.  More
+information on this topic can be found at the
+@uref{http://www.lilypond.org/gnu-windows/, LilyPond on Windows page}.
 
 
 
 
-@emph{If you upgrade by patching do remember to rerun autoconf after
-applying the patch}.
+@html
+<a name="download-source">
+@end html
 
 
-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/}.
+@section Downloading
 
 
-The following command produces @file{lilypond-1.3.122.tar.gz} from
-@file{lilypond-1.3.121} identical (up to compression dates) to the .122 on
-the FTP site.
-@example
-  xdelta patch lilypond-1.3.121-1.3.122.xd lilypond-1.3.121.tar.gz
-@end example
+Even numbered versions are `stable'. The webpages for the stable version
+(1.2) reside @uref{http://www.gnu.org/software/lilypond, on the GNU
+servers}. Big enhancements go into the latest odd numbered version
+(1.3), whose webpages are on @uref{http://www.lilypond.org/,the lilypond
+site}.
+
+@subsection Source code
+
+If you want to compile LilyPond from source, download here:
+@itemize @bullet
+@item Download development releases from
+@c Hmm, these won't show up in lilypond.org/stats
+@c Otoh, lilypond.org is not updated when release mail arrives
+@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/} by FTP and
+@uref{http://ftp.cs.uu.nl/pub/GNU/LilyPond/}, by HTTP.
+@item @uref{ftp://sca.uwaterloo.ca/pub/} by FTP (Canadian mirror)
+@item at @code{lilypond.org} 
+@uref{ftp://ftp.lilypond.org/pub/LilyPond/} by FTP and
+@uref{http://www.lilypond.org/ftp/} by HTTP.
+@end itemize
+
+Of course, if your platform supports LilyPond, such as Debian GNU/Linux,
+FreeBSD, OpenBSD or NetBSD, you're encouraged to use the native build
+from source drill.
+
+For Red Hat Linux and SuSE Linux, @file{.spec} files are included in the
+tarball; see instructions below.
+
+@html
+<a name="download-binaries">
+@end html
 
 
-@section Prerequisites
 
 
-For compilation you need:
+
+@subsection Precompiled binaries
+
+If you want to track bleeding edge development, try:
 
 @itemize @bullet
 
 @itemize @bullet
-@item A GNU system: GNU LilyPond is known to run on these GNU systems: Linux
-    (PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix and
-    Solaris.
+@item @uref{ftp://ftp.debian.org/debian/pool/main/l/lilypond/, Debian
+GNU/Linux} usually has the latest binaries for the most useful stable
+and development versions, while
+@item @uref{http://rpmfind.net/linux/mandrake/cooker/contrib/RPMS/,
+Mandrake Cooker} also provides fairly recent versions.
+@end itemize
 
 
-@item Lots of disk space: LilyPond takes between 30 and 100 mb to
-compile if you use debugging information.  If you are short on
-disk-space run configure with @code{--disable-debugging}.
+Binaries are made available for other popular platforms, but as we need
+to compile them ourselves, they are not updated for every version
+released.
 
 
+@itemize @bullet
+@item @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/RedHat/RPMS/, Red Hat i386}
+@item @uref{ftp://ftp.lilypond.org/pub/LilyPond/binaries/SuSE, SuSE}
+@item @uref{ftp://ftp.lilypond.org/pub/LilyPond/binaries/linuxppc/,
+LinuxPPC}
 @item
 @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.
+@uref{http://www.lilypond.org/gnu-windows/, Windows}
+@end itemize
+
+@subsection Upgrading
+
+There are two options for upgrading sources.
+
+@itemize
+@item if you have an unpacked source tree of a previous version, you
+may the patches.
+
+@emph{If you upgrade by patching do remember to rerun autoconf after
+applying the patch}.
+
+@item if you have the @code{.tar.gz} file of a previous release, you can
+use
+@uref{ftp://ftp.xcf.berkeley.edu/pub/xdelta/, xdelta}.
+ This is much safer than using patches, and is the recommended way.
+
+The following command produces @file{lilypond-1.4.3.tar.gz} from
+@file{lilypond-1.4.2.tar.gz} identical (up to compression dates) to the .3
+on the FTP site.
+@example
+  xdelta patch lilypond-1.4.2-1.4.3.xd lilypond-1.4.2.tar.gz
+@end example
+@end itemize
+
+@section Requirements
+
+@subsection Compilation
+
+You need the following packages to compile Lilypond.
 
 
-@item A reasonable C++ compiler:  EGCS 1.1, GCC 2.95.2 or newer. Check out @uref{ftp://ftp.gnu.org/gnu/gcc/}.
+@itemize
+@item A reasonably new C++ compiler:  EGCS 1.1, GCC 2.95.2 or
+newer. Check out @uref{ftp://ftp.gnu.org/gnu/gcc/, the gcc site}.
 
 @item  Python 1.5,
 
 @item  Python 1.5,
-Check out @uref{ftp://ftp.python.org} or
-@uref{ftp://ftp.cwi.nl/pub/python}.
+Check out @uref{http://www.python.org, the python website}.
 
 @item  GUILE 1.3.4 or newer,  check out
 
 @item  GUILE 1.3.4 or newer,  check out
-@uref{http://www.gnu.org/software/guile/guile.html,http://www.gnu.org/software/guile/guile.html}.
+@uref{http://www.gnu.org/software/guile/guile.html,the GUILE webpage}.
 Version 1.4 is recommended for better performance.
 
 @item GNU Make. 
 Check out
 Version 1.4 is recommended for better performance.
 
 @item GNU Make. 
 Check out
-@uref{ftp://ftp.gnu.org/gnu/make/,ftp://ftp.gnu.org/gnu/make/}.
+@uref{ftp://ftp.gnu.org/gnu/make/, the GNU
+make FTP directory}.
 
 @item Flex (version 2.5.4a or newer). 
 
 @item Flex (version 2.5.4a or newer). 
-Check out @uref{ftp://ftp.gnu.org/pub/gnu/non-gnu/flex/,ftp://ftp.gnu.org/pub/gnu/non-gnu/flex/}.
+Check out @uref{http://www.gnu.org/software/flex/,the Flex webpage}.
 
 @item Bison (version 1.25 or newer).
 
 @item Bison (version 1.25 or newer).
-Check out @uref{ftp://ftp.gnu.org/gnu/bison/,ftp://ftp.gnu.org/gnu/bison/}.
+Check out @uref{http://www.gnu.org/software/bison/,the bison  webpage}
 
 
-@item TeX.  If you want LilyPond to use kpathsea support (recommended),
-make sure you have tetex 1.0 or newer (1.0.6 is known to work).  You may
+@item @TeX{}.
+
+@TeX{} is used as an output backend.
+
+Also, @TeX{}'s libkpathsea is used to find the fonts (@file{.mf}, @file{.afm}, @file{.tfm}).
+Make sure you have tetex 1.0 or newer (1.0.6 is known to work).  You may
 need to install a tetex-devel or tetex-dev package too.
 
 need to install a tetex-devel or tetex-dev package too.
 
-@item Texinfo (version 4.0 or newer). 
-Check out @uref{ftp://ftp.gnu.org/gnu/texinfo/,ftp://ftp.gnu.org/gnu/texinfo/}.
-Most documentation is in texinfo.
+@item Texinfo (version 4.0 or newer).
+The documentation of lily is written in texinfo.  Check out
+@uref{ftp://ftp.gnu.org/gnu/texinfo/,the texinfo FTP directory}.
 
 @item The geometry package for LaTeX is needed to use ly2dvi.  
 
 @item The geometry package for LaTeX is needed to use ly2dvi.  
-Available at 
-@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}
+It is available at
+@uref{ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry,the
+FTP directory for @code{geometry}}. This package is normally included
+with the @TeX{} distribution.
 
 @item MetaPost, needed for generating PostScript fonts. Please
 note that tetex-0.4pl8 (included with Red Hat 5.x) does not include
 @file{mfplain.mp}, which is needed for producing the scalable font
 files.
 
 
 @item MetaPost, needed for generating PostScript fonts. Please
 note that tetex-0.4pl8 (included with Red Hat 5.x) does not include
 @file{mfplain.mp}, which is needed for producing the scalable font
 files.
 
-If you do not want to use PostScript output, edit @file{mf/GNUmakefile},
-removing the line saying @code{PFA_FILES=}
+If you don't have MetaPost and don't want to use PostScript output, then
+edit @file{mf/GNUmakefile}, removing the line saying @code{PFA_FILES=}.
+
+@item kpathsea, a library for searching (@TeX{}) files.  @code{kpathsea} is
+usually included with your installation of @TeX{}.  You may need to install
+a tetex-devel or tetex-dev package too.
+
+In the very unlikely case that kpathsea is not available for your
+platform (ie, you're not running GNU/Linux, Windows, or any recent
+UNIX), you can compile LilyPond without kpathsea support.  In that case,
+you'll probably have to indicate where @TeX{}'s tfm files live.  Invoke
+configure something like:
 
 
-@item kpathsea, a library for searching (TeX) files.  @code{kpathsea} is
-usually included with your installation of TeX. 
+@example
+./configure --without-kpathsea --enable-tfm-path=/usr/share/texmf/fonts/tfm/public/cm/:/usr/share/texmf/fonts/tfm/ams/symbols
+@end example
 
 @end itemize
 
 
 @end itemize
 
-@section Running
+@subsection Running requirements
 
 GNU LilyPond does use a lot of resources. For operation you need the
 following software
 
 @itemize @bullet
 
 GNU LilyPond does use a lot of resources. For operation you need the
 following software
 
 @itemize @bullet
-@item TeX.
-@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.4, or newer.  Check out @uref{http://www.gnu.org/programs/guile.html,http://www.gnu.org/software/guile/}
+@item @TeX{}.
+@item Xdvi and Ghostscript
+@item GUILE 1.3.4, or newer.  Check out
+@uref{http://www.gnu.org/software/guile.html,the GUILE webpage}
 @end itemize
 
 @end itemize
 
-For running LilyPond successfully you have to help TeX and MetaFont find
+For running LilyPond successfully you have to help @TeX{} and MetaFont find
 various files.  The recommended way of doing so is adjusting the
 environment variables in the start-up scripts of your shell. Appropriate
 various files.  The recommended way of doing so is adjusting the
 environment variables in the start-up scripts of your shell. Appropriate
-Csh and sh scripts are left in @file{buildscripts/out/lilypond-profile}
-and @file{buildscripts/out/lilypond-login} after compilation.
-
-The empty path component represents TeX and MetaFont's default search
-paths.  Scripts with the proper paths for the bourne and C-shell
-respectively are generated in @file{buildscripts/out/lilypond-profile}
-and @file{buildscripts/out/lilypond-login} during compilation.
+Csh and bourne sh scripts are left in
+@file{buildscripts/out/lilypond-profile} and
+@file{buildscripts/out/lilypond-login} after compilation.
 
 LilyPond is a big and slow program.  A fast CPU and plenty of RAM is
 recommended for comfortable use.
 
 
 LilyPond is a big and slow program.  A fast CPU and plenty of RAM is
 recommended for comfortable use.
 
-@section Website
+@subsection Website requirements
 
 
-The website is the most convenient form to use for reading the
-documentation on-line documentation. It is made by entering @example 
+The documentation comes in the form of a website. You can view this
+website on the internet, but you can also build it locally. This process
+requires a successful compile of lilypond. The website is built 
+by issuing
+@example 
 
 
-  make htmldoc
+  make web-doc
  
 @end example 
  
 @end example 
-This does require a functioning LilyPond.  The binary doesn't have to
-be installed. 
 
 
-If you want to auto-generate Lily's website, you'll need some additional
-conversion tools.
+Building the website requires some additional tools: 
 
 @itemize @bullet
 
 @itemize @bullet
-@item xpmtoppm (from the netpbm package: the Portable Bitmap Utilities) (For Red Hat Linux
-            users: it is included within the package libgr-progs).
+@item xpmtoppm (from the netpbm package: the Portable Bitmap Utilities).
        The original is at
        The original is at
-@uref{ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz,ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz}
+@uref{ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz,the
+netpbm FTP site}
 
 
-@item pnmtopng (also in libgr-progs for Red Hat). The original is
+@item pnmtopng. The original is
 at
 at
-@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 Red Hat 5.1 and
-5.2 contains a bug: pnmtopng is dynamically linked to the wrong
-version of libpng.
+@uref{ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz,in
+the pnmtopng FTP site}.
 
 @item @uref{http://www.lri.fr/~filliatr/ftp/bibtex2html/, Bibtex2html}, or
 @uref{http://www.uni-koblenz.de/ag-ki/ftp/bib2html/, Bib2html}.
 
 @item @uref{http://www.lri.fr/~filliatr/ftp/bibtex2html/, Bibtex2html}, or
 @uref{http://www.uni-koblenz.de/ag-ki/ftp/bib2html/, Bib2html}.
@@ -156,229 +232,228 @@ man2html can be had from @uref{http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/N
 The website will build without bib converter utility, but you will not
 see our hypertextified bibliography.
 
 The website will build without bib converter utility, but you will not
 see our hypertextified bibliography.
 
+@item texinfo (a development release)
+The documentation will build with texinfo-4.0, but if you want split
+html pages, you're best off using the lates pretest version from
+@uref{ftp://texinfo.org/texinfo/pretests/texinfo-4.0b.tar.gz,
+texinfo-4.0b} or
+@uref{ftp://alpha.gnu.org/gnu/texinfo-4.0b.tar.gz,texinfo-4.0b}
 @end itemize
 
 @end itemize
 
-@section Configuring and compiling
+@section Building  LilyPond
 
 
-to install GNU LilyPond, simply type:
+to install GNU LilyPond, type:
 @example 
        gunzip -c lilypond-x.y.z | tar xf -
        cd lilypond-x.y.z
 @example 
        gunzip -c lilypond-x.y.z | tar xf -
        cd lilypond-x.y.z
-       ./configure             # fill in your standard prefix with --prefix
+       ./configure             # run with --help to see appropriate options
        make
        make install
        make
        make install
+        sh buildscripts/clean-fonts.sh      
 @end example 
 
 @end example 
 
-This will install a number of files, something close to:
-
-@example 
-       /usr/local/man/man1/midi2ly.1
-       /usr/local/man/man1/abc2ly.1
-       /usr/local/man/man1/etf2ly.1
-       /usr/local/man/man1/convert-ly.1
-       /usr/local/man/man1/lilypond-book.1
-       /usr/local/man/man1/lilypond.1
-       /usr/local/bin/lilypond
-       /usr/local/bin/midi2ly
-       /usr/local/bin/convert-ly
-       /usr/local/bin/lilypond-book
-       /usr/local/bin/abc2ly
-       /usr/local/bin/pmx2ly
-       /usr/local/bin/musedata2ly
-       /usr/local/bin/etf2ly
-       /usr/local/share/lilypond/*
-       /usr/local/share/locale/@{....@}/LC_MESSAGES/lilypond.mo
-@end example 
+If you are doing an upgrade, you should remove all @file{feta}
+@code{.pk} and @file{.tfm} files.  A script has been provided to do the
+work for you, see @file{buildscripts/clean-fonts.sh}.
 
 
 
 
-The above assumes that you are root and have the GNU development
-tools, and your make is GNU make.  If this is not the case, you can
-adjust your environment variables to your taste:
-
+If you are not root, you should choose a @code{--prefix} argument that
+points into your home directory, eg.
 @example 
 
 @example 
 
-       export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" 
-       ./configure
+       ./configure --prefix=$HOME/usr
  
 @end example 
 
  
 @end example 
 
-@code{CPPFLAGS} are the preprocessor flags. 
-
-The configure script is Cygnus configure, and it will accept
-@code{--help}. If you are not root, you will probably have to make it
-with a different @code{--prefix} option.  Our favourite location is
+In this case, you have to insert the contents of
+@code{buildscripts/out/lilypond-login} or
+@code{buildscripts/out/lilypond-profile} into your start up scripts by
+hand.
 
 
-@example 
-
-       ./configure --prefix=$HOME/usr
-@end example 
 
 
-In this case, you will have to set up MFINPUTS, and TEXINPUTS accordingly.
 
 
-Since GNU LilyPond currently is beta, you are advised to also use
+@subsection Configuring 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
+the output in @file{out-CONF}.  Example: suppose I want to build with
+and without profiling.  Then I'd use the following for the normal build,
 @example 
 
 @example 
 
-       --enable-debugging
-       --enable-checking
+      ./configure --prefix=~ --enable-checking
+      make
+      make install
 @end example 
 
 @end example 
 
-Options to configure include:
+and for the profiling version, I specify a different configuration.
 
 
-@table @samp
-@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 @code{--enable-profiling}
-    Compile with support for profiling.
-@item @code{--enable-config=CONF}
-    Output to different configuration files.  Enables different binary
-    builds alongside eachother, eg, multi-configuration (debugging,
-    profiling), or multi-platform builds.  Use `make conf=CONF' to
-    build for a specific configuration.
-@end table
+@example 
 
 
-All options are documented in the @file{configure} help
-The option @code{--enable-optimise} is recommended for Real Life usage.
+      ./configure --prefix=~ --enable-profiling --enable-config=prof --disable-checking
+      make conf=prof
+      make conf=prof install
 
 
-If you do
+@end example 
 
 
-@example 
 
 
-       make all
-@end example 
 
 
-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).
 
 
 @section Emacs mode
 
 
 
 @section Emacs mode
 
+An Emacs mode for entering music and running LilyPond is included with
+the source archive as @file{lilypond-mode.el} and
+@file{lilypond-font-lock.el}.  You should install these files somewhere
+in your @var{load-path}.  If you have installed a precompiled LilyPond
+package, these files can be found in
+@file{/usr/share/doc/lilypond-x.y.z/}.
 
 
-An emacs mode for LilyPond is included with the source archive as
-@file{lilypond-mode.el} and @file{lilypond-font-lock.el}.  If you have
-an RPM, it is in @file{/usr/share/doc/lilypond-X/}.  You have to install
-it yourself.
+Add this to your @file{~/.emacs} or @file{~/.emacs.el}, or install this
+file in Emacs' @file{site-start.d}:
+@example
+    ;;; lilypond-init.el --- Startup code for LilyPond mode
 
 
-Add this to your ~/.emacs or ~/.emacs.el:
-@example 
     (load-library "lilypond-mode.el")
     (setq auto-mode-alist
       (cons '("\\.ly$" . LilyPond-mode) auto-mode-alist))
     (add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock)))
 @end example
 
     (load-library "lilypond-mode.el")
     (setq auto-mode-alist
       (cons '("\\.ly$" . LilyPond-mode) auto-mode-alist))
     (add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock)))
 @end example
 
-If you have the latest LilyPond-1.3.x Debian package, LilyPond-mode
-is automatically loaded, so you need not modify your ~/.emacs file.
+If you have the latest LilyPond-1.4.x Debian package, LilyPond-mode is
+automatically loaded, you not even need to modify your @code{~/.emacs}
+file.
 
 
+@section Compiling for distributions 
 
 
-@section Configuring for multiple platforms
+@subsection Red Hat Linux
 
 
-If you want to build multiple versions of LilyPond with different
-configuration settings, you can use the @code{--enable-config=CONF}
-option.  You should use @samp{make conf=CONF} to generate the output in
-@file{out-CONF}.  Example: suppose I want to build with and without
-profiling.  Then I'd use the following for the normal build,
+Red Hat 7.0 i386 RPMS are available from
+@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/}.
 
 
+You can also compile them yourself.  A spec file is in
+@file{make/out/lilypond.redhat.spec}. This file is distributed along
+with the sources.  You can make the rpm by issuing
 @example 
 
 @example 
 
-      ./configure --prefix=~ --disable-optimise --enable-checking
-      make
-      make install
-      
+        tar xfz lilypond-x.y.z.tar.gz
+       rpm -bb lilypond-x.y.z/make/out/lilypond.redhat.spec
+       rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
+
 @end example 
 
 @end example 
 
-and for the profiling version, I specify a different configuration.
+For running on a Red Hat system you need these packages: guile, tetex,
+tetex-latex, tetex-dvips, libstdc++, python, ghostscript.
 
 
-@example 
+For compilation on a Red Hat system you need these packages, in addition
+to the those needed for running: glibc-devel, gcc-c++, libstdc++-devel,
+guile-devel, flex, bison, texinfo, tetex-devel, groff,
+libgr-progs.
 
 
-      ./configure --prefix=~ --enable-profiling --enable-config=prof --enable-optimise --disable-checking
-      make conf=prof
-      make conf=prof install
 
 
-@end example 
+@b{Warning}
 
 
+There appears to be a problem with the Xdvi shipped with Red Hat 7.1.
+Symptoms: Xdvi responds very sluggishly or hangs while viewing
+lilypond output. The cause for this problem is unknown; you are advised
+to recompile Xdvi from source.
 
 
-@section Installing
+@subsection LinuxPPC
 
 
-if you have done a successful @code{make}, then a simple
 
 
-@example 
+Some LinuxPPC RPMS should available from
+@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/}.
 
 
-       make install
-@end example 
+A LinuxPPC RPM can be made using the @file{lilypond.redhat.spec} file.
 
 
-should do the trick.
+@subsection SuSE
 
 
-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}.
+Some SUSE RPMS should available from
+@uref{ftp://ftp.lilypond.org/pub/LilyPond/binaries/SuSE}.
 
 
+You can also compile a RPM for SUSE yourself.  A spec file is in
+@file{make/out/lilypond.suse.spec}, see the instructions for building
+the Red Hat RPM.
 
 
-@section Red Hat Linux
+You must have the following packages: guile tcsh tetex te_latex te_kpath
+te_mpost libpng python gpp libgpp gettext autoconf netpbm libnetpb
+gs_serv gs_lib gs_fonts guile
 
 
-Red Hat Linux users can compile an RPM.  A spec file is in
-@file{make/out/lilypond.spec}; it is distributed along with the
-sources.
+@subsection Slackware
 
 
-You can make the rpm by issuing
-@example 
+No precompiled packages for Slackware are available.
 
 
-       rpm -tb lilypond-x.y.z.tar.gz
-       rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
-@end example 
+Problems have been reported with Slackware 7.0; apparently, it ships
+with a faulty compiler. Do not compile LilyPond with -O2 on this
+platform.
 
 
-Precompiled Red Hat 7.0 i386 RPMS are available from
-@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/}.
+@subsection Mandrake
 
 
-For compilation on a Red Hat system you need these packages,
-in addition to the those needed for running:
-@itemize @bullet
-@item glibc-devel
-@item libstdc++-devel
-@item guile-devel
-@item flex
-@item bison
-@item texinfo
-@item tetex-devel
-@end itemize
+Some binaries are available at rpmfind.net. Refer to 
+@uref{http://rpmfind.net/linux/mandrake/cooker/contrib/RPMS/}.
 
 
-@section SuSE
+You can also compile a RPM for Mandrake yourself.  A spec file is in
+@file{make/out/lilypond.mandrake.spec}, see the instructions for building
+the Red Hat RPM.
 
 
-[TODO: document this]
+@subsection Debian GNU/Linux
 
 
-Install @code{tetex}, @code{te_mpost}, @code{te_kpath}.
+A Debian package is also available.  You may install it easily by running
+@command{apt-get} as root:
+@example
 
 
+       apt-get install lilypond lilypond-doc
+@end example
 
 
-@section Debian GNU/Linux
+You can also compile the .deb for Debian yourself, do:
+@example
 
 
-A Debian package is also available.  You may install it easily by using
-apt-get as root:
+       apt-get -b source lilypond
+@end example
 
 
+If you're real impatient, you may even do:
 @example
 @example
-       apt-get install lilypond1.3
+
+       cd lilypond-x.y.z   # a previous version
+        uscan               # download and build latest directly from upstream
+@end example
+
+
+Debian's @TeX{} installation is a bit short on memory, you may want to
+increase it like this:
+@example
+--- /etc/texmf/texmf.cnf.dpkg  Sun Jan 28 14:12:14 2001
++++ /etc/texmf/texmf.cnf       Fri Apr 27 11:09:35 2001
+@@ -384,8 +384,8 @@
+ main_memory.context = 1500000
+ main_memory.mpost = 1000000
+ main_memory = 263000 % words of inimemory available; also applies to inimf&mp
+-extra_mem_top = 0    % extra high memory for chars, tokens, etc.
+-extra_mem_bot = 0    % extra low memory for boxes, glue, breakpoints, etc.
++extra_mem_top = 100000    % extra high memory for chars, tokens, etc.
++extra_mem_bot = 100000    % extra low memory for boxes, glue, breakpoints, etc.
+ obj_tab_size.context = 256000
+
 @end example
 
 @end example
 
+You could also export @env{extra_mem_top} and @env{extra_mem_bot} as
+environment variables if you do not want to or cannot modify
+@file{/etc/texmf/texmf.cnf}.
+
 Alternatively, visit
 
 @itemize @bullet
 @item @uref{http://packages.debian.org/lilypond,http://packages.debian.org/lilypond}
 Alternatively, visit
 
 @itemize @bullet
 @item @uref{http://packages.debian.org/lilypond,http://packages.debian.org/lilypond}
-@item @uref{http://ftp.debian.org/debian/pool/main/l/lilypond1.3/,http://ftp.debian.org/debian/pool/main/l/lilypond1.3/}
-for latest package uploaded to Debian unstable;
 @item @uref{http://people.debian.org/~foka/lilypond/,http://people.debian.org/~foka/lilypond/}
 @item @uref{http://people.debian.org/~foka/lilypond/,http://people.debian.org/~foka/lilypond/}
-for latest semi-unofficial build of LilyPond 1.3.121 for Debian 2.2r2 (potato) users.
-The official stable Debian 2.2r2 is stuck with the old LilyPond-1.3.24.
+for latest semi-unofficial build of LilyPond 1.4.2 for Debian 2.2 (potato) users.
+The official stable Debian 2.2 is stuck with the old LilyPond-1.3.24.
+Since LilyPond-1.4 has been released, the older lilypond1.3 Debian
+package is now obsolete.
 @end itemize
 
 @end itemize
 
-You may contact Anthony Fok @email{foka@@debian.org} for more information.
+Please contact Anthony Fok @email{lilypond@@packages.debian.org} for more
+information.
 
 The build scripts are in the subdirectory @file{debian/}; you can
 make the .deb by doing, for example:
 
 The build scripts are in the subdirectory @file{debian/}; you can
 make the .deb by doing, for example:
@@ -387,36 +462,43 @@ make the .deb by doing, for example:
        $ su - root
        # dpkg --purge lilypond lilypond1.3
        # exit
        $ su - root
        # dpkg --purge lilypond lilypond1.3
        # exit
-       $ tar xzf lilypond-1.3.122.tar.gz
-       $ cd lilypond-1.3.122
-       $ dch -p -v 1.3.122-0.local.1 "Local build."
-       $ debuild
+       $ tar xzf lilypond-1.4.3.tar.gz
+       $ cd lilypond-1.4.3
+       $ dch -p -v 1.4.3-0.local.1 "Local build."
+       $ debuild -B
        $ su - root
        $ su - root
-       # dpkg -i ../lilypond1.3_1.3.122*.deb
+       # dpkg -i ../lilypond_1.4.3*.deb
        # exit
        $
 @end example
 
        # exit
        $
 @end example
 
+Use command @command{debuild} instead of @command{debuild -B} if you have
+a very fast machine and want to build the HTML, PS and DVI documentation
+too.
+
 For compilation on a Debian GNU/Linux system you need these packages,
 in addition to the those needed for running:
 
 @itemize @bullet
 For compilation on a Debian GNU/Linux system you need these packages,
 in addition to the those needed for running:
 
 @itemize @bullet
-@item g++, cpp, libc6-dev, libstdc++<your-libstdc++-version-here>-dev
-@item libguile<your-libguile-version-here>-dev
+@item g++, cpp, libc6-dev, libstdc++<@var{your-libstdc++-version-here}>-dev
+@item libguile<@var{your-libguile-version-here}>-dev
 @item make, m4, flex, bison
 @item gettext
 @item make, m4, flex, bison
 @item gettext
-@item groff, texinfo, bibtex2html (not in 2.2r2)
+@item groff, texinfo
+@item bibtex2html (not in Debian 2.2)
 @item tetex-base, tetex-bin, tetex-extra, libkpathsea-dev or tetex-dev
 @item dpkg-dev, debhelper, fakeroot
 @item tetex-base, tetex-bin, tetex-extra, libkpathsea-dev or tetex-dev
 @item dpkg-dev, debhelper, fakeroot
-@item gs, netpbm, pnmtopng
+@item gs, netpbm
+@item pnmtopng (only in Debian 2.2; pnmtopng has been merged with netpbm
+  in Debian testing/unstable.)
 @end itemize
 
 @end itemize
 
-Most of these are listed on the Build-Depends line in the
-debian/control file.  To ensure the creation of the lilypond deb is
+Most of these are listed on the @samp{Build-Depends} line in the
+@file{debian/control} file.  To ensure the creation of the lilypond deb is
 trouble-free, we recommend that you first install the following packages
 trouble-free, we recommend that you first install the following packages
-before starting dpkg-buildpackage by running apt-get as root.
+by running \@command{apt-get} as root before building the package:
 
 
-For Debian 2.2 (or 2.2r2, 2.2r3):
+For Debian 2.2:
 
 @example
        apt-get install task-debian-devel task-c++-dev \
 
 @example
        apt-get install task-debian-devel task-c++-dev \
@@ -431,7 +513,7 @@ For Debian in development ("unstable", the future 2.3 or 3.0):
        apt-get install task-debian-devel task-c++-dev \
                python-base libguile9-dev tetex-bin libkpathsea-dev \
                tetex-extra flex bison texinfo bibtex2html groff gs \
        apt-get install task-debian-devel task-c++-dev \
                python-base libguile9-dev tetex-bin libkpathsea-dev \
                tetex-extra flex bison texinfo bibtex2html groff gs \
-               netpbm pnmtopng m4 gettext
+               netpbm m4 gettext
 @end example
 
 And, just so that old fonts from previous versions of LilyPond won't
 @end example
 
 And, just so that old fonts from previous versions of LilyPond won't
@@ -442,97 +524,59 @@ interfere with your build, you may want to do this before the build too:
 @end example
 
 
 @end example
 
 
-@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
 
 
 @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}.
-
-Bugs that are LilyPond's fault are listed in our TODO list on the
-web, or demonstrated in @file{input/bugs/}.
-
-Bugs that are not LilyPond's fault are documented here.
-
+For help and questions use @email{lilypond-user@@gnu.org}.  Please
+consult the FAQ before mailing your problems.  If you find bugs, please
+send bug reports to @email{bug-lilypond@@gnu.org}.
 
 
-@unnumbered LinuxPPC Bugs:
+Bugs that are not fault of LilyPond are documented here.
 
 
-@itemize @bullet
-@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/}
+@unnumberedsubsec FLex-2.5.4a and gcc-3.0
 
 
-@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
+Flex 2.5.4a does not produce g++-3.0 compliant C++ code.  To compile
+LilyPond with gcc-3.0 you may do:
 
 
+@example
+        CC=gcc-3.0 CXX=g++-3.0 ./configure --enable-config=gcc-3.0
+        make conf=gcc-3.0 -C lily out-gcc-3.0/lexer.cc
+        patch -p1 < lexer-gcc-3.0.patch
+        make conf=gcc-3.0 -C lily
+@end example
 
 
+Note that this is fixed in Debian/unstable for flex >= 2.5.4a-13.
 
 
-@unnumbered Linux-i386
+@unnumberedsubsec NetBSD
 
 @itemize @bullet
 
 @itemize @bullet
-@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.
+@item The flex precompiled in NetBSD-1.4.2 is broken.
+Download flex-2.5.4a, build, install.
 
 
+@item The configuration of Gcc (egcs-2.91.60 19981201 (egcs-1.1.1
+release)) does not include @file{/usr/pkg} paths.  Configure using:
 @example
 @example
-       lilypond input.ly 
-@end  example
 
 
-and
-@example
-       lilypond -I. ./input.ly 
-@end example
-makes a difference
+CFLAGS='-I /usr/pkg/include' LDFLAGS='-L/usr/pkg/lib' ./configure
 
 
-Typical stacktrace:
-@example
-       SIGSEGV
-       __libc_malloc (bytes=16384)
-       ?? ()
-       yyFlexLexer::yy_create_buffer ()
-       Includable_lexer::new_input (this=0x8209a00, s=@{strh_ = @{
 @end example
 
 @end example
 
-This behaviour has been observed with machines that have old libg++
-versions (LinuxPPC feb '98, Red Hat 4.x).  
 @end itemize
 
 @end itemize
 
-
-
-
-@unnumbered Solaris:
+@unnumberedsubsec  Solaris:
 
 @itemize @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.
 
 
 @itemize @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 itemize
 
 
 @item Sparc64/Solaris 2.6, ld
 
 Not yet resolved.
 @end itemize
 
 
-@unnumbered AIX
+@unnumberedsubsec   AIX
 
 @itemize @bullet
 @item AIX 4.3 ld
 
 @itemize @bullet
 @item AIX 4.3 ld