]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/topdocs/INSTALL.yo
release: 1.1.56
[lilypond.git] / Documentation / topdocs / INSTALL.yo
1 article(INSTALL - compiling and installing GNU LilyPond)(HWN & JCN)()
2
3 sect(ABSTRACT)
4
5 This document explains what you need to install LilyPond, and what you
6 should do.  If you are going to compile and install LilyPond often,
7 e.g. when doing development, you might want to check out the 
8 file(buildscripts/set-lily.sh) script.  It sets some environment 
9 variables and symlinks, which comes in handly when you have to compile 
10 LilyPond more often.  
11
12 sect(OBTAINING)
13
14 You can get the latest version of LilyPond at
15 lurl(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/).  Refer to the links
16 document for mirror sites.
17
18 em(If you upgrade by patching do remember to rerun autoconf after
19 applying the patch).
20
21 sect(PREREQUISITES)
22
23 For compilation you need:
24
25 itemize(
26 it()A GNU system: GNU LilyPond is known to run on these GNU systems: Linux
27     (PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix and
28 Solaris.
29
30 it()Lots of disk space: LilyPond takes between 30 and 100 mb to
31 compile if you use debugging information.  If you are short on
32 disk-space run configure with code(--disable-debugging).
33
34 Although we recommend to use Unix, LilyPond is known to run on Windows
35 NT/95/98 as well.  See Section ref(w32).
36
37 it() EGCS 1.1 or newer.
38
39 it() Python 1.5,
40 Check out
41 lurl(ftp://ftp.python.org) or lurl(ftp://ftp.cwi.nl/pub/python).
42
43 it() GUILE 1.3,  check out lurl(http://www.gnu.org/software/guile/guile.html).
44
45 it()GNU make. 
46 Check out lurl(ftp://ftp.gnu.org).
47
48 it()Flex (version 2.5.4 or newer). 
49 Check out lurl(ftp://ftp.gnu.org).
50
51 it()Bison (version 1.25 or newer).
52 Check out lurl(ftp://ftp.gnu.org).
53
54 it()Yodl.  All documentation will be in Yodl. (1.30.17)
55 lurl(ftp://ftp.lilypond.org/pub/yodl)
56
57 it()The geometry package for LaTeX is needed to use ly2dvi.  
58 Available at 
59 lurl(ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry)
60 or at mirror site lurl(ftp://ftp.dante.de)
61 )
62
63
64 sect(RUNNING)
65
66 GNU LilyPond does use a lot of resources. For operation you need the
67 following software
68
69 itemize(
70 it()TeX
71 it()A PostScript printer and/or viewer (such as Ghostscript) is strongly
72     recommended.  Xdvi will show all embedded PostScript too if you have
73     Ghostscript installed.
74 it() GUILE 1.3, check out lurl(http://www.gnu.org/programs/guile.html)
75 )
76
77
78 For running LilyPond successfully you have to help TeX and MetaFont
79 find various files.  The recommended way of doing so is adjusting the
80 environment variables in the start-up scripts of your shell.  An
81 example is given here for the Bourne shell:
82 verb(export MFINPUTS="/usr/local/share/lilypond/mf:"
83 export TEXINPUTS="/usr/local/share/lilypond/tex:/usr/local/share/lilypond/ps:"
84 )
85 The empty path component
86 represents TeX() and MetaFont's default search paths.  Scripts with
87 the proper paths for the bourne and C-shell respectively are generated in
88 file(buildscripts/out/lilypond-profile) and
89 file(buildscripts/out/lilypond-login) during compilation. 
90
91 LilyPond is a hideously slow program.  A fast CPU and plenty of RAM is
92 recommended for comfortable use.
93
94
95 sect(WEBSITE)
96
97 If you want to auto-generate Lily's website, you'll need some additional
98 conversion tools.
99
100 itemize(
101 it()xpmtoppm (from the Portable Bitmap Utilities) (For RedHat Linux
102              users: it is included within the package libgr-progs).
103         the original is at
104 lurl(ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz)
105
106 it()pnmtopng, which is also in libgr-progs for RedHat. The original is
107 at
108 lurl(ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz).i
109
110 The version of file(pnmtopng) that is distributed with RedHat 5.1 and
111 5.2 contains a bug: pnmtopng is dynamically linked to the wrong
112 version of libpng.  Recompile it from source, and make sure that the
113 pnmtopng binary is linked statically to the libpng that is included in
114 libgr.  RedHat 6.0 does not have this problem.
115
116 verb( tar xzf libgr-2.0.13.tar.gz
117       make
118       cd png
119       rm libpng.so*
120       make pnmtopng
121 )
122
123 You can then install the new pnmtopng into file(/usr/local/bin/)
124
125 it()Bib2html lurl(http://pertsserver.cs.uiuc.edu/~hull/bib2html.)
126     Which, in turn depends on man2html for proper installation.
127 man2html can be had from lurl(http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05).
128
129 The website will build without this utility, but you will not see our
130 hypertextified bibliography.
131
132     TeTeX users should not forget to rerun texhash.
133 )
134
135 You also have to install file(buildscripts/out/ps-to-gifs) in a
136 directory that is in the path.
137
138
139 sect(CONFIGURING and COMPILING)
140
141 to install GNU LilyPond, simply type:
142 verb(
143         gunzip -c lilypond-x.y.z | tar xf -
144         cd lilypond-x.y.z
145         ./configure             # fill in your standard prefix with --prefix
146         make
147         make install
148 )
149
150 This will install a number of files, something close to:
151 verb(
152         /usr/local/man/man1/mi2mu.1
153         /usr/local/man/man1/convert-mudela.1
154         /usr/local/man/man1/mudela-book.1
155         /usr/local/man/man1/lilypond.1
156         /usr/local/bin/lilypond
157         /usr/local/bin/mi2mu
158         /usr/local/share/lilypond/*
159         /usr/local/share/locale/{it,nl}/LC_MESSAGES/lilypond.mo
160 )
161
162
163 The above assumes that you are root and have the GNU development
164 tools, and your make is GNU make.  If this is not the case, you can
165 adjust your environment variables to your taste:
166
167 verb(
168         export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" 
169         ./configure
170 )
171
172 code(CPPFLAGS) are the preprocessor flags. 
173
174 The configure script is Cygnus configure, and it will accept
175 bf(--help). If you are not root, you will probably have to make it
176 with a different bf(--prefix) option.  Our favourite location is
177
178 verb(
179         ./configure --prefix=$HOME/usr
180 )
181
182 In this case, you will have to set up MFINPUTS, and TEXINPUTS accordingly.
183
184 Since GNU LilyPond currently is beta, you are advised to also use
185
186 verb(
187         --enable-debugging
188         --enable-checking
189 )
190
191 Options to configure include:
192
193 description(
194 dit(bf(--enable-printing))
195     Enable debugging print routines (lilypond bf(-D) option)
196 dit(bf(--enable-optimise))
197     Set maximum optimisation: compile with bf(-O2).  This can be
198 unreliable on some compiler/platform combinations (eg, DEC Alpha and PPC)
199 dit(bf(--enable-profiling))
200     Compile with support for profiling.
201 dit(bf(--enable-config))
202     Output to a different configuration file.  Needed for multi-platform
203     builds
204 )
205
206 All options are documented in the file(configure) help
207 The option bf(--enable-optimise) is recommended for Real Life usage.
208
209 If you do
210
211 verb(
212         make all
213 )
214
215 everything will be compiled, but nothing will be installed.  The
216 resulting binaries can be found in the subdirectories file(out/) (which
217 contain all files generated during compilation).
218
219 sect(CONFIGURING FOR MULTIPLE PLATFORMS)
220
221 If you want to compile LilyPond with different configuration settings,
222 then, you can use the bf(--enable-config) option.  Example: suppose I
223 want to build with and   without profiling.  Then I'd use the
224 following for the normal build, 
225
226 verb(
227       ./configure --prefix=~ --disable-optimise --enable-checking
228       make
229       make install
230      )
231
232 and for the profiling version, I specify a different configuration.
233
234 verb(
235       ./configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking
236       make config=optprof
237       make config=optprof install
238 )
239
240
241 sect(INSTALLING)
242
243 If you have done a successful code(make), then a simple
244
245 verb(
246         make install
247 )
248
249 should do the trick.
250
251 If you are doing an upgrade, please remember to remove obsolete
252 file(.pk) and file(.tfm) files of the fonts.  A script has been
253 provided to do the work for you, see file(bin/clean-fonts.sh).
254
255 nsect(CAVEATS)
256
257 itemize(
258 it()The -O2 option  triggers  bugs on various platforms (PowerPC, Alpha).
259     If you experience problems, you  should first try  turning off
260     this.
261 it() On PPC you need at least EGCS-1.1.2f.
262 )
263
264 nsect(EXAMPLE)
265
266 This is what I type in my xterm:
267
268 verb(
269         lilypond someinput.ly
270         tex someinput.tex
271         xdvi someinput&
272 )
273
274 This is what the output looks like over here:
275
276 verb(
277         GNU LilyPond 0.0.78 #4/FlowerLib 1.1.24 #0
278         Parsing ... [/home/hw/share/lilypond/init//
279                 <..etc..>
280                 init//performer.ly]]][input/kortjakje.ly]
281         Creating elements ...[8][16][24][25]
282         Preprocessing elements... 
283         Calculating column positions ... [14][25]
284         Postprocessing elements...
285         TeX output to someinput.tex ...
286         Creating MIDI elements ...MIDI output to someinput.midi ...
287
288
289         hw:~/musix/spacer$ xdvi someinput&
290         [1] 855
291 )
292
293 Check out the input files, some of them have comments
294 Please refer to the man page for more information.
295
296 sect(REDHAT LINUX)
297
298 RedHat Linux users can compile an RPM. A spec file is in
299 file(make/out/lilypond.spec), it is distributed along with the
300 sources.
301
302 You can make the rpm by issuing
303 verb(
304         rpm -tb lilypond-x.y.z.tar.gz
305         rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
306 )
307
308 Precompiled i386 RedHat RPMS are available from
309 lurl(http://linux.umbc.edu/software/lilypond/rpms/).
310
311
312
313 sect(DEBIAN GNU/LINUX)
314
315 A Debian package is also available; contact Anthony Fok
316 email(foka@debian.org).  The build scripts are in the subdirectory
317 file(debian/).
318
319
320 sect(WINDOWS NT/95)
321 label(w32)
322
323
324 Separate instructions on building for W32 are avaible
325 url(in the file README-W32.yo)(../../DOEXPAND(outdir)/README-W32.html).
326
327 sect(AUTHORS)
328
329 nemail(Han-Wen Nienhuys)(hanwen@cs.uu.nl)
330
331 nemail(Jan Nieuwenhuizen)(janneke@gnu.org)
332
333
334 Have fun!