]> git.donarmstrong.com Git - lilypond.git/blob - INSTALL.txt
release: 1.3.85
[lilypond.git] / INSTALL.txt
1
2
3 INSTALL - compiling and installing GNU LilyPond
4 ***********************************************
5
6 Abstract
7 ========
8
9    This document explains what you need to install LilyPond, and what
10 you should do.  If you are going to compile and install LilyPond often,
11 e.g. when doing development, you might want to check out the
12 `buildscripts/set-lily.sh' script.  It sets some environment variables
13 and symlinks, which comes in handy when you have to compile LilyPond
14 more often.
15
16 Obtaining
17 =========
18
19    You can get the latest version of LilyPond at
20 ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/
21 (ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/).
22
23    _If you upgrade by patching do remember to rerun autoconf after
24 applying the patch_.
25
26    If you do not want to download the entire archive for each version,
27 the safest method for upgrading is to use `xdelta', see
28 `ftp://ftp.xcf.berkeley.edu/pub/xdelta/'.
29
30    The following command produces `lilypond-1.1.55.tar.gz' from
31 `lilypond-1.1.54' identical (up to compression dates) to the .55 on the
32 FTP site.
33        xdelta patch lilypond-1.1.54-1.1.55.xd lilypond-1.1.54.tar.gz
34
35 Prerequisites
36 =============
37
38    For compilation you need:
39
40    * A GNU system: GNU LilyPond is known to run on these GNU systems:
41      Linux     (PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix
42      and Solaris.
43
44    * Lots of disk space: LilyPond takes between 30 and 100 mb to
45      compile if you use debugging information.  If you are short on
46      disk-space run configure with `--disable-debugging'.
47
48    * Although we recommend to use Unix, LilyPond is known to run on
49      Windows NT/95/98 as well.  See Section Windows NT/95,es.
50
51    * EGCS 1.1 or newer. Check out `ftp://ftp.gnu.org/gnu/gcc/'.
52
53    * Python 1.5, Check out `ftp://ftp.python.org' or
54      `ftp://ftp.cwi.nl/pub/python'.
55
56    * GUILE 1.3.4 or newer,  check out
57      http://www.gnu.org/software/guile/guile.html
58      (http://www.gnu.org/software/guile/guile.html).  Version 1.4 is
59      recommended for better performance.
60
61    * GNU Make.  Check out ftp://ftp.gnu.org/gnu/make/
62      (ftp://ftp.gnu.org/gnu/make/).
63
64    * Flex (version 2.5.4 or newer).  Check out
65      ftp://ftp.gnu.org/gnu/flex/ (ftp://ftp.gnu.org/gnu/flex/).
66
67    * Bison (version 1.25 or newer).  Check out
68      ftp://ftp.gnu.org/gnu/bison/ (ftp://ftp.gnu.org/gnu/bison/).
69
70    * TeX.  If you want LilyPond to use kpathsea support (recommended),
71      make sure you have tetex 1.0 or newer (1.0.6 is known to work).
72      You may need to install a tetex-devel or tetex-dev package too.
73
74    * Texinfo (version 4.0 or newer).  Check out
75      ftp://ftp.gnu.org/gnu/texinfo/ (ftp://ftp.gnu.org/gnu/texinfo/).
76      Most documentation is in texinfo.
77
78    * The geometry package for LaTeX is needed to use ly2dvi.  Available
79      at
80      ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry
81      (ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry)
82      or at mirror site ftp://ftp.dante.de (ftp://ftp.dante.de)
83
84    * MetaPost, needed for generating PostScript fonts. Please note that
85      tetex-0.4pl8 (included with Redhat 5.x) does not include
86      `mfplain.mp', which is needed for producing the scalable font
87      files.
88
89      If you do not want to use PostScript output, edit `mf/GNUmakefile'.
90
91    * kpathsea, a library for searching (TeX) files.  `kpathsea' is
92      usually included with your installation of TeX.
93
94
95 Running
96 =======
97
98    GNU LilyPond does use a lot of resources. For operation you need the
99 following software
100
101    * TeX.
102
103    * A PostScript printer and/or viewer (such as Ghostscript) is
104      strongly     recommended.  Xdvi will show all embedded PostScript
105      too if you have     Ghostscript installed.
106
107    * GUILE 1.3.4, check out http://www.gnu.org/software/guile/
108      (http://www.gnu.org/programs/guile.html)
109
110    For running LilyPond successfully you have to help TeX and MetaFont
111 find various files.  The recommended way of doing so is adjusting the
112 environment variables in the start-up scripts of your shell.  An
113 example is given here for the Bourne shell:
114      export MFINPUTS="/usr/local/share/lilypond/mf:"
115      export TEXINPUTS="/usr/local/share/lilypond/tex:/usr/local/share/lilypond/ps:"
116
117    The empty path component represents TeX and MetaFont's default
118 search paths.  Scripts with the proper paths for the bourne and C-shell
119 respectively are generated in `buildscripts/out/lilypond-profile' and
120 `buildscripts/out/lilypond-login' during compilation.
121
122    LilyPond is a hiddeously big, slow and bloated program.  A fast CPU
123 and plenty of RAM is recommended for comfortable use.
124
125 Website
126 =======
127
128    The website is the most convenient form to use for reading the
129 documentation on-line documentation. It is made by entering
130
131        make htmldoc
132    This does require a  functioning  LilyPond. The binary doesn't have
133 to be installed.
134
135    If you want to auto-generate Lily's website, you'll need some
136 additional conversion tools.
137
138    * xpmtoppm (from the Portable Bitmap Utilities) (For RedHat Linux
139       users: it is included within the package libgr-progs).
140      the original is at
141      ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz
142      (ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz)
143
144    * pnmtopng, which is also in libgr-progs for RedHat. The original is
145      at
146      ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz
147      (ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz).i
148
149      The version of `pnmtopng' that is distributed with RedHat 5.1 and
150      5.2 contains a bug: pnmtopng is dynamically linked to the wrong
151      version of libpng, which results in cropped images.  Recompile it
152      from source, and make sure that the pnmtopng binary is linked
153      statically to the libpng that is included in libgr.  RedHat 6.0
154      does not have this problem.
155
156            tar xzf libgr-2.0.13.tar.gz
157                 make
158                 cd png
159                 rm libpng.so*
160                 make pnmtopng
161
162      You can then install the new pnmtopng into `/usr/local/bin/'
163
164    * Bib2html (http://pertsserver.cs.uiuc.edu/~hull/bib2html).
165      Which, in turn depends on man2html for proper installation.
166      man2html can be had from
167      http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05
168      (http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05).
169
170      The website will build without this utility, but you will not see
171      our hypertextified bibliography.
172
173
174 Configuring and compiling
175 =========================
176
177    to install GNU LilyPond, simply type:
178
179         gunzip -c lilypond-x.y.z | tar xf -
180         cd lilypond-x.y.z
181         ./configure             # fill in your standard prefix with --prefix
182         make
183         make install
184
185    This will install a number of files, something close to:
186
187         /usr/local/man/man1/midi2ly.1
188         /usr/local/man/man1/abc2ly.1
189         /usr/local/man/man1/etf2ly.1
190         /usr/local/man/man1/convert-mudela.1
191         /usr/local/man/man1/mudela-book.1
192         /usr/local/man/man1/lilypond.1
193         /usr/local/bin/lilypond
194         /usr/local/bin/midi2ly
195         /usr/local/bin/convert-mudela
196         /usr/local/bin/mudela-book
197         /usr/local/bin/abc2ly
198         /usr/local/bin/etf2ly
199         /usr/local/share/lilypond/*
200         /usr/local/share/locale/{....}/LC_MESSAGES/lilypond.mo
201
202    The above assumes that you are root and have the GNU development
203 tools, and your make is GNU make.  If this is not the case, you can
204 adjust your environment variables to your taste:
205
206
207         export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR"
208         ./configure
209
210    `CPPFLAGS' are the preprocessor flags.
211
212    The configure script is Cygnus configure, and it will accept
213 `--help'. If you are not root, you will probably have to make it with a
214 different `--prefix' option.  Our favourite location is
215
216
217         ./configure --prefix=$HOME/usr
218
219    In this case, you will have to set up MFINPUTS, and TEXINPUTS
220 accordingly.
221
222    Since GNU LilyPond currently is beta, you are advised to also use
223
224
225         --enable-debugging
226         --enable-checking
227
228    Options to configure include:
229
230 ``--enable-printing''
231      Enable debugging print routines (lilypond `-D' option)
232
233 ``--enable-optimise''
234      Set maximum optimisation: compile with `-O2'.  This can be
235      unreliable on some compiler/platform combinations (eg, DEC Alpha
236      and PPC)
237
238 ``--enable-profiling''
239      Compile with support for profiling.
240
241 ``--enable-config''
242      Output to a different configuration file.  Needed for
243      multi-platform     builds
244
245    All options are documented in the `configure' help The option
246 `--enable-optimise' is recommended for Real Life usage.
247
248    If you do
249
250
251         make all
252
253    everything will be compiled, but nothing will be installed.  The
254 resulting binaries can be found in the subdirectories `out/' (which
255 contain all files generated during compilation).
256
257 Configuring for multiple platforms
258 ==================================
259
260    If you want to compile LilyPond with different configuration
261 settings, then, you can use the `--enable-config' option.  Example:
262 suppose I want to build with and   without profiling.  Then I'd use the
263 following for the normal build,
264
265
266            ./configure --prefix=~ --disable-optimise --enable-checking
267            make
268            make install
269
270    and for the profiling version, I specify a different configuration.
271
272
273            ./configure --prefix=~ --enable-profiling --enable-config=prof --enable-optimise --disable-checking
274            make config=prof
275            make config=prof install
276
277 Installing
278 ==========
279
280    if you have done a successful `make', then a simple
281
282
283         make install
284
285    should do the trick.
286
287    If you are doing an upgrade, please remember to remove obsolete
288 `.pk' and `.tfm' files of the fonts.  A script has been provided to do
289 the work for you, see `bin/clean-fonts.sh'.
290
291 Redhat linux
292 ============
293
294    RedHat Linux users can compile an RPM. A spec file is in
295 `make/out/lilypond.spec', it is distributed along with the sources.
296
297    You can make the rpm by issuing
298
299         rpm -tb lilypond-x.y.z.tar.gz
300         rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
301
302    Precompiled i386 RedHat RPMS are available from
303 `ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/'.
304
305    For compilation on a RedHat system you need these packages, in
306 addition to the those needed for running:
307    * glibc-devel
308
309    * libstdc++-devel
310
311    * guile-devel
312
313    * flex
314
315    * bison
316
317    * texinfo
318
319    * tetex-devel
320
321 Debian GNU/linux
322 ================
323
324    A Debian package is also available; see
325 http://packages.debian.org/lilypond
326 (http://packages.debian.org/lilypond) or contact Anthony Fok
327 <foka@debian.org> for more information.
328
329    The build scripts are in the subdirectory `debian/'; you can make
330 the .deb by doing
331
332
333         tar xzf lilypond-x.y.z.tar.gz
334         cd lilypond-x.y.z
335         dpkg-buildpackage
336         dpkg -i ../lilypond_x.y.z*deb
337
338    For compilation on a Debian GNU/Linux system you need these packages,
339 in addition to the those needed for running:
340    * libc6-dev
341
342    * libstdc++<your-libstdc++-version-here>-dev
343
344    * libguile<your-libguile-version-here>-dev
345
346    * flex
347
348    * bison
349
350    * gettext
351
352    * texinfo
353
354    * tetex-dev
355
356    * debhelper
357
358 Windows NT/95
359 =============
360
361    Separate instructions on building for W32 are available; See the
362 files in `Documentation/ntweb/', included with the sources.
363
364 Problems
365 ========
366
367    For help and questions use <help-gnu-music@gnu.org> and
368 <gnu-music-discuss@gnu.org>.  Please consult the faq before mailing
369 your problems.
370
371    If you find bugs, please send bug reports to <bug-gnu-music@gnu.org>.
372
373    Bugs that are LilyPond's fault are listed in our TODO list on the
374 web, or demonstrated in `input/bugs/'.
375
376    Bugs that are not LilyPond's fault are documented here.
377
378 LinuxPPC Bugs:
379 **************
380
381    * egcs-1.1.2-12c (stock LinuxPPC R5) has a serious bug, upgrade to
382      fixed in egcs-1.1.2-12f or gcc-2.95-0a,
383      `ftp://dev.linuxppc.org/users/fsirl/R5/RPMS/ppc/'
384
385    * egcs-1.0.2 (LinuxPPC R4): all compiling with `-O2' is suspect, in
386      particular guile-1.3, and Lily herself will break.
387
388 Linux-i386
389 **********
390
391    * SuSE6.2 and similar platforms (glibc 2.1, libstdc++ 2.9.0)
392
393      Lily will crash during parsing (which suggests a C++ library
394      incompatibility).  Precise cause, precise platform description or
395      solution are not known.
396
397      Note that this only happens on some computers with the said
398      platform.
399
400    * libg++ 2.7
401
402      LilyPond occasionally crashes while parsing the initialisation
403      files.  This is a very obscure bug, and usually entering the
404      commandline differently "fixes" it.
405
406                 lilypond input.ly
407
408      and
409                 lilypond -I. ./input.ly
410      makes a difference
411
412      Typical stacktrace:
413                 SIGSEGV
414                 __libc_malloc (bytes=16384)
415                 ?? ()
416                 yyFlexLexer::yy_create_buffer ()
417                 Includable_lexer::new_input (this=0x8209a00, s={strh_ = {
418
419      This behaviour has been observed with machines that have old libg++
420      versions (LinuxPPC feb '98, RedHat 4.x).
421
422 Solaris:
423 ********
424
425    * Sparc64/Solaris 2.6, GNU make-3.77
426
427      GNU make-3.77 is buggy on this platform, upgrade to 3.78.1 or
428      newer.
429
430    * Sparc64/Solaris 2.6, ld
431
432      Not yet resolved.
433
434 AIX
435 ***
436
437    * AIX 4.3 ld
438
439      The following is from the gcc install/SPECIFIC file.
440              Some versions of the AIX binder (linker) can fail with a
441           relocation    overflow severe error when the -bbigtoc option
442           is used to link    GCC-produced object files into an
443           executable that overflows the TOC. A    fix for APAR IX75823
444           (OVERFLOW DURING LINK WHEN USING GCC AND    -BBIGTOC) is
445           available from IBM Customer Support and from its
446           27service.boulder.ibm.com website as PTF U455193.
447
448           Binutils does not support AIX 4.3 (at least through release
449           2.9). GNU    as and GNU ld will not work properly and one
450           should not configure GCC    to use those GNU utilities. Use
451           the native AIX tools which do    interoperate with GCC.
452
453      add -Wl,-bbigtoc to USER_LDFLAGS, ie:
454               LDFLAGS='-Wl,-bbigtoc' ./configure
455
456