10 INSTALL - compiling and installing GNU LilyPond
22 6: CONFIGURING and COMPILING
23 7: CONFIGURING FOR MULTIPLE PLATFORMS
34 This document explains what you need to install LilyPond,
35 and what you should do. If you are going to compile and
36 install LilyPond very often you might want to check out the
37 buildscripts/set-lily.sh script. It sets some environment
38 variables and symlinks, which comes in handly when you have
39 to compile LilyPond very often.
45 For compilation you need:
48 o A GNU system: GNU LilyPond is known to run on these GNU
49 systems: Linux (PPC, intel), FreeBSD, AIX, NeXTStep,
50 IRIX, Digital Unix and Solaris.
53 o Lots of disk space: LilyPond takes between 50 and 100
54 mb to compile if you use debugging information. If you
55 are short on disk-space run configure with --disable-
58 Although we recommend to use Unix, LilyPond is known to
59 run on Windows NT/95/98 as well. See Section 11.
62 o GNU C++ version 2.7 or newer (2.8 and egcs are also
65 o Python 1.5 (Strictly speaking, you shouldn't need
66 Python for compiling and installing, but you'll need it
67 to regenerate the font tables, e.g.).
70 o GUILE 1.3 (no, GUILE 1.2 won't work)
76 GNU LilyPond does use a lot of resources. For operation you
82 o A PostScript printer and/or viewer (such as
83 Ghostscript) is strongly recommended. Xdvi will show
84 all embedded PostScript too if you have Ghostscript
89 For running LilyPond successfully you have to help TeX and
90 MetaFont find various files. The recommended way of doing
91 so is adjusting the environment variables in the start-up
92 scripts of your shell. An example is given here for the
98 export MFINPUTS="/usr/local/share/lilypond/mf:"
99 export TEXINPUTS="/usr/local/share/lilypond/tex:"
104 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.
114 Although not strictly necessary, these are recommended to
118 o GNU make. Check out ftp://ftp.gnu.org or any mirror of
122 o Flex (version 2.5.4 or newer). Check out
123 ftp://ftp.gnu.org or any mirror of this site.
125 o Bison (version 1.25 or newer). Check out
126 ftp://ftp.gnu.org or any mirror of this site.
129 o GUILE (version 1.2) Check out http://www.gnu.org/pro-
133 o Python (version 1.5 or newer). Check out
134 ftp://ftp.python.org or ftp://ftp.cwi.nl/pub/python.
137 o Yodl. All documentation will be in Yodl. (1.30.17)
138 ftp://pcnov095.win.tue.nl/pub/yodl
139 http://www.cs.uu.nl/~hanwen/yodl
142 o Texinfo. (version 3.12 or newer)
145 o GNU find Check out ftp://ftp.gnu.org or any mirror of
149 o The geometry package for LaTeX is needed to use ly2dvi.
150 Available at ftp://ftp.ctan.org/tex-
151 archive/macros/latex/contrib/supported/geometry or at
152 mirror site ftp://ftp.dante.de
155 o A fast computer (a full page of music typically takes 1
156 minute on my 486/133, using the --enable-checking com-
157 pile. It's lot slower than most MusiXTeX preprocessors)
163 If you want to auto-generate Lily's website, you'll need
164 some additional conversion tools.
167 o xpmtoppm (from the Portable Bitmap Utilities) (For Red-
168 Hat Linux users: it is included within the package
171 o Bib2html http://pertsserver.cs.uiuc.edu/~hull/bib2html.
172 Which, in turn depends on man2html for proper installa-
173 tion. man2html can be had from http://askdon-
174 ald.ask.uni-karlsruhe.de/hppd/hpux/Network-
175 ing/WWW/Man2html-1.05.
177 TeTeX users should not forget to rerun texhash.
179 Building the website requires pnmtopng. The version of pnm-
180 topng that is distributed with RedHat 5.1 contains a bug
181 (pnmtopng is dynamically linked to the wrong version of
182 libpng). Recompile it from source, and make sure that the
183 pnmtopng binary is linked statically to the libpng that is
187 tar xzf libgr-2.0.13.tar.gz
197 You can then install the new pnmtopng into /usr/local/bin/
200 6: CONFIGURING and COMPILING
203 to install GNU LilyPond, simply type:
209 gunzip -c lilypond-x.y.z | tar xf -
211 configure # fill in your standard prefix with --prefix
219 This will install a number of files, something close to:
225 /usr/local/man/man1/mi2mu.1
226 /usr/local/man/man1/convert-mudela.1
227 /usr/local/man/man1/mudela-book.1
228 /usr/local/man/man1/lilypond.1
229 /usr/local/bin/lilypond
231 /usr/local/share/lilypond/*
232 /usr/local/share/locale/{it,nl}/LC_MESSAGES/lilypond.mo
238 The above assumes that you are root and have the GNU devel-
239 opment tools, and your make is GNU make. If this is not the
240 case, you can adjust your environment variables to your
250 export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR"
257 CPPFLAGS are the preprocessor flags.
259 The configure script is Cygnus configure, and it will accept
260 --help. If you are not root, you will probably have to make
261 it with a different --prefix option. Our favourite location
269 configure --prefix=$HOME/usr
275 In this case, you will have to set up MFINPUTS, and TEXIN-
278 Since GNU LilyPond currently is beta, you are advised to
293 Options to configure include:
297 Link in GUILE (experimental)
300 Enable debugging print routines (lilypond -D option)
303 Set maximum optimisation: compile with -O2. This can
304 be unreliable on some compiler/platform combinations
305 (eg, DEC Alpha and PPC)
308 Compile with support for profiling.
311 Output to a different configuration file. Needed for
312 multi-platform builds
314 All options are documented in the configure help The option
315 --enable-optimise is recommended for Real Life usage.
330 everything will be compiled, but nothing will be installed.
331 The resulting binaries can be found in the subdirectories
332 out/ (which contain all files generated during compilation).
335 7: CONFIGURING FOR MULTIPLE PLATFORMS
338 If you want to compile LilyPond with different configuration
339 settings, then, you can use the --enable-config option.
340 Example: suppose I want to build with and without profil-
341 ing. Then I'd use the following for the normal build,
344 configure --prefix=~ --disable-optimise --enable-checking
352 and for the profiling version, I specify a different config-
360 configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking
362 make config=optprof install
372 If you have done a successful make, then a simple
387 If you are doing an upgrade, please remember to remove obso-
388 lete .pk and .tfm files of the fonts. A script has been
389 provided to do the work for you, see bin/clean-fonts.sh.
396 o The -O2 option to gcc triggers a gcc bug on DEC Alpha
397 in dstream.cc. You should turn off this flag for this
406 This is what I type in my xterm:
413 lilypond someinput.ly
421 This is what the output looks like over here:
428 GNU LilyPond 0.0.78 #4/FlowerLib 1.1.24 #0
429 Parsing ... [/home/hw/share/lilypond/init//
431 init//performer.ly]]][input/kortjakje.ly]
432 Creating elements ...[8][16][24][25]
433 Preprocessing elements...
434 Calculating column positions ... [14][25]
435 Postprocessing elements...
436 TeX output to someinput.tex ...
437 Creating MIDI elements ...MIDI output to someinput.midi ...
440 hw:~/musix/spacer$ xdvi someinput&
447 Check out the input files, some of them have comments Please
448 refer to the man page for more information.
454 RedHat Linux users can compile an RPM. A spec file is in
455 make/out/lilypond.spec, it is distributed along with the
458 You can make the rpm by issuing
464 rpm -tb lilypond-x.y.z.tar.gz
465 rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
475 A Debian package is also available; contact Anthony Fok
476 foka@debian.org <foka@debian.org>. The build scripts are in
477 the subdirectory debian/.
483 Separate instructions on building for W32 are avaible in the
490 Han-Wen Nienhuys <hanwen@cs.uu.nl>
492 Jan Nieuwenhuizen <janneke@gnu.org>