]> git.donarmstrong.com Git - lilypond.git/blob - INSTALL.txt
release: 1.3.83
[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=optprof --enable-optimise --disable-checking
274            make config=optprof
275            make config=optprof 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 Debian GNU/linux
320 ================
321
322    A Debian package is also available; see
323 http://packages.debian.org/lilypond
324 (http://packages.debian.org/lilypond) or contact Anthony Fok
325 <foka@debian.org> for more information.  The build scripts are in the
326 subdirectory `debian/'.
327
328 Windows NT/95
329 =============
330
331    Separate instructions on building for W32 are available; See the
332 files in `Documentation/ntweb/', included with the sources.
333
334 Problems
335 ========
336
337    For help and questions use <help-gnu-music@gnu.org> and
338 <gnu-music-discuss@gnu.org>.  Please consult the faq before mailing
339 your problems.
340
341    If you find bugs, please send bug reports to <bug-gnu-music@gnu.org>.
342
343    Bugs that are LilyPond's fault are listed in our TODO list on the
344 web, or demonstrated in `input/bugs/'.
345
346    Bugs that are not LilyPond's fault are documented here.
347
348 LinuxPPC Bugs:
349 **************
350
351    * egcs-1.1.2-12c (stock LinuxPPC R5) has a serious bug, upgrade to
352      fixed in egcs-1.1.2-12f or gcc-2.95-0a,
353      `ftp://dev.linuxppc.org/users/fsirl/R5/RPMS/ppc/'
354
355    * egcs-1.0.2 (LinuxPPC R4): all compiling with `-O2' is suspect, in
356      particular guile-1.3, and Lily herself will break.
357
358 Linux-i386
359 **********
360
361    * SuSE6.2 and similar platforms (glibc 2.1, libstdc++ 2.9.0)
362
363      Lily will crash during parsing (which suggests a C++ library
364      incompatibility).  Precise cause, precise platform description or
365      solution are not known.
366
367      Note that this only happens on some computers with the said
368      platform.
369
370    * libg++ 2.7
371
372      LilyPond occasionally crashes while parsing the initialisation
373      files.  This is a very obscure bug, and usually entering the
374      commandline differently "fixes" it.
375
376                 lilypond input.ly
377
378      and
379                 lilypond -I. ./input.ly
380      makes a difference
381
382      Typical stacktrace:
383                 SIGSEGV
384                 __libc_malloc (bytes=16384)
385                 ?? ()
386                 yyFlexLexer::yy_create_buffer ()
387                 Includable_lexer::new_input (this=0x8209a00, s={strh_ = {
388
389      This behaviour has been observed with machines that have old libg++
390      versions (LinuxPPC feb '98, RedHat 4.x).
391
392 Solaris:
393 ********
394
395    * Sparc64/Solaris 2.6, GNU make-3.77
396
397      GNU make-3.77 is buggy on this platform, upgrade to 3.78.1 or
398      newer.
399
400    * Sparc64/Solaris 2.6, ld
401
402      Not yet resolved.
403
404 AIX
405 ***
406
407    * AIX 4.3 ld
408
409      The following is from the gcc install/SPECIFIC file.
410              Some versions of the AIX binder (linker) can fail with a
411           relocation    overflow severe error when the -bbigtoc option
412           is used to link    GCC-produced object files into an
413           executable that overflows the TOC. A    fix for APAR IX75823
414           (OVERFLOW DURING LINK WHEN USING GCC AND    -BBIGTOC) is
415           available from IBM Customer Support and from its
416           27service.boulder.ibm.com website as PTF U455193.
417
418           Binutils does not support AIX 4.3 (at least through release
419           2.9). GNU    as and GNU ld will not work properly and one
420           should not configure GCC    to use those GNU utilities. Use
421           the native AIX tools which do    interoperate with GCC.
422
423      add -Wl,-bbigtoc to USER_LDFLAGS, ie:
424               LDFLAGS='-Wl,-bbigtoc' ./configure
425
426