2 INSTALL - compiling and installing GNU LilyPond
13 6: CONFIGURING and COMPILING
14 7: CONFIGURING FOR MULTIPLE PLATFORMS
23 This document explains what you need to install LilyPond,
24 and what you should do. If you are going to compile and
25 install LilyPond often, e.g. when doing development, you
26 might want to check out the buildscripts/set-lily.sh script.
27 It sets some environment variables and symlinks, which comes
28 in handly when you have to compile LilyPond more often.
32 You can get the latest version of LilyPond at
33 ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/. Refer to the links
34 document for mirror sites.
36 If you upgrade by patching do remember to rerun autoconf
37 after applying the patch.
41 For compilation you need:
43 o A GNU system: GNU LilyPond is known to run on these GNU
44 systems: Linux (PPC, intel), FreeBSD, AIX, NeXTStep,
45 IRIX, Digital Unix and Solaris.
47 o Lots of disk space: LilyPond takes between 30 and 100
48 mb to compile if you use debugging information. If you
49 are short on disk-space run configure with --disable-
52 Although we recommend to use Unix, LilyPond is known to
53 run on Windows NT/95/98 as well. See Section 11.
57 o Python 1.5, Check out ftp://ftp.python.org or
58 ftp://ftp.cwi.nl/pub/python.
60 o GUILE 1.3, check out http://www.gnu.org/soft-
61 ware/guile/guile.html.
63 o GNU make. Check out ftp://ftp.gnu.org.
65 o Flex (version 2.5.4 or newer). Check out
68 o Bison (version 1.25 or newer). Check out
71 o Yodl. All documentation will be in Yodl. (1.30.17)
72 ftp://ftp.lilypond.org/pub/yodl
74 o The geometry package for LaTeX is needed to use ly2dvi.
75 Available at ftp://ftp.ctan.org/tex-
76 archive/macros/latex/contrib/supported/geometry or at
77 mirror site ftp://ftp.dante.de
81 GNU LilyPond does use a lot of resources. For operation you
82 need the following software
86 o A PostScript printer and/or viewer (such as
87 Ghostscript) is strongly recommended. Xdvi will show
88 all embedded PostScript too if you have Ghostscript
91 o GUILE 1.3, check out http://www.gnu.org/pro-
94 For running LilyPond successfully you have to help TeX and
95 MetaFont find various files. The recommended way of doing
96 so is adjusting the environment variables in the start-up
97 scripts of your shell. An example is given here for the
100 export MFINPUTS="/usr/local/share/lilypond/mf:"
101 export TEXINPUTS="/usr/local/share/lilypond/tex:/usr/local/share/lilypond/ps:"
103 The empty path component represents and MetaFont's default
105 search paths. Scripts with the proper paths for the bourne
106 and C-shell respectively are generated in build-
107 scripts/out/lilypond-profile and buildscripts/out/lilypond-
108 login during compilation.
110 LilyPond is a hideously slow program. A fast CPU and plenty
111 of RAM is recommended for comfortable use.
115 If you want to auto-generate Lily's website, you'll need
116 some additional conversion tools.
118 o xpmtoppm (from the Portable Bitmap Utilities) (For Red-
119 Hat Linux users: it is included within the package
120 libgr-progs). the original is at ftp://ftp.x.org/con-
121 trib/utilities/netpbm-1mar1994.p1.tar.gz
123 o pnmtopng, which is also in libgr-progs for RedHat. The
125 ftp://swrinde.nde.swri.edu/pub/png/applications/pnm-
126 topng-2.37.2.tar.gz.i
128 The version of pnmtopng that is distributed with RedHat
129 5.1 and 5.2 contains a bug: pnmtopng is dynamically
130 linked to the wrong version of libpng. Recompile it
131 from source, and make sure that the pnmtopng binary is
132 linked statically to the libpng that is included in
133 libgr. RedHat 6.0 does not have this problem.
135 tar xzf libgr-2.0.13.tar.gz
141 You can then install the new pnmtopng into
144 o Bib2html http://pertsserver.cs.uiuc.edu/~hull/bib2html.
145 Which, in turn depends on man2html for proper
147 installation. man2html can be had from http://askdon-
148 ald.ask.uni-karlsruhe.de/hppd/hpux/Network-
149 ing/WWW/Man2html-1.05.
151 The website will build without this utility, but you
152 will not see our hypertextified bibliography.
154 TeTeX users should not forget to rerun texhash.
156 You also have to install buildscripts/out/ps-to-gifs in a
157 directory that is in the path.
159 6: CONFIGURING and COMPILING
161 to install GNU LilyPond, simply type:
163 gunzip -c lilypond-x.y.z | tar xf -
165 ./configure # fill in your standard prefix with --prefix
169 This will install a number of files, something close to:
171 /usr/local/man/man1/mi2mu.1
172 /usr/local/man/man1/convert-mudela.1
173 /usr/local/man/man1/mudela-book.1
174 /usr/local/man/man1/lilypond.1
175 /usr/local/bin/lilypond
177 /usr/local/share/lilypond/*
178 /usr/local/share/locale/{it,nl}/LC_MESSAGES/lilypond.mo
180 The above assumes that you are root and have the GNU devel-
181 opment tools, and your make is GNU make. If this is not the
182 case, you can adjust your environment variables to your
186 export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR"
189 CPPFLAGS are the preprocessor flags.
191 The configure script is Cygnus configure, and it will accept
192 --help. If you are not root, you will probably have to make
193 it with a different --prefix option. Our favourite location
196 ./configure --prefix=$HOME/usr
198 In this case, you will have to set up MFINPUTS, and TEXIN-
201 Since GNU LilyPond currently is beta, you are advised to
207 Options to configure include:
210 Enable debugging print routines (lilypond -D option)
213 Set maximum optimisation: compile with -O2. This can
214 be unreliable on some compiler/platform combinations
215 (eg, DEC Alpha and PPC)
218 Compile with support for profiling.
221 Output to a different configuration file. Needed for
222 multi-platform builds
224 All options are documented in the configure help The option
225 --enable-optimise is recommended for Real Life usage.
231 everything will be compiled, but nothing will be installed.
232 The resulting binaries can be found in the subdirectories
233 out/ (which contain all files generated during compilation).
235 7: CONFIGURING FOR MULTIPLE PLATFORMS
237 If you want to compile LilyPond with different configuration
238 settings, then, you can use the --enable-config option.
239 Example: suppose I want to build with and without profil-
240 ing. Then I'd use the following for the normal build,
242 ./configure --prefix=~ --disable-optimise --enable-checking
246 and for the profiling version, I specify a different config-
249 ./configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking
251 make config=optprof install
255 If you have done a successful make, then a simple
261 If you are doing an upgrade, please remember to remove obso-
262 lete .pk and .tfm files of the fonts. A script has been
263 provided to do the work for you, see bin/clean-fonts.sh.
267 o The -O2 option triggers bugs on various platforms
268 (PowerPC, Alpha). If you experience problems, you
269 should first try turning off this.
271 o On PPC you need at least EGCS-1.1.2f.
275 This is what I type in my xterm:
277 lilypond someinput.ly
281 This is what the output looks like over here:
283 GNU LilyPond 0.0.78 #4/FlowerLib 1.1.24 #0
284 Parsing ... [/home/hw/share/lilypond/init//
286 init//performer.ly]]][input/kortjakje.ly]
287 Creating elements ...[8][16][24][25]
288 Preprocessing elements...
289 Calculating column positions ... [14][25]
290 Postprocessing elements...
291 TeX output to someinput.tex ...
292 Creating MIDI elements ...MIDI output to someinput.midi ...
294 hw:~/musix/spacer$ xdvi someinput&
297 Check out the input files, some of them have comments Please
298 refer to the man page for more information.
302 RedHat Linux users can compile an RPM. A spec file is in
303 make/out/lilypond.spec, it is distributed along with the
306 You can make the rpm by issuing
308 rpm -tb lilypond-x.y.z.tar.gz
309 rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
311 Precompiled i386 RedHat RPMS are available from
312 http://linux.umbc.edu/software/lilypond/rpms/.
316 A Debian package is also available; contact Anthony Fok
317 foka@debian.org. The build scripts are in the subdirectory
322 Separate instructions on building for W32 are avaible in the
327 Han-Wen Nienhuys <hanwen@cs.uu.nl>
329 Jan Nieuwenhuizen <janneke@gnu.org>