]> git.donarmstrong.com Git - lilypond.git/blob - INSTALL.txt
release: 1.3.75
[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    * DOC++ (http://www.zib.de/Visual/software/doc++/index.html)     A
174      documentation system for C++ sources, which is used for the
175      LilyPond sources.
176
177 Configuring and compiling
178 =========================
179
180    to install GNU LilyPond, simply type:
181
182         gunzip -c lilypond-x.y.z | tar xf -
183         cd lilypond-x.y.z
184         ./configure             # fill in your standard prefix with --prefix
185         make
186         make install
187
188    This will install a number of files, something close to:
189
190         /usr/local/man/man1/mi2mu.1
191         /usr/local/man/man1/convert-mudela.1
192         /usr/local/man/man1/mudela-book.1
193         /usr/local/man/man1/lilypond.1
194         /usr/local/bin/lilypond
195         /usr/local/bin/mi2mu
196         /usr/local/bin/convert-mudela
197         /usr/local/bin/mudela-book
198         /usr/local/bin/abc2ly
199         /usr/local/share/lilypond/*
200         /usr/local/share/locale/{it,nl}/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://freshmeat.net/pub/rpms/lilypond/
304 (ftp://freshmeat.net/pub/rpms/lilypond/) and
305 http://linux.umbc.edu/software/lilypond/rpms/
306 (http://linux.umbc.edu/software/lilypond/rpms/).
307
308    For compilation on a RedHat system you need these packages, in
309 addition to the those needed for running:
310    * glibc-devel
311
312    * libstdc++-devel
313
314    * guile-devel
315
316    * flex
317
318    * bison
319
320    * texinfo
321
322 Debian GNU/linux
323 ================
324
325    A Debian package is also available; see
326 http://packages.debian.org/lilypond
327 (http://packages.debian.org/lilypond) or contact Anthony Fok
328 <foka@debian.org> for more information.  The build scripts are in the
329 subdirectory `debian/'.
330
331 Windows NT/95
332 =============
333
334    Separate instructions on building for W32 are available; See the
335 files in `Documentation/ntweb/', included with the sources.
336
337 Problems
338 ========
339
340    For help and questions use <help-gnu-music@gnu.org> and
341 <gnu-music-discuss@gnu.org>.  Please consult the faq before mailing
342 your problems.
343
344    If you find bugs, please send bug reports to <bug-gnu-music@gnu.org>.
345
346    Known bugs that are LilyPond's fault are listed in `TODO', or
347 demonstrated in `input/bugs/'.
348
349    Known bugs that are not LilyPond's fault are documented here.
350
351 LinuxPPC Bugs:
352 **************
353
354    * egcs-1.1.2-12c (stock LinuxPPC R5) has a serious bug, upgrade to
355      fixed in egcs-1.1.2-12f or gcc-2.95-0a,
356      `ftp://dev.linuxppc.org/users/fsirl/R5/RPMS/ppc/'
357
358    * egcs-1.0.2 (LinuxPPC R4): all compiling with `-O2' is suspect, in
359      particular guile-1.3, and Lily herself will break.
360
361 Linux-i386
362 **********
363
364    * SuSE6.2 and similar platforms (glibc 2.1, libstdc++ 2.9.0)
365
366      Lily will crash during parsing (which suggests a C++ library
367      incompatibility).  Precise cause, precise platform description or
368      solution are not known.
369
370      Note that this only happens on some computers with the said
371      platform.
372
373    * libg++ 2.7
374
375      LilyPond occasionally crashes while parsing the initialisation
376      files.  This is a very obscure bug, and usually entering the
377      commandline differently "fixes" it.
378
379                 lilypond input.ly
380
381      and
382                 lilypond -I. ./input.ly
383      makes a difference
384
385      Typical stacktrace:
386                 SIGSEGV
387                 __libc_malloc (bytes=16384)
388                 ?? ()
389                 yyFlexLexer::yy_create_buffer ()
390                 Includable_lexer::new_input (this=0x8209a00, s={strh_ = {
391
392      This behaviour has been observed with machines that have old libg++
393      versions (LinuxPPC feb '98, RedHat 4.x).
394
395 Solaris:
396 ********
397
398    * Sparc64/Solaris 2.6, GNU make-3.77
399
400      GNU make-3.77 is buggy on this platform, upgrade to 3.78.1 or
401      newer.
402
403    * Sparc64/Solaris 2.6, ld
404
405      Not yet resolved.
406
407 AIX
408 ***
409
410    * AIX 4.3 ld
411
412      The following is from the gcc install/SPECIFIC file.
413              Some versions of the AIX binder (linker) can fail with a
414           relocation    overflow severe error when the -bbigtoc option
415           is used to link    GCC-produced object files into an
416           executable that overflows the TOC. A    fix for APAR IX75823
417           (OVERFLOW DURING LINK WHEN USING GCC AND    -BBIGTOC) is
418           available from IBM Customer Support and from its
419           27service.boulder.ibm.com website as PTF U455193.
420
421           Binutils does not support AIX 4.3 (at least through release
422           2.9). GNU    as and GNU ld will not work properly and one
423           should not configure GCC    to use those GNU utilities. Use
424           the native AIX tools which do    interoperate with GCC.
425
426      add -Wl,-bbigtoc to USER_LDFLAGS, ie:
427               LDFLAGS='-Wl,-bbigtoc' ./configure
428
429