@chapter INSTALL - compiling and installing GNU LilyPond
-
-@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,
-e.g. when doing development, you might want to check out the
-@file{buildscripts/set-lily.sh} script. It sets some environment
-variables and symlinks, which comes in handy when you have to compile
-LilyPond more often.
-
@section Obtaining
You can get the latest version of LilyPond at
@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.
+ Solaris.
@item Lots of disk space: LilyPond takes between 30 and 100 mb to
compile if you use debugging information. If you are short on
Check out
@uref{ftp://ftp.python.org} or @uref{ftp://ftp.cwi.nl/pub/python}.
-@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 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}.
+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/}.
+@item GNU Make.
+Check out
+@uref{ftp://ftp.gnu.org/gnu/make/,ftp://ftp.gnu.org/gnu/make/}.
-@item Flex (version 2.5.4 or newer).
+@item Flex (version 2.5.4a or newer).
Check out @uref{ftp://ftp.gnu.org/gnu/flex/,ftp://ftp.gnu.org/gnu/flex/}.
@item Bison (version 1.25 or newer).
Check out @uref{ftp://ftp.gnu.org/gnu/bison/,ftp://ftp.gnu.org/gnu/bison/}.
+@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
+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.
@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}.
+If you do not want to use PostScript output, 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.
@end itemize
following software
@itemize @bullet
-@item TeX
+@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, 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
-find various files. The recommended way of doing so is adjusting the
-environment variables in the start-up scripts of your shell. An
-example is given here for the Bourne shell:
-@example
-export MFINPUTS="/usr/local/share/lilypond/mf:"
-export TEXINPUTS="/usr/local/share/lilypond/tex:/usr/local/share/lilypond/ps:"
-
-@end example
+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
+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.
+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.
-LilyPond is a hiddeously big, slow and bloated 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
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
-version of libpng, which results in cropped images. Recompile it from
-source, and make sure that the pnmtopng binary is linked statically to
-the libpng that is included in libgr. RedHat 6.0 does not have this
-problem.
-
-@example
- tar xzf libgr-2.0.13.tar.gz
- make
- cd png
- rm libpng.so*
- make pnmtopng
-
-@end example
-
-You can then install the new pnmtopng into @file{/usr/local/bin/}
+version of libpng.
@item @uref{http://pertsserver.cs.uiuc.edu/~hull/bib2html,Bib2html}.
Which, in turn depends on man2html for proper installation.
The website will build without this utility, but you will not see our
hypertextified bibliography.
-@item @uref{http://www.zib.de/Visual/software/doc++/index.html,DOC++}
- A documentation system for C++ sources, which is used for the
- LilyPond sources.
@end itemize
@section Configuring and compiling
to install GNU LilyPond, simply type:
@example
-
gunzip -c lilypond-x.y.z | tar xf -
cd lilypond-x.y.z
./configure # fill in your standard prefix with --prefix
make
make install
-
@end example
This will install a number of files, something close to:
@example
- /usr/local/man/man1/mi2mu.1
+ /usr/local/man/man1/midi2ly.1
+ /usr/local/man/man1/abc2ly.1
+ /usr/local/man/man1/etf2ly.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/midi2ly
/usr/local/bin/convert-mudela
/usr/local/bin/mudela-book
/usr/local/bin/abc2ly
+ /usr/local/bin/etf2ly
/usr/local/share/lilypond/*
- /usr/local/share/locale/@{it,nl@}/LC_MESSAGES/lilypond.mo
+ /usr/local/share/locale/@{....@}/LC_MESSAGES/lilypond.mo
@end example
@example
- ./configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking
- make config=optprof
- make config=optprof install
+ ./configure --prefix=~ --enable-profiling --enable-config=prof --enable-optimise --disable-checking
+ make config=prof
+ make config=prof install
@end example
@end example
Precompiled i386 RedHat RPMS are available from
-@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/}.
+@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/}.
For compilation on a RedHat system you need these packages,
in addition to the those needed for running:
@item flex
@item bison
@item texinfo
+@item tetex-devel
@end itemize
@section Debian GNU/linux
A Debian package is also available; see
@uref{http://packages.debian.org/lilypond,http://packages.debian.org/lilypond}
or contact Anthony Fok @email{foka@@debian.org} for more information.
-The build scripts are in the subdirectory @file{debian/}.
+
+The build scripts are in the subdirectory @file{debian/}; you can
+make the .deb by doing
+
+@example
+
+ tar xzf lilypond-x.y.z.tar.gz
+ cd lilypond-x.y.z
+ dpkg-buildpackage
+ dpkg -i ../lilypond_x.y.z*deb
+
+@end example
+
+For compilation on a Debian GNU/Linux system you need these packages,
+in addition to the those needed for running:
+@itemize @bullet
+@item libc6-dev
+@item libstdc++<your-libstdc++-version-here>-dev
+@item libguile<your-libguile-version-here>-dev
+@item flex
+@item bison
+@item gettext
+@item texinfo
+@item tetex-dev
+@item debhelper
+@end itemize
+
@section Windows NT/95
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/}.
+Bugs that are LilyPond's fault are listed in our TODO list on the
+web, or demonstrated in @file{input/bugs/}.
-Known bugs that are not LilyPond's fault are documented here.
+Bugs that are not LilyPond's fault are documented here.
@unnumbered LinuxPPC Bugs: