Even numbered versions are `stable' (2.0, 1.8 etc), while odd version
are development releases (2.1, 1.9, etc). Building LilyPond is an
involved process, so if possible, download a precompiled binary from
the lilypond site.
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
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:
You will need to install some additional packages to get mftrace to
work.
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.
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:
Building the website requires some additional tools:
The HTML files can be installed into the standard documentation path
by issuing
To install GNU LilyPond, type
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:
If you are doing an upgrade, you should remove all feta
If you are not root, you should choose a In this case, you have to insert the contents of
If you want to build multiple versions of LilyPond with different
configuration settings, you can use the and for the profiling version, I specify a different configuration:
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:
A Vim mode for entering music and running LilyPond is contained in the
source archive. For version 6.2 and newer, Vim-mode works directly after
installing LilyPond. Otherwise, complete the following two steps.
For earlier versions (and if If Vim has been (pre-)installed to /usr/... (or any other place)
instead of /usr/local/..., then /usr/local/share/vim may not
be specified in your 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, either
recompile bison 1.875 with the following fix:
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:
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
./configure needs a POSIX compliant shell. On Solaris7,
/bin/sh is not yet POSIX compliant, but /bin/ksh or bash
is. Run configure like:
or:
1.1 Downloading
1.1.1 Source code
xdelta patch lilypond-1.4.2-1.4.3.xd lilypond-1.4.2.tar.gz
1.1.2 Precompiled binaries
1.1.3 Font problems
1.2 Requirements
1.2.1 Compilation
1.2.2 Running requirements
1.2.3 Building documentation
make web
make out=www web-install
1.3 Building LilyPond
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
make -C mf get-pfa # requires rpm2cpio
make -C mf get-debian-pfa # may not be up to date
.pk
and .tfm
files. A script has been provided to do the
work for you, see buildscripts/clean-fonts.sh.
--prefix
argument that
points into your home directory, e.g.:
./configure --prefix=$HOME/usr
buildscripts/out/lilypond-login
or
buildscripts/out/lilypond-profile
into your start up scripts by
hand.
1.3.1 Configuring for multiple platforms
--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
./configure --prefix=$HOME/usr/ --enable-profiling --enable-config=prof --disable-checking
make conf=prof
make conf=prof install
1.4 Emacs mode
(setq load-path (append (list (expand-file-name "~/site-lisp")) load-path))
1.5 Vim mode
$VIM
environment variable does not
fall-back to /usr/local/share/vim, see :version
in vim),
the LilyPond file type is detected if your file ~/.vim/filetype.vim has the following content:
if exists("did_load_filetypes")
finish
endif
augroup filetypedetect
au! BufNewFile,BufRead *.ly setf lilypond
augroup END
$VIMRUNTIME
environment variable and you have to
include this path explicitly by appending the following line to your
~/.vimrc:
set runtimepath+=/usr/local/share/vim/
1.6 Problems
1.6.1 Bison 1.875
$ cd lily; make out/parser.cc
$ vi +4919 out/parser.cc
# append a semicolon to the line containing "__attribute__ ((__unused__))
# save
$ make
1.6.2 Linking to kpathsea
Once configure has found them, the paths are stored in
config.make and will be used even if you don't have the
environment variables set during make.
rm config.cache
export LDFLAGS=-L/usr/share/texmf/lib
export CPPFLAGS=-I/usr/share/texmf/include
./configure
Gcc-3.0.4
Flex-2.5.4a and gcc-3.x
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
OpenBSD
NetBSD
Solaris
CONFIG_SHELL=/bin/ksh ksh -c ./configure
CONFIG_SHELL=/bin/bash bash -c ./configure
Read comments on this page, or
add one.
This page is for LilyPond-2.2.6 (stable-branch). |