3 INSTALL - compiling and installing GNU LilyPond
4 ***********************************************
9 You can get the latest version of LilyPond at
10 ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/
11 (ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/).
13 There are three options for downloading sources.
15 * if you don't have any version, then you can download the entire
18 * if you have an unpacked source tree of a previous version, you
21 _If you upgrade by patching do remember to rerun autoconf after
24 * if you have the `.tar.gz' file of a previous release, you can use
25 xdelta (ftp://ftp.xcf.berkeley.edu/pub/xdelta/). This is much
26 safer than using normal diffs, and is the recommended way.
28 The following command produces `lilypond-1.3.122.tar.gz' from
29 `lilypond-1.3.121' identical (up to compression dates) to the .122
31 xdelta patch lilypond-1.3.121-1.3.122.xd lilypond-1.3.121.tar.gz
36 This document describes how to build LilyPond on Unix platforms. It
37 is also known to run and compile on Windows NT/95/98 as well. More
38 information on this topic can be found at the LilyPond on Windows page
39 (http://appel.lilypond.org/lilypond/gnu-windows/).
41 You need the following packages to compile Lilypond.
43 * A reasonably new C++ compiler: EGCS 1.1, GCC 2.95.2 or newer.
44 Check out the gcc site (ftp://ftp.gnu.org/gnu/gcc/).
46 * Python 1.5, Check out the python website (http://www.python.org).
48 * GUILE 1.3.4 or newer, check out the GUILE webpage
49 (http://www.gnu.org/software/guile/guile.html). Version 1.4 is
50 recommended for better performance.
52 * GNU Make. Check out the GNU make FTP directory
53 (ftp://ftp.gnu.org/gnu/make/).
55 * Flex (version 2.5.4a or newer). Check out the Flex webpage
56 (http://www.gnu.org/software/flex/).
58 * Bison (version 1.25 or newer). Check out the bison webpage
59 (http://www.gnu.org/software/bison/)
63 TeX is used as an output backend.
65 Also, TeX's libkpathsea is used to find the fonts (.mf, .afm,
66 .tfm). Make sure you have tetex 1.0 or newer (1.0.6 is known to
67 work). You may need to install a tetex-devel or tetex-dev package
70 * Texinfo (version 4.0 or newer). The documentation of lily is
71 written in texinfo. Check out the texinfo FTP directory
72 (ftp://ftp.gnu.org/gnu/texinfo/).
74 * The geometry package for LaTeX is needed to use ly2dvi. It is
75 available at the FTP directory for `geometry'
76 (ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry).
77 This package is normally included with the TeX distribution.
79 * MetaPost, needed for generating PostScript fonts. Please note that
80 tetex-0.4pl8 (included with Red Hat 5.x) does not include
81 `mfplain.mp', which is needed for producing the scalable font
84 If you don't have MetaPost and don't want to use PostScript
85 output, then edit `mf/GNUmakefile', removing the line saying
88 * kpathsea, a library for searching (TeX) files. `kpathsea' is
89 usually included with your installation of TeX. You may need to
90 install a tetex-devel or tetex-dev package too.
92 In the very unlikely case that kpathsea is not available for your
93 platform (ie, you're not running GNU/Linux, Windows, or any recent
94 UNIX), you can compile LilyPond without kpathsea support. In that
95 case, you'll probably have to indicate where TeX's tfm files live.
96 Invoke configure something like:
98 ./configure --without-kpathsea --enable-tfm-path=/usr/share/texmf/fonts/tfm/public/cm/:/usr/share/texmf/fonts/tfm/ams/symbols
104 GNU LilyPond does use a lot of resources. For operation you need the
109 * Xdvi and ghostscript
111 * GUILE 1.3.4, or newer. Check out the GUILE webpage
112 (http://www.gnu.org/software/guile.html)
114 For running LilyPond successfully you have to help TeX and MetaFont
115 find various files. The recommended way of doing so is adjusting the
116 environment variables in the start-up scripts of your shell. Appropriate
117 Csh and bourne sh scripts are left in
118 `buildscripts/out/lilypond-profile' and
119 `buildscripts/out/lilypond-login' after compilation.
121 LilyPond is a big and slow program. A fast CPU and plenty of RAM is
122 recommended for comfortable use.
127 The documentation comes in the form of a website. You can view this
128 website on the internet, but you can also build it locally. This process
129 requires a successful compile of lilypond. The website is built by
134 Building the website requires some additional tools:
136 * xpmtoppm (from the netpbm package: the Portable Bitmap Utilities).
137 The original is at the netpbm FTP site
138 (ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz)
140 * pnmtopng. The original is at in the pnmtopng FTP site
141 (ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz).
143 * Bibtex2html (http://www.lri.fr/~filliatr/ftp/bibtex2html/), or
144 Bib2html (http://www.uni-koblenz.de/ag-ki/ftp/bib2html/).
145 Bibtex2html is available in debian, while bib2html is in some rpm
146 based distributions. Bib2html, in turn depends on man2html for
147 proper installation. man2html can be had from
148 http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05
149 (http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05).
151 The website will build without bib converter utility, but you will
152 not see our hypertextified bibliography.
155 Configuring and compiling
156 =========================
158 to install GNU LilyPond, type:
159 gunzip -c lilypond-x.y.z | tar xf -
161 ./configure # run with --help to see appropriate options
164 sh buildscripts/clean-fonts.sh
166 If you are doing an upgrade, you should remove all `feta' `.pk' and
167 `.tfm' files. A script has been provided to do the work for you, see
168 `buildscripts/clean-fonts.sh'.
170 If you are not root, you should choose a `--prefix' argument that
171 points into your home directory, eg.
173 ./configure --prefix=$HOME/usr
175 In this case, you have to insert the contents of
176 `buildscripts/out/lilypond-login' or
177 `buildscripts/out/lilypond-profile' into your start up scripts by hand.
179 Configuring for multiple platforms
180 ==================================
182 If you want to build multiple versions of LilyPond with different
183 configuration settings, you can use the `--enable-config=CONF' option
184 of configure. You should use `make conf=CONF' to generate the output
185 in `out-CONF'. Example: suppose I want to build with and without
186 profiling. Then I'd use the following for the normal build,
188 ./configure --prefix=~ --enable-checking
192 and for the profiling version, I specify a different configuration.
195 ./configure --prefix=~ --enable-profiling --enable-config=prof --disable-checking
197 make conf=prof install
202 An emacs mode for LilyPond is included with the source archive as
203 `lilypond-mode.el' and `lilypond-font-lock.el'. If you have an RPM, it
204 is in `/usr/share/doc/lilypond-X/'. You have to install it yourself.
206 Add this to your ~/.emacs or ~/.emacs.el:
207 (load-library "lilypond-mode.el")
208 (setq auto-mode-alist
209 (cons '("\\.ly$" . LilyPond-mode) auto-mode-alist))
210 (add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock)))
212 If you have the latest LilyPond-1.3.x Debian package, LilyPond-mode
213 is automatically loaded, so you need not modify your `~/.emacs' file.
218 Red Hat 7.0 i386 RPMS are available from
219 `ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/'.
221 You can also compile them yourself. A spec file is in
222 `make/out/lilypond.spec'. This file is distributed along with the
223 sources. You can make the rpm by issuing
225 rpm -tb lilypond-x.y.z.tar.gz
226 rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
228 For running on a Red Hat system you need these packages: guile,
229 tetex, tetex-dvips, libstdc++, python, ghostscript.
231 For compilation on a Red Hat system you need these packages, in
232 addition to the those needed for running: glibc-devel, gcc-c++,
233 libstdc++-devel, guile-devel, flex, bison, texinfo, tetex-devel, groff,
239 [TODO: document this]
241 Install `tetex', `te_mpost', `te_kpath'.
251 A Debian package is also available. You may install it easily by
252 using apt-get as root:
254 apt-get install lilypond1.3
258 * http://packages.debian.org/lilypond
259 (http://packages.debian.org/lilypond)
261 * http://ftp.debian.org/debian/pool/main/l/lilypond1.3/
262 (http://ftp.debian.org/debian/pool/main/l/lilypond1.3/) for latest
263 package uploaded to Debian unstable;
265 * http://people.debian.org/~foka/lilypond/
266 (http://people.debian.org/~foka/lilypond/) for latest
267 semi-unofficial build of LilyPond 1.3.121 for Debian 2.2r2
268 (potato) users. The official stable Debian 2.2r2 is stuck with
269 the old LilyPond-1.3.24.
271 You may contact Anthony Fok <foka@debian.org> for more information.
273 The build scripts are in the subdirectory `debian/'; you can make
274 the .deb by doing, for example:
277 # dpkg --purge lilypond lilypond1.3
279 $ tar xzf lilypond-1.3.122.tar.gz
280 $ cd lilypond-1.3.122
281 $ dch -p -v 1.3.122-0.local.1 "Local build."
284 # dpkg -i ../lilypond1.3_1.3.122*.deb
288 For compilation on a Debian GNU/Linux system you need these packages,
289 in addition to the those needed for running:
291 * g++, cpp, libc6-dev, libstdc++<your-libstdc++-version-here>-dev
293 * libguile<your-libguile-version-here>-dev
295 * make, m4, flex, bison
299 * groff, texinfo, bibtex2html (not in 2.2r2)
301 * tetex-base, tetex-bin, tetex-extra, libkpathsea-dev or tetex-dev
303 * dpkg-dev, debhelper, fakeroot
305 * gs, netpbm, pnmtopng
307 Most of these are listed on the Build-Depends line in the
308 debian/control file. To ensure the creation of the lilypond deb is
309 trouble-free, we recommend that you first install the following packages
310 before starting dpkg-buildpackage by running apt-get as root.
312 For Debian 2.2 (or 2.2r2, 2.2r3):
314 apt-get install task-debian-devel task-c++-dev \
315 python-base libguile6-dev tetex-bin tetex-dev \
316 tetex-extra flex bison texinfo groff gs \
317 netpbm pnmtopng m4 gettext
319 For Debian in development ("unstable", the future 2.3 or 3.0):
321 apt-get install task-debian-devel task-c++-dev \
322 python-base libguile9-dev tetex-bin libkpathsea-dev \
323 tetex-extra flex bison texinfo bibtex2html groff gs \
324 netpbm pnmtopng m4 gettext
326 And, just so that old fonts from previous versions of LilyPond won't
327 interfere with your build, you may want to do this before the build too:
329 dpkg --purge lilypond lilypond1.3
334 For help and questions use <help-gnu-music@gnu.org> and
335 <gnu-music-discuss@gnu.org>. Please consult the faq before mailing
336 your problems. If you find bugs, please send bug reports to
337 <bug-gnu-music@gnu.org>.
339 Bugs that are not fault of LilyPond are documented here.
344 * The flex precompiled in NetBSD-1.4.2 is broken. Download
345 flex-2.5.4a, build, install.
347 * The configuration of Gcc (egcs-2.91.60 19981201 (egcs-1.1.1
348 release)) does not include `/usr/pkg' paths. Configure using:
350 CFLAGS='-I /usr/pkg/include' LDFLAGS='-L/usr/pkg/lib' ./configure
356 * Sparc64/Solaris 2.6, GNU make-3.77
358 GNU make-3.77 is buggy on this platform, upgrade to 3.78.1 or
361 * Sparc64/Solaris 2.6, ld
370 The following is from the gcc install/SPECIFIC file.
371 Some versions of the AIX binder (linker) can fail with a
372 relocation overflow severe error when the -bbigtoc option
373 is used to link GCC-produced object files into an
374 executable that overflows the TOC. A fix for APAR IX75823
375 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is
376 available from IBM Customer Support and from its
377 27service.boulder.ibm.com website as PTF U455193.
379 Binutils does not support AIX 4.3 (at least through release
380 2.9). GNU as and GNU ld will not work properly and one
381 should not configure GCC to use those GNU utilities. Use
382 the native AIX tools which do interoperate with GCC.
384 add -Wl,-bbigtoc to USER_LDFLAGS, ie:
385 LDFLAGS='-Wl,-bbigtoc' ./configure