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