2 INSTALL - compiling and installing GNU LilyPond
14 7: CONFIGURING and COMPILING
15 8: CONFIGURING FOR MULTIPLE PLATFORMS
24 This document explains what you need to install LilyPond,
25 and what you should do. If you are going to compile and
26 install LilyPond often, e.g. when doing development, you
27 might want to check out the buildscripts/set-lily.sh script.
28 It sets some environment variables and symlinks, which comes
29 in handly when you have to compile LilyPond more often.
33 You can get the latest version of LilyPond at
34 ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/. Refer to the links
35 document for mirror sites.
37 If you upgrade by patching do remember to rerun autoconf
38 after applying the patch.
42 For compilation you need:
44 o A GNU system: GNU LilyPond is known to run on these GNU
45 systems: Linux (PPC, intel), FreeBSD, AIX, NeXTStep,
46 IRIX, Digital Unix and Solaris.
48 o Lots of disk space: LilyPond takes between 50 and 100
49 mb to compile if you use debugging information. If you
50 are short on disk-space run configure with --disable-
53 Although we recommend to use Unix, LilyPond is known to
54 run on Windows NT/95/98 as well. See Section 12.
58 o Python 1.5 (Strictly speaking, you shouldn't need
59 Python for compiling and installing, but you'll need it
60 to regenerate the font tables, e.g.).
62 o GUILE 1.3 (no, GUILE 1.2 won't work), check out
63 http://www.gnu.org/software/guile/guile.html.
67 GNU LilyPond does use a lot of resources. For operation you
72 o A PostScript printer and/or viewer (such as
73 Ghostscript) is strongly recommended. Xdvi will show
74 all embedded PostScript too if you have Ghostscript
77 o GUILE 1.3 (no, GUILE 1.2 won't work), check out
78 http://www.gnu.org/programs/guile.html
80 For running LilyPond successfully you have to help TeX and
81 MetaFont find various files. The recommended way of doing
82 so is adjusting the environment variables in the start-up
83 scripts of your shell. An example is given here for the
86 export MFINPUTS="/usr/local/share/lilypond/mf:"
87 export TEXINPUTS="/usr/local/share/lilypond/tex:/usr/local/share/lilypond/ps:"
89 The empty path component represents and MetaFont's default
90 search paths. Scripts with the proper paths for the bourne
91 and C-shell respectively are generated in build-
92 scripts/out/lilypond-profile and buildscripts/out/lilypond-
93 login during compilation.
97 Although not strictly necessary, these are recommended to
100 o GNU make. Check out ftp://ftp.gnu.org or any mirror of
103 o Flex (version 2.5.4 or newer). Check out
104 ftp://ftp.gnu.org or any mirror of this site.
106 o Bison (version 1.25 or newer). Check out
107 ftp://ftp.gnu.org or any mirror of this site.
109 o GUILE 1.3 (no, GUILE 1.2 won't work), check out
110 http://www.gnu.org/programs/guile.html.
112 o Python (version 1.5 or newer). Check out
113 ftp://ftp.python.org or ftp://ftp.cwi.nl/pub/python.
115 o Yodl. All documentation will be in Yodl. (1.30.17)
116 ftp://ftp.lilypond.org/pub/yodl
117 http://www.cs.uu.nl/~hanwen/yodl
119 o Texinfo. (version 3.12 or newer)
121 o GNU find Check out ftp://ftp.gnu.org or any mirror of
124 o The geometry package for LaTeX is needed to use ly2dvi.
125 Available at ftp://ftp.ctan.org/tex-
126 archive/macros/latex/contrib/supported/geometry or at
127 mirror site ftp://ftp.dante.de
129 o A fast computer: a full page of music typically takes 1
130 minute on my 486/133, using the --enable-checking com-
135 If you want to auto-generate Lily's website, you'll need
136 some additional conversion tools.
138 o xpmtoppm (from the Portable Bitmap Utilities) (For Red-
139 Hat Linux users: it is included within the package
142 o Bib2html http://pertsserver.cs.uiuc.edu/~hull/bib2html.
143 Which, in turn depends on man2html for proper installa-
144 tion. man2html can be had from http://askdon-
145 ald.ask.uni-karlsruhe.de/hppd/hpux/Network-
146 ing/WWW/Man2html-1.05.
148 TeTeX users should not forget to rerun texhash.
150 Building the website requires pnmtopng. The version of pnm-
151 topng that is distributed with RedHat 5.1 contains a bug
152 (pnmtopng is dynamically linked to the wrong version of
153 libpng). Recompile it from source, and make sure that the
154 pnmtopng binary is linked statically to the libpng that is
158 tar xzf libgr-2.0.13.tar.gz
164 You can then install the new pnmtopng into /usr/local/bin/
166 7: CONFIGURING and COMPILING
168 to install GNU LilyPond, simply type:
170 gunzip -c lilypond-x.y.z | tar xf -
172 ./configure # fill in your standard prefix with --prefix
176 This will install a number of files, something close to:
178 /usr/local/man/man1/mi2mu.1
179 /usr/local/man/man1/convert-mudela.1
180 /usr/local/man/man1/mudela-book.1
181 /usr/local/man/man1/lilypond.1
182 /usr/local/bin/lilypond
184 /usr/local/share/lilypond/*
185 /usr/local/share/locale/{it,nl}/LC_MESSAGES/lilypond.mo
187 The above assumes that you are root and have the GNU devel-
188 opment tools, and your make is GNU make. If this is not the
189 case, you can adjust your environment variables to your
192 export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR"
195 CPPFLAGS are the preprocessor flags.
197 The configure script is Cygnus configure, and it will accept
198 --help. If you are not root, you will probably have to make
199 it with a different --prefix option. Our favourite location
202 ./configure --prefix=$HOME/usr
204 In this case, you will have to set up MFINPUTS, and TEXIN-
207 Since GNU LilyPond currently is beta, you are advised to
213 Options to configure include:
216 Enable debugging print routines (lilypond -D option)
219 Set maximum optimisation: compile with -O2. This can
220 be unreliable on some compiler/platform combinations
221 (eg, DEC Alpha and PPC)
224 Compile with support for profiling.
227 Output to a different configuration file. Needed for
228 multi-platform builds
230 All options are documented in the configure help The option
231 --enable-optimise is recommended for Real Life usage.
237 everything will be compiled, but nothing will be installed.
238 The resulting binaries can be found in the subdirectories
239 out/ (which contain all files generated during compilation).
241 8: CONFIGURING FOR MULTIPLE PLATFORMS
243 If you want to compile LilyPond with different configuration
244 settings, then, you can use the --enable-config option.
245 Example: suppose I want to build with and without profil-
246 ing. Then I'd use the following for the normal build,
248 ./configure --prefix=~ --disable-optimise --enable-checking
252 and for the profiling version, I specify a different config-
255 ./configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking
257 make config=optprof install
261 If you have done a successful make, then a simple
267 If you are doing an upgrade, please remember to remove obso-
268 lete .pk and .tfm files of the fonts. A script has been
269 provided to do the work for you, see bin/clean-fonts.sh.
273 o The -O2 option triggers bugs on various platforms
274 (PowerPC, Alpha). If you experience problems, you
276 should first try turning off this.
280 This is what I type in my xterm:
282 lilypond someinput.ly
286 This is what the output looks like over here:
288 GNU LilyPond 0.0.78 #4/FlowerLib 1.1.24 #0
289 Parsing ... [/home/hw/share/lilypond/init//
291 init//performer.ly]]][input/kortjakje.ly]
292 Creating elements ...[8][16][24][25]
293 Preprocessing elements...
294 Calculating column positions ... [14][25]
295 Postprocessing elements...
296 TeX output to someinput.tex ...
297 Creating MIDI elements ...MIDI output to someinput.midi ...
299 hw:~/musix/spacer$ xdvi someinput&
302 Check out the input files, some of them have comments Please
303 refer to the man page for more information.
307 RedHat Linux users can compile an RPM. A spec file is in
308 make/out/lilypond.spec, it is distributed along with the
311 You can make the rpm by issuing
313 rpm -tb lilypond-x.y.z.tar.gz
314 rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
318 A Debian package is also available; contact Anthony Fok
319 foka@debian.org. The build scripts are in the subdirectory
324 Separate instructions on building for W32 are avaible in the
329 Han-Wen Nienhuys <hanwen@cs.uu.nl>
331 Jan Nieuwenhuizen <janneke@gnu.org>