Binaries
Binaries are available, but are not updated for every version released.
Upgrading
There are two options for upgrading sources.
- if you have an unpacked source tree of a previous version, you
may the patches.
If you upgrade by patching do remember to rerun autoconf after
applying the patch.
- if you have the
.tar.gz
file of a previous release, you can
use
xdelta.
This is much safer than using patches, and is the recommended way.
The following command produces lilypond-1.4.1.tar.gz
from
lilypond-1.4.0.tar.gz
identical (up to compression dates) to the .1
on the FTP site.
xdelta patch lilypond-1.4.0-1.4.1.xd lilypond-1.4.0.tar.gz
Requirements
Compilation
You need the following packages to compile Lilypond.
- A reasonably new C++ compiler: EGCS 1.1, GCC 2.95.2 or
newer. Check out the gcc site.
- Python 1.5,
Check out the python website.
- GUILE 1.3.4 or newer, check out
the GUILE webpage.
Version 1.4 is recommended for better performance.
- GNU Make.
Check out
the GNU make FTP directory.
- Flex (version 2.5.4a or newer).
Check out the Flex webpage.
- Bison (version 1.25 or newer).
Check out the bison webpage
- TeX.
TeX is used as an output backend.
Also, TeX's libkpathsea is used to find the fonts (.mf
, .afm
, .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.
- Texinfo (version 4.0 or newer).
The documentation of lily is written in texinfo. Check out
the texinfo FTP directory.
- The geometry package for LaTeX is needed to use ly2dvi.
It is available at
the FTP directory for
geometry
. This package is normally included
with the TeX distribution.
- MetaPost, needed for generating PostScript fonts. Please
note that tetex-0.4pl8 (included with Red Hat 5.x) does not include
mfplain.mp
, which is needed for producing the scalable font
files.
If you don't have MetaPost and don't want to use PostScript output, then
edit mf/GNUmakefile
, removing the line saying PFA_FILES=
.
- kpathsea, a library for searching (TeX) files.
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:
./configure --without-kpathsea --enable-tfm-path=/usr/share/texmf/fonts/tfm/public/cm/:/usr/share/texmf/fonts/tfm/ams/symbols
Running requirements
GNU LilyPond does use a lot of resources. For operation you need the
following software
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 bourne sh scripts are left in
buildscripts/out/lilypond-profile
and
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.
Website requirements
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
make web-doc
Building the website requires some additional tools:
Building LilyPond
to install GNU LilyPond, type:
gunzip -c lilypond-x.y.z | tar xf -
cd lilypond-x.y.z
./configure # run with --help to see appropriate options
make
make install
sh buildscripts/clean-fonts.sh
If you are doing an upgrade, you should remove all feta
.pk
and .tfm
files. A script has been provided to do the
work for you, see buildscripts/clean-fonts.sh
.
If you are not root, you should choose a --prefix
argument that
points into your home directory, eg.
./configure --prefix=$HOME/usr
In this case, you have to insert the contents of
buildscripts/out/lilypond-login
or
buildscripts/out/lilypond-profile
into your start up scripts by
hand.
Configuring for multiple platforms
If you want to build multiple versions of LilyPond with different
configuration settings, you can use the --enable-config=CONF
option of configure. You should use make conf=CONF
to generate
the output in out-CONF
. Example: suppose I want to build with
and without profiling. Then I'd use the following for the normal build,
./configure --prefix=~ --enable-checking
make
make install
and for the profiling version, I specify a different configuration.
./configure --prefix=~ --enable-profiling --enable-config=prof --disable-checking
make conf=prof
make conf=prof install
Emacs mode
An emacs mode for LilyPond is included with the source archive as
lilypond-mode.el
and lilypond-font-lock.el
. If you have
an RPM, it is in /usr/share/doc/lilypond-X/
. You have to install
it yourself.
Add this to your ~/.emacs
or ~/.emacs.el
:
(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)))
If you have the latest LilyPond-1.4.x Debian package, LilyPond-mode is
automatically loaded, so you need not modify your ~/.emacs
file.
Compiling for distributions
Red Hat Linux
Red Hat 7.0 i386 RPMS are available from
ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/.
You can also compile them yourself. A spec file is in
make/out/redhat.spec
. This file is distributed along with the
sources. You can make the rpm by issuing
tar xfz lilypond-x.y.z.tar.gz
rpm -bb lilypond-x.y.z/make/out/redhat.spec
rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
For running on a Red Hat system you need these packages: guile, tetex,
tetex-latex, tetex-dvips, libstdc++, python, ghostscript.
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.
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.
LinuxPPC
Some LinuxPPC RPMS should available from
ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/.
A LinuxPPC RPM can be made using the redhat.spec
file.
SuSE
Some SUSE RPMS should available from
ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/.
You can also compile a RPM for SUSE yourself. A spec file is in
make/out/suse.spec
, see the instructions for building the Red Hat
RPM.
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
Slackware
No precompiled packages for Slackware are available.
Problems have been reported with Slackware 7.0; apparently, it ships
with a faulty compiler. Do not compile LilyPond with -O2 on this
platform.
Mandrake
Some binaries are available at rpmfind.net. Refer to
ftp://ftp.rpmfind.net/linux/Mandrake-devel/cooker/contrib/RPMS/.
Debian GNU/Linux
A Debian package is also available. You may install it easily by running
apt-get
as root:
apt-get install lilypond
Debian's TeX installation is a bit short on memory, you may want to
increase it like this:
--- /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
You could also export extra_mem_top
and extra_mem_bot
as
environment variables if you do not want to or cannot modify
/etc/texmf/texmf.cnf
.
Alternatively, visit
Please contact Anthony Fok lilypond@packages.debian.org for more
information.
The build scripts are in the subdirectory debian/
; you can
make the .deb by doing, for example:
$ su - root
# dpkg --purge lilypond lilypond1.3
# exit
$ tar xzf lilypond-1.4.1.tar.gz
$ cd lilypond-1.4.1
$ dch -p -v 1.4.1-0.local.1 "Local build."
$ debuild
$ su - root
# dpkg -i ../lilypond_1.4.1*.deb
# exit
$
For compilation on a Debian GNU/Linux system you need these packages,
in addition to the those needed for running:
- g++, cpp, libc6-dev, libstdc++<your-libstdc++-version-here>-dev
- libguile<your-libguile-version-here>-dev
- make, m4, flex, bison
- gettext
- groff, texinfo
- bibtex2html (not in Debian 2.2)
- tetex-base, tetex-bin, tetex-extra, libkpathsea-dev or tetex-dev
- dpkg-dev, debhelper, fakeroot
- gs, netpbm
- pnmtopng (only in Debian 2.2; pnmtopng has been merged with netpbm
in Debian testing/unstable.)
Most of these are listed on the Build-Depends
line in the
debian/control
file. To ensure the creation of the lilypond deb is
trouble-free, we recommend that you first install the following packages
by running \apt-get
as root before building the package:
For Debian 2.2:
apt-get install task-debian-devel task-c++-dev \
python-base libguile6-dev tetex-bin tetex-dev \
tetex-extra flex bison texinfo groff gs \
netpbm pnmtopng m4 gettext
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 \
netpbm m4 gettext
And, just so that old fonts from previous versions of LilyPond won't
interfere with your build, you may want to do this before the build too:
dpkg --purge lilypond lilypond1.3
Problems
For help and questions use help-gnu-music@gnu.org and
gnu-music-discuss@gnu.org. Please consult the FAQ before
mailing your problems. If you find bugs, please send bug reports to
bug-gnu-music@gnu.org.
Bugs that are not fault of LilyPond are documented here.
NetBSD
Solaris:
AIX
- AIX 4.3 ld
The following is from the gcc install/SPECIFIC file.
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.
add -Wl,-bbigtoc to USER_LDFLAGS, ie:
LDFLAGS='-Wl,-bbigtoc' ./configure