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 For compilation you need:
34 o A GNU system: GNU LilyPond is known to run on these GNU
35 systems: Linux (PPC, intel), FreeBSD, AIX, NeXTStep,
36 IRIX, Digital Unix and Solaris.
38 o Lots of disk space: LilyPond takes between 50 and 100
39 mb to compile if you use debugging information. If you
40 are short on disk-space run configure with --disable-
43 Although we recommend to use Unix, LilyPond is known to
44 run on Windows NT/95/98 as well. See Section 11.
46 o GNU C++ version 2.8 or newer (egcs-1.1 or newer is also
49 o Python 1.5 (Strictly speaking, you shouldn't need
50 Python for compiling and installing, but you'll need it
51 to regenerate the font tables, e.g.).
53 o GUILE 1.3 (no, GUILE 1.2 won't work), check out
54 http://www.gnu.org/software/guile/guile.html.
58 GNU LilyPond does use a lot of resources. For operation you
63 o A PostScript printer and/or viewer (such as
64 Ghostscript) is strongly recommended. Xdvi will show
65 all embedded PostScript too if you have Ghostscript
69 o GUILE 1.3 (no, GUILE 1.2 won't work), check out
70 http://www.gnu.org/programs/guile.html
72 For running LilyPond successfully you have to help TeX and
73 MetaFont find various files. The recommended way of doing
74 so is adjusting the environment variables in the start-up
75 scripts of your shell. An example is given here for the
78 export MFINPUTS="/usr/local/share/lilypond/mf:"
79 export TEXINPUTS="/usr/local/share/lilypond/tex:"
81 The empty path component represents and MetaFont's default
82 search paths. Scripts with the proper paths for the bourne
83 and C-shell respectively are generated in build-
84 scripts/out/lilypond-profile and buildscripts/out/lilypond-
85 login during compilation.
89 Although not strictly necessary, these are recommended to
92 o GNU make. Check out ftp://ftp.gnu.org or any mirror of
95 o Flex (version 2.5.4 or newer). Check out
96 ftp://ftp.gnu.org or any mirror of this site.
98 o Bison (version 1.25 or newer). Check out
99 ftp://ftp.gnu.org or any mirror of this site.
101 o GUILE 1.3 (no, GUILE 1.2 won't work), check out
102 http://www.gnu.org/programs/guile.html
104 o Python (version 1.5 or newer). Check out
105 ftp://ftp.python.org or ftp://ftp.cwi.nl/pub/python.
107 o Yodl. All documentation will be in Yodl. (1.30.17)
108 ftp://ftp.lilypond.org/pub/yodl
109 http://www.cs.uu.nl/~hanwen/yodl
111 o Texinfo. (version 3.12 or newer)
113 o GNU find Check out ftp://ftp.gnu.org or any mirror of
116 o The geometry package for LaTeX is needed to use ly2dvi.
117 Available at ftp://ftp.ctan.org/tex-
118 archive/macros/latex/contrib/supported/geometry or at
119 mirror site ftp://ftp.dante.de
121 o A fast computer: a full page of music typically takes 1
122 minute on my 486/133, using the --enable-checking com-
127 If you want to auto-generate Lily's website, you'll need
128 some additional conversion tools.
130 o xpmtoppm (from the Portable Bitmap Utilities) (For Red-
131 Hat Linux users: it is included within the package
134 o Bib2html http://pertsserver.cs.uiuc.edu/~hull/bib2html.
135 Which, in turn depends on man2html for proper installa-
136 tion. man2html can be had from http://askdon-
137 ald.ask.uni-karlsruhe.de/hppd/hpux/Network-
138 ing/WWW/Man2html-1.05.
140 TeTeX users should not forget to rerun texhash.
142 Building the website requires pnmtopng. The version of pnm-
143 topng that is distributed with RedHat 5.1 contains a bug
144 (pnmtopng is dynamically linked to the wrong version of
145 libpng). Recompile it from source, and make sure that the
146 pnmtopng binary is linked statically to the libpng that is
149 tar xzf libgr-2.0.13.tar.gz
155 You can then install the new pnmtopng into /usr/local/bin/
157 6: CONFIGURING and COMPILING
159 to install GNU LilyPond, simply type:
161 gunzip -c lilypond-x.y.z | tar xf -
163 configure # fill in your standard prefix with --prefix
167 This will install a number of files, something close to:
169 /usr/local/man/man1/mi2mu.1
170 /usr/local/man/man1/convert-mudela.1
171 /usr/local/man/man1/mudela-book.1
172 /usr/local/man/man1/lilypond.1
173 /usr/local/bin/lilypond
175 /usr/local/share/lilypond/*
176 /usr/local/share/locale/{it,nl}/LC_MESSAGES/lilypond.mo
178 The above assumes that you are root and have the GNU devel-
179 opment tools, and your make is GNU make. If this is not the
180 case, you can adjust your environment variables to your
184 export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR"
187 CPPFLAGS are the preprocessor flags.
189 The configure script is Cygnus configure, and it will accept
190 --help. If you are not root, you will probably have to make
191 it with a different --prefix option. Our favourite location
194 configure --prefix=$HOME/usr
196 In this case, you will have to set up MFINPUTS, and TEXIN-
199 Since GNU LilyPond currently is beta, you are advised to
205 Options to configure include:
208 Enable debugging print routines (lilypond -D option)
211 Set maximum optimisation: compile with -O2. This can
212 be unreliable on some compiler/platform combinations
213 (eg, DEC Alpha and PPC)
216 Compile with support for profiling.
219 Output to a different configuration file. Needed for
220 multi-platform builds
222 All options are documented in the configure help The option
223 --enable-optimise is recommended for Real Life usage.
229 everything will be compiled, but nothing will be installed.
230 The resulting binaries can be found in the subdirectories
231 out/ (which contain all files generated during compilation).
233 7: CONFIGURING FOR MULTIPLE PLATFORMS
235 If you want to compile LilyPond with different configuration
236 settings, then, you can use the --enable-config option.
237 Example: suppose I want to build with and without profil-
238 ing. Then I'd use the following for the normal build,
240 configure --prefix=~ --disable-optimise --enable-checking
244 and for the profiling version, I specify a different config-
247 configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking
249 make config=optprof install
253 If you have done a successful make, then a simple
259 If you are doing an upgrade, please remember to remove obso-
260 lete .pk and .tfm files of the fonts. A script has been
261 provided to do the work for you, see bin/clean-fonts.sh.
265 o The -O2 option to gcc triggers a gcc bug on DEC Alpha
266 in dstream.cc. You should turn off this flag for this
271 This is what I type in my xterm:
273 lilypond someinput.ly
277 This is what the output looks like over here:
279 GNU LilyPond 0.0.78 #4/FlowerLib 1.1.24 #0
280 Parsing ... [/home/hw/share/lilypond/init//
282 init//performer.ly]]][input/kortjakje.ly]
283 Creating elements ...[8][16][24][25]
284 Preprocessing elements...
285 Calculating column positions ... [14][25]
286 Postprocessing elements...
287 TeX output to someinput.tex ...
288 Creating MIDI elements ...MIDI output to someinput.midi ...
290 hw:~/musix/spacer$ xdvi someinput&
293 Check out the input files, some of them have comments Please
294 refer to the man page for more information.
298 RedHat Linux users can compile an RPM. A spec file is in
299 make/out/lilypond.spec, it is distributed along with the
302 You can make the rpm by issuing
304 rpm -tb lilypond-x.y.z.tar.gz
305 rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
309 A Debian package is also available; contact Anthony Fok
310 foka@debian.org. The build scripts are in the subdirectory
315 Separate instructions on building for W32 are avaible in the
320 Han-Wen Nienhuys <hanwen@cs.uu.nl>
322 Jan Nieuwenhuizen <janneke@gnu.org>