Even numbered versions are `stable'. The webpages for the stable version (1.4) reside on the GNU servers. Big enhancements go into the latest odd numbered version (1.5), whose webpages are on the lilypond site.
Building LilyPond is an involved process. We advise to use binary packages if these are available for your platform.
Download source tarballs from here:
Use Xdelta to patch tarballs, e.g. to patch
lilypond-1.4.2.tar.gz
to lilypond-1.4.3.tar.gz
, do
xdelta patch lilypond-1.4.2-1.4.3.xd lilypond-1.4.2.tar.gz
For information on packaging and CVS, see http://lilypond.org/, under "development".
Check out http://lilypond.org for up to date information on binary packages.
If you are upgrading from a previous version of LilyPond, be sure to
remove all old font files. These include .pk
and .tfm
files
that may be located in /var/lib/texmf
, /var/spool/texmf
,
/var/tmp/texmf
or prefix
/share/lilypond/fonts/
. A
script automating this has been included, see
buildscripts/clean-fonts.sh
.
You need the following packages to compile LilyPond:
WARNING: plain Flex 2.5.4(a) generates invalid C++ code. GCC 3.x chokes on this. If you wish to use GCC 3.x, make sure that your distribution supports g++ 3.x and flex. For workarounds, see lexer-gcc-3.1.sh in the source directory.
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 or libkpathsea-dev) package too.
This package is normally included with the TeX distribution.
You will need to install some additional packages to get mftrace to work.
GNU LilyPond does use a lot of resources. For operation you need the following software:
You have to help TeX and MetaFont find LilyPond support
files. After compiling, scripts to do this can be found in
buildscripts/out/lilypond-profile
and
buildscripts/out/lilypond-login
.
You can view the documentation online at http://www.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:
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 to see appropriate options make make install sh buildscripts/clean-fonts.sh
The most time-consuming part of compiling LilyPond is tracing the Type1 fonts. You can shortcut this operation by issuing one of the following commands:
make -C mf get-pfa # requires rpm2cpio make -C mf get-debian-pfa # may not be up to date
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, e.g.:
./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.
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=$HOME/usr/ --enable-checking make make install
and for the profiling version, I specify a different configuration:
./configure --prefix=$HOME/usr/ --enable-profiling --enable-config=prof --disable-checking make conf=prof make conf=prof install
An Emacs mode for entering music and running LilyPond is contained in
the source archive in the elisp
directory. make
install
installs it elispdir. The file lilypond-init.el
should be placed to load-path/site-start.d/
or appended
to your ~/.emacs
or ~/.emacs.el
.
As a user, you may want add your source path or, e.g., ~/site-lisp/
to your load-path. Append the following line (modified) to your
~/.emacs
:
(setq load-path (append (list (expand-file-name "~/site-lisp")) load-path))
A Vim mode for entering music and running LilyPond is contained in
the source archive. Append the content of vimrc
to ~/.vimrc
to get shortcuts. Install file lilypond.words.el
to ~/.vim/
to
get auto-completion. Syntax highlighting you get by installing files
lilypond.vim
and lilypond.words.vim
to ~/.vim/syntax/
and appending the following to ~/.vim/filetype.vim
:
" my filetype file if exists("did_load_filetypes") finish endif augroup filetypedetect au! BufRead,BufNewFile *.ly setfiletype lilypond augroup
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.
If kpathsea and the corresponding header files are installed in some
directory where GCC does not search by default, for example in
/usr/local/lib/
and /usr/local/include/
respectively,
you have to explicitly tell configure where to find it. To do this:
rm config.cache
export LDFLAGS=-L/usr/share/texmf/lib
export CPPFLAGS=-I/usr/share/texmf/include
./configure
config.make
and will be used even if you don't have the
environment variables set during make.
Gcc 3.0.4 is flaky; upgrade GCC.
Flex 2.5.4a does not produce g++-3.1.1 compliant C++ code. To compile LilyPond with gcc-3.1.1 you may do
CONF=gcc-3.1 ./lexer-gcc-3.1.sh CPPFLAGS=-I$(pwd)/lily/out-gcc-3.1 CC=gcc-3.1 CXX=g++-3.1 \ ./configure --enable-config=gcc-3.1 CONF=gcc-3.1 ./lexer-gcc-3.1.sh make conf=gcc-3.1
./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 ./configureor:
CONFIG_SHELL=/bin/bash bash -c ./configure
This page is for LilyPond-2.0.0 (stable-branch).