There are two sets of releases for LilyPond: stable releases, and unstable development releases. Stable versions have an even-numbered ‘minor’ version number (i.e. 2.8, 2.10, 2.12, etc). Development versions have an odd-numbered ‘minor’ version number (i.e. 2.7, 2.9, 2.11, etc).
Building LilyPond is a very involved process, so we highly recommend using the precompiled binaries.
Check out http://lilypond.org/web/install/ for up to date information on binary packages for your platform. If your operating system is not covered on that general page, please see the complete list at http://download.linuxaudio.org/lilypond/binaries/
We currently create binaries for
MacOS
darwin-ppc
darwin-x86
freebsd-64
freebsd-x86
linux-64
linux-arm
linux-ppc
linux-x86
mingw
Download source
git clone git://git.sv.gnu.org/lilypond.git
The repository does not contain generated files. To create configure, run
./autogen.sh
For information on packaging, see http://lilypond.org/devel.
In addition to the packages needed for running Lilypond (see below), you need the following extra packages for building.
When installing a binary package FOO, you may need to install the FOO-devel, libFOO-dev or FOO-dev package too.
Running LilyPond requires proper installation of the following software
International fonts are required to create music with international text or lyrics.
You can view the documentation online at http://lilypond.org/doc/, but you can also build it locally. This process requires a successful compile of lilypond. The documentation is built by issuing
make web
Building the website requires some additional tools and packages
The HTML files can be installed into the standard documentation path by issuing
make out=www web-install
To install GNU LilyPond, type
gunzip -c lilypond-x.y.z | tar xf -
cd lilypond-x.y.z
./configure # run with --help for applicable options
make
make install
If you are not root, you should choose a --prefix argument that
points into your home directory, e.g.
./configure --prefix=$HOME/usr
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 you want to build
with and without profiling, then use the following for the normal
build
./configure --prefix=$HOME/usr/ --enable-checking
make
make install
and for the profiling version, specify a different configuration
./configure --prefix=$HOME/usr/ --enable-profiling --enable-config=prof --disable-checking
make conf=prof
make conf=prof install
The documentation can be built locally without compiling lilypond from scratch.
From a fresh git checkout, do
./autogen.sh % ignore any warning messages
cp GNUmakefile.in GNUmakefile
make -C python
nice make LILYPOND_EXTERNAL_BINARY=/path/to/bin/lilypond web
% change the lilypond directory as appropriate
Please note that this may break sometimes – for example, if a new feature is added with a test file in input/regression, even the latest unstable Lily will fail to build the docs.
You may build the manual ( Documentation/user/ ) without building all the input/* stuff.
LilyPond comes with an extensive suite that exercises the entire program. This suite can be used to automatically check the impact of a change. This is done as follows
make test-baseline
## apply your changes, compile
make check
This will leave an HTML page out/test-results/index.html. This page shows all the important differences that your change introduced, whether in the layout, MIDI, performance or error reporting.
To rerun tests, use
make test-redo ## redo files differing from baseline
make test-clean ## remove all test results
and then run make check again.
For tracking memory usage as part of this test, you will need GUILE CVS; especially the following patch: http://lilypond.org/vc/gub.darcs/patches/guile-1.9-gcstats.patch.
For checking the coverage of the test suite, do the following
./buildscripts/build-coverage.sh
# uncovered files, least covered first
python ./buildscripts/coverage.py --summary out-cov/*.cc
# consecutive uncovered lines, longest first
python ./buildscripts/coverage.py --uncovered out-cov/*.cc
For help and questions use lilypond-user@gnu.org. Send bug reports to bug-lilypond@gnu.org.
Bugs that are not fault of LilyPond are documented here.
There is a bug in bison-1.875: compilation fails with "parse error before `goto'" in line 4922 due to a bug in bison. To fix, please recompile bison 1.875 with the following fix
$ cd lily; make out/parser.cc
$ vi +4919 out/parser.cc
# append a semicolon to the line containing "__attribute__ ((__unused__))
# save
$ make
Solaris7, ./configure
./configure needs a POSIX compliant shell. On Solaris7, /bin/sh is not yet POSIX compliant, but /bin/ksh or bash is. Run configure like
CONFIG_SHELL=/bin/ksh ksh -c ./configure
or
CONFIG_SHELL=/bin/bash bash -c ./configure
To use system fonts, dejaview must be installed. With the default port, the fonts are installed in usr/X11R6/lib/X11/fonts/dejavu.
Open the file $LILYPONDBASE/usr/etc/fonts/local.conf and add the
following line just after the <fontconfig> line. (Adjust as necessary
for your hierarchy.)
<dir>/usr/X11R6/lib/X11/fonts</dir>
On MacOs X, all fonts are installed by default. However, finding all
system fonts requires a bit of configuration; see
this post on the lilypond-user mailing list.
On Linux, international fonts are installed by different means on every distribution. We cannot list the exact commands or packages that are necessary, as each distribution is different, and the exact package names within each distribution changes. Here are some hints, though:
Red Hat Fedora
taipeifonts fonts-xorg-truetype ttfonts-ja fonts-arabic \
ttfonts-zh_CN fonts-ja fonts-hebrew
Debian GNU/Linux
apt-get install emacs-intl-fonts xfonts-intl-.* \
ttf-kochi-gothic ttf-kochi-mincho \
xfonts-bolkhov-75dpi xfonts-cronyx-100dpi xfonts-cronyx-75dpi
This page is for LilyPond-2.11.31 (development-branch).
Report errors to http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs.
Your suggestions for the documentation are welcome.