The latest development version is also available through anonymous
CVS. See @uref{http://savannah.gnu.org/cvs/?group=lilypond}.
-CVS does not contain generated files. To create @file{configure}, run
+CVS does not contain generated files. To create @file{configure}, run:
@quotation
@example
-./autogen.sh
+ ./autogen.sh
@end example
@end quotation
@subsection Upgrading
-There are two options for upgrading sources.
+There are two options for upgrading sources:
@itemize
-@item if you have an unpacked source tree of a previous version, you
+@item If you have an unpacked source tree of a previous version, you
may the patches.
@emph{If you upgrade by patching do remember to rerun autoconf after
applying the patch}.
-@item if you have the @code{.tar.gz} file of a previous release, you can
+@item If you have the @code{.tar.gz} file of a previous release, you can
use
-@uref{ftp://ftp.xcf.berkeley.edu/pub/xdelta/, xdelta}.
+@uref{http://sourceforge.net/projects/xdelta/, xdelta}.
This is much safer than using patches, and is the recommended way.
The following command produces @file{lilypond-1.4.3.tar.gz} from
@file{lilypond-1.4.2.tar.gz} identical (up to compression dates) to the .3
-on the FTP site.
+on the FTP site:
@example
- xdelta patch lilypond-1.4.2-1.4.3.xd lilypond-1.4.2.tar.gz
+ xdelta patch lilypond-1.4.2-1.4.3.xd lilypond-1.4.2.tar.gz
@end example
@end itemize
hints for Slackware below.
In the very unlikely case that kpathsea is not available for your
-platform (ie, you're not running GNU/Linux, Windows, or any recent
+platform (i.e., 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:
@quotation
@example
-./configure --without-kpathsea --enable-tfm-path=/usr/share/texmf/fonts/tfm/public/cm/:/usr/share/texmf/fonts/tfm/ams/symbols
+ ./configure --without-kpathsea --enable-tfm-path=/usr/share/texmf/fonts/tfm/public/cm/:/usr/share/texmf/fonts/tfm/ams/symbols
@end example
@end quotation
@subsection Running requirements
GNU LilyPond does use a lot of resources. For operation you need the
-following software
+following software:
@itemize @bullet
@item @TeX{}.
-@item Xdvi and Ghostscript
+@item Xdvi and Ghostscript.
@item GUILE 1.4, or newer.
Check out
-@uref{http://www.gnu.org/software/guile.html,the GUILE webpage}
+@uref{http://www.gnu.org/software/guile/guile.html,the GUILE webpage}.
@end itemize
For running LilyPond successfully you have to help @TeX{} and MetaFont find
You can view the documentation online at
@uref{http://www.lilypond.org/stable/Documentation/out-www/}, but you
can also build it locally. This process requires a successful compile of
-lilypond. The documentation is built by issuing
+lilypond. The documentation is built by issuing:
@example
-
- make web
-
+ make web
@end example
Building the website requires some additional tools:
@section Building LilyPond
-to install GNU LilyPond, type:
+To install GNU LilyPond, type:
@example
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
+ sh buildscripts/clean-fonts.sh
@end example
If you are doing an upgrade, you should remove all @file{feta}
If you are not root, you should choose a @code{--prefix} argument that
-points into your home directory, eg.
+points into your home directory, e.g.:
@example
-
./configure --prefix=$HOME/usr
-
@end example
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 @code{--enable-config=CONF}
option of configure. You should use @samp{make conf=CONF} to generate
-the output in @file{out-CONF}. Example: suppose I want to build with
+the output in @file{out-CONF}. Example: Suppose I want to build with
and without profiling. Then I'd use the following for the normal
-build,
+build:
@c prefix=~ ?
@example
-
- ./configure --prefix=$HOME/usr/ --enable-checking
- make
- make install
+ ./configure --prefix=$HOME/usr/ --enable-checking
+ make
+ make install
@end example
-and for the profiling version, I specify a different configuration.
+and for the profiling version, I specify a different configuration:
@example
-
- ./configure --prefix=$HOME/usr/ --enable-profiling --enable-config=prof --disable-checking
- make conf=prof
- make conf=prof install
-
+ ./configure --prefix=$HOME/usr/ --enable-profiling --enable-config=prof --disable-checking
+ make conf=prof
+ make conf=prof install
@end example
@file{~/.emacs}:
@quotation
@example
-(setq load-path (append (list (expand-file-name "~/site-lisp")) load-path))
+ (setq load-path (append (list (expand-file-name "~/site-lisp")) load-path))
@end example
@end quotation
to @file{~/.vim/filetype.vim}:
@quotation
@example
-" my filetype file
-if exists("did_load_filetypes")
- finish
-endif
-augroup filetypedetect
- au! BufRead,BufNewFile *.ly setfiletype lilypond
-augroup
+ " my filetype file
+ if exists("did_load_filetypes")
+ finish
+ endif
+ augroup filetypedetect
+ au! BufRead,BufNewFile *.ly setfiletype lilypond
+ augroup
@end example
@end quotation
need these packages: guile, tetex, tetex-latex, tetex-dvips,
libstdc++, python, ghostscript. A spec file is in
@file{make/out/lilypond.redhat.spec}. This file is distributed along
-with the sources. You can make the rpm by issuing
+with the sources. You can make the rpm by issuing:
@example
-
- cp lilypond-x.y.z.tar.gz /usr/src/redhat/SOURCES/
- tar xfz lilypond-x.y.z.tar.gz
+ cp lilypond-x.y.z.tar.gz /usr/src/redhat/SOURCES/
+ tar xfz lilypond-x.y.z.tar.gz
rpm -bb lilypond-x.y.z/make/out/lilypond.redhat.spec
rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
-
@end example
For compilation on a Red Hat system you need these packages, in
platform.
At least on Slackware 8.0, you have to manually specify the paths to the
-Kpathsea library, see the section on kpathsea
+Kpathsea library, see the section on kpathsea.
@subsection Mandrake
@example
cd lilypond-x.y.z # a previous version
- uscan # download and build latest directly from upstream
+ uscan # download and build latest directly from upstream
@end example
environment variables if you do not want to or cannot modify
@file{/etc/texmf/texmf.cnf}.
-Alternatively, visit
+Alternatively, visit:
@itemize @bullet
@item @uref{http://packages.debian.org/lilypond,http://packages.debian.org/lilypond}
@example
apt-get install binutils cpp gcc libc6-dev \
- g++ libstdc++2.10-dev \
+ g++ libstdc++2.10-dev \
python-base libguile-dev tetex-bin libkpathsea-dev \
tetex-extra flex bison texinfo groff gs \
netpbm m4 gettext
You need to:
@itemize @bullet
-@item Get the Fink package manager from @uref{http://fink.sourceforge.net}
+@item Get the Fink package manager from @uref{http://fink.sourceforge.net}.
@item Get the Lilypond package description by enabling the "unstable" tree
in fink and executing @command{fink selfupdate-cvs}.
@end itemize
run as root:
@example
- apt-get install bash python guile debianutils flex bison texinfo \
- ghostscript6 netpbm m4 gettext
+ apt-get install bash python guile debianutils flex bison texinfo \
+ ghostscript6 netpbm m4 gettext
@end example
and:
@example
- fink install tetex
+ fink install tetex
@end example
For more information about @file{apt-get} and @file{fink}, see
Then, configure, patch, make and install LilyPond using these commands:
@example
- CC="cc -I/sw/include" CXX="c++ -I/sw/include" LDFLAGS="-L/sw/lib" \
- ./configure --prefix=/sw
- make -C lily out/parser.hh out/parser.cc out/config.h
- patch -p0 < darwin.patch
- make -C lily out/parser.o
- make DEPENDENCIES_OUTPUT=/dev/null all
- make install
+ CC="cc -I/sw/include" CXX="c++ -I/sw/include" LDFLAGS="-L/sw/lib" \
+ ./configure --prefix=/sw
+ make -C lily out/parser.hh out/parser.cc out/config.h
+ patch -p0 < darwin.patch
+ make -C lily out/parser.o
+ make DEPENDENCIES_OUTPUT=/dev/null all
+ make install
@end example
For installing, you must be root, of course.
If kpathsea and the corresponding header files are installed in some
directory where GCC does not search by default, for example in
@file{/usr/local/lib/} and @file{/usr/local/include/} respectively,
-you have to explicitly tell configure where to find it. To do this,
+you have to explicitly tell configure where to find it. To do this:
@itemize
@item @code{rm config.cache}
LilyPond with gcc-3.0 you may do:
@example
- CC=gcc-3.0 CXX=g++-3.0 ./configure --enable-config=gcc-3.0
- make conf=gcc-3.0 -C lily out-gcc-3.0/lexer.cc
- patch -p1 < lexer-gcc-3.0.patch
- make conf=gcc-3.0 -C lily
+ CC=gcc-3.0 CXX=g++-3.0 ./configure --enable-config=gcc-3.0
+ make conf=gcc-3.0 -C lily out-gcc-3.0/lexer.cc
+ patch -p1 < lexer-gcc-3.0.patch
+ make conf=gcc-3.0 -C lily
@end example
Note that this is fixed in Debian/unstable for flex >= 2.5.4a-13.
LilyPond with gcc-3.1.1 you may do:
@example
- 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
+ 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
@end example
This assumes that the GCC 3.1 binaries are called gcc-3.1 and g++-3.1.
Guile without threads (YMMV):
@example
- guile-1.4$ ./configure --without-threads; make all install
+ guile-1.4$ ./configure --without-threads; make all install
@end example
@unnumberedsubsec OpenBSD
release)) does not include @file{/usr/pkg} paths. Configure using:
@example
-CFLAGS='-I /usr/pkg/include' LDFLAGS='-L/usr/pkg/lib' ./configure
+ CFLAGS='-I /usr/pkg/include' LDFLAGS='-L/usr/pkg/lib' ./configure
@end example
@file{/bin/sh} is not yet POSIX compliant, but @file{/bin/ksh} or bash
is. Please run configure like:
@example
- CONFIG_SHELL=/bin/ksh ksh -c ./configure
+ CONFIG_SHELL=/bin/ksh ksh -c ./configure
@end example
-or
+or:
@example
- CONFIG_SHELL=/bin/bash bash -c ./configure
+ CONFIG_SHELL=/bin/bash bash -c ./configure
@end example
@item Sparc64/Solaris 2.6, GNU make-3.77
@itemize @bullet
@item AIX 4.3 ld
-The following is from the gcc install/SPECIFIC file.
+The following is from the gcc install/SPECIFIC file:
@quotation
Some versions of the AIX binder (linker) can fail with a relocation
overflow severe error when the -bbigtoc option is used to link
interoperate with GCC.
@end quotation
-add -Wl,-bbigtoc to USER_LDFLAGS, ie:
+add -Wl,-bbigtoc to USER_LDFLAGS, i.e.:
@example
- LDFLAGS='-Wl,-bbigtoc' ./configure
+ LDFLAGS='-Wl,-bbigtoc' ./configure
@end example
@end itemize