]> git.donarmstrong.com Git - lilypond.git/blob - INSTALL.txt
release: 1.3.142
[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        make htmldoc
125    This does require a functioning LilyPond.  The binary doesn't have to
126 be installed.
127
128    If you want to auto-generate Lily's website, you'll need some
129 additional conversion tools.
130
131    * xpmtoppm (from the netpbm package: the Portable Bitmap Utilities)
132      (For Red Hat Linux              users: it is included within the
133      package libgr-progs).      The original is at
134      ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz
135      (ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz)
136
137    * pnmtopng (also in libgr-progs for Red Hat). The original is at
138      ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz
139      (ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz).i
140
141      The version of `pnmtopng' that is distributed with Red Hat 5.1 and
142      5.2 contains a bug: pnmtopng is dynamically linked to the wrong
143      version of libpng.
144
145    * Bibtex2html (http://www.lri.fr/~filliatr/ftp/bibtex2html/), or
146      Bib2html (http://www.uni-koblenz.de/ag-ki/ftp/bib2html/).
147      Bibtex2html is available in debian, while bib2html is in some rpm
148      based distributions.  Bib2html, in turn depends on man2html for
149      proper installation.  man2html can be had from
150      http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05
151      (http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05).
152
153      The website will build without bib converter utility, but you will
154      not see our hypertextified bibliography.
155
156
157 Configuring and compiling
158 =========================
159
160    to install GNU LilyPond, simply type:
161         gunzip -c lilypond-x.y.z | tar xf -
162         cd lilypond-x.y.z
163         ./configure             # fill in your standard prefix with --prefix
164         make
165         make install
166
167    This will install a number of files, something close to:
168
169         /usr/local/man/man1/midi2ly.1
170         /usr/local/man/man1/abc2ly.1
171         /usr/local/man/man1/etf2ly.1
172         /usr/local/man/man1/convert-ly.1
173         /usr/local/man/man1/lilypond-book.1
174         /usr/local/man/man1/lilypond.1
175         /usr/local/bin/lilypond
176         /usr/local/bin/midi2ly
177         /usr/local/bin/convert-ly
178         /usr/local/bin/lilypond-book
179         /usr/local/bin/abc2ly
180         /usr/local/bin/pmx2ly
181         /usr/local/bin/musedata2ly
182         /usr/local/bin/etf2ly
183         /usr/local/share/lilypond/*
184         /usr/local/share/locale/{....}/LC_MESSAGES/lilypond.mo
185
186    The above assumes that you are root and have the GNU development
187 tools, and your make is GNU make.  If this is not the case, you can
188 adjust your environment variables to your taste:
189
190
191         export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR"
192         ./configure
193
194    `CPPFLAGS' are the preprocessor flags.
195
196    The configure script is Cygnus configure, and it will accept
197 `--help'. If you are not root, you will probably have to make it with a
198 different `--prefix' option.  Our favourite location is
199
200
201         ./configure --prefix=$HOME/usr
202
203    In this case, you will have to set up MFINPUTS, and TEXINPUTS
204 accordingly.
205
206    Since GNU LilyPond currently is beta, you are advised to also use
207
208
209         --enable-debugging
210         --enable-checking
211
212    Options to configure include:
213
214 ``--enable-printing''
215      Enable debugging print routines (lilypond `-D' option)
216
217 ``--enable-optimise''
218      Set maximum optimisation: compile with `-O2'.  This can be
219      unreliable on some compiler/platform combinations (eg, DEC Alpha
220      and PPC)
221
222 ``--enable-profiling''
223      Compile with support for profiling.
224
225 ``--enable-config=CONF''
226      Output to different configuration files.  Enables different binary
227         builds alongside eachother, eg, multi-configuration (debugging,
228         profiling), or multi-platform builds.  Use `make conf=CONF' to
229         build for a specific configuration.
230
231    All options are documented in the `configure' help The option
232 `--enable-optimise' is recommended for Real Life usage.
233
234    If you do
235
236
237         make all
238
239    everything will be compiled, but nothing will be installed.  The
240 resulting binaries can be found in the subdirectories `out/' (which
241 contain all files generated during compilation).
242
243 Emacs mode
244 ==========
245
246    An emacs mode for LilyPond is included with the source archive as
247 `lilypond-mode.el' and `lilypond-font-lock.el'.  If you have an RPM, it
248 is in `/usr/share/doc/lilypond-X/'.  You have to install it yourself.
249
250    Add this to your ~/.emacs or ~/.emacs.el:
251          (load-library "lilypond-mode.el")
252          (setq auto-mode-alist
253            (cons '("\\.ly$" . LilyPond-mode) auto-mode-alist))
254          (add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock)))
255
256    If you have the latest LilyPond-1.3.x Debian package, LilyPond-mode
257 is automatically loaded, so you need not modify your ~/.emacs file.
258
259 Configuring for multiple platforms
260 ==================================
261
262    If you want to build multiple versions of LilyPond with different
263 configuration settings, you can use the `--enable-config=CONF' option.
264 You should use `make conf=CONF' to generate the output in `out-CONF'.
265 Example: suppose I want to build with and without profiling.  Then I'd
266 use the following for the normal build,
267
268
269            ./configure --prefix=~ --disable-optimise --enable-checking
270            make
271            make install
272
273    and for the profiling version, I specify a different configuration.
274
275
276            ./configure --prefix=~ --enable-profiling --enable-config=prof --enable-optimise --disable-checking
277            make conf=prof
278            make conf=prof install
279
280 Installing
281 ==========
282
283    if you have done a successful `make', then a simple
284
285
286         make install
287
288    should do the trick.
289
290    If you are doing an upgrade, please remember to remove obsolete
291 `.pk' and `.tfm' files of the fonts.  A script has been provided to do
292 the work for you, see `bin/clean-fonts.sh'.
293
294 Red Hat Linux
295 =============
296
297    Red Hat Linux users can compile an RPM.  A spec file is in
298 `make/out/lilypond.spec'; it is distributed along with the sources.
299
300    You can make the rpm by issuing
301
302         rpm -tb lilypond-x.y.z.tar.gz
303         rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
304
305    Precompiled Red Hat 7.0 i386 RPMS are available from
306 `ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/'.
307
308    For compilation on a Red Hat 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    * tetex-devel
323
324 SuSE
325 ====
326
327    [TODO: document this]
328
329    Install `tetex', `te_mpost', `te_kpath'.
330
331 Debian GNU/Linux
332 ================
333
334    A Debian package is also available.  You may install it easily by
335 using apt-get as root:
336
337         apt-get install lilypond1.3
338
339    Alternatively, visit
340
341    * http://packages.debian.org/lilypond
342      (http://packages.debian.org/lilypond)
343
344    * http://ftp.debian.org/debian/pool/main/l/lilypond1.3/
345      (http://ftp.debian.org/debian/pool/main/l/lilypond1.3/) for latest
346      package uploaded to Debian unstable;
347
348    * http://people.debian.org/~foka/lilypond/
349      (http://people.debian.org/~foka/lilypond/) for latest
350      semi-unofficial build of LilyPond 1.3.121 for Debian 2.2r2
351      (potato) users.  The official stable Debian 2.2r2 is stuck with
352      the old LilyPond-1.3.24.
353
354    You may contact Anthony Fok <foka@debian.org> for more information.
355
356    The build scripts are in the subdirectory `debian/'; you can make
357 the .deb by doing, for example:
358
359         $ su - root
360         # dpkg --purge lilypond lilypond1.3
361         # exit
362         $ tar xzf lilypond-1.3.122.tar.gz
363         $ cd lilypond-1.3.122
364         $ dch -p -v 1.3.122-0.local.1 "Local build."
365         $ debuild
366         $ su - root
367         # dpkg -i ../lilypond1.3_1.3.122*.deb
368         # exit
369         $
370
371    For compilation on a Debian GNU/Linux system you need these packages,
372 in addition to the those needed for running:
373
374    * g++, cpp, libc6-dev, libstdc++<your-libstdc++-version-here>-dev
375
376    * libguile<your-libguile-version-here>-dev
377
378    * make, m4, flex, bison
379
380    * gettext
381
382    * groff, texinfo, bibtex2html (not in 2.2r2)
383
384    * tetex-base, tetex-bin, tetex-extra, libkpathsea-dev or tetex-dev
385
386    * dpkg-dev, debhelper, fakeroot
387
388    * gs, netpbm, pnmtopng
389
390    Most of these are listed on the Build-Depends line in the
391 debian/control file.  To ensure the creation of the lilypond deb is
392 trouble-free, we recommend that you first install the following packages
393 before starting dpkg-buildpackage by running apt-get as root.
394
395    For Debian 2.2 (or 2.2r2, 2.2r3):
396
397         apt-get install task-debian-devel task-c++-dev \
398                 python-base libguile6-dev tetex-bin tetex-dev \
399                 tetex-extra flex bison texinfo groff gs \
400                 netpbm pnmtopng m4 gettext
401
402    For Debian in development ("unstable", the future 2.3 or 3.0):
403
404         apt-get install task-debian-devel task-c++-dev \
405                 python-base libguile9-dev tetex-bin libkpathsea-dev \
406                 tetex-extra flex bison texinfo bibtex2html groff gs \
407                 netpbm pnmtopng m4 gettext
408
409    And, just so that old fonts from previous versions of LilyPond won't
410 interfere with your build, you may want to do this before the build too:
411
412         dpkg --purge lilypond lilypond1.3
413
414 Windows NT/95
415 =============
416
417    Separate instructions on building for W32 are available; See the
418 files in `Documentation/ntweb/', included with the sources.
419
420 Problems
421 ========
422
423    For help and questions use <help-gnu-music@gnu.org> and
424 <gnu-music-discuss@gnu.org>.  Please consult the faq before mailing
425 your problems.
426
427    If you find bugs, please send bug reports to <bug-gnu-music@gnu.org>.
428
429    Bugs that are LilyPond's fault are listed in our TODO list on the
430 web, or demonstrated in `input/bugs/'.
431
432    Bugs that are not LilyPond's fault are documented here.
433
434 LinuxPPC Bugs:
435 **************
436
437    * egcs-1.1.2-12c (stock LinuxPPC R5) has a serious bug, upgrade to
438      fixed in egcs-1.1.2-12f or gcc-2.95-0a,
439      `ftp://dev.linuxppc.org/users/fsirl/R5/RPMS/ppc/'
440
441    * egcs-1.0.2 (LinuxPPC R4): all compiling with `-O2' is suspect, in
442      particular guile-1.3, and Lily herself will break.
443
444 Linux-i386
445 **********
446
447    * SuSE6.2 and similar platforms (glibc 2.1, libstdc++ 2.9.0)
448
449      Lily will crash during parsing (which suggests a C++ library
450      incompatibility).  Precise cause, precise platform description or
451      solution are not known.
452
453      Note that this only happens on some computers with the said
454      platform.
455
456    * libg++ 2.7
457
458      LilyPond occasionally crashes while parsing the initialisation
459      files.  This is a very obscure bug, and usually entering the
460      commandline differently "fixes" it.
461
462                 lilypond input.ly
463
464      and
465                 lilypond -I. ./input.ly
466      makes a difference
467
468      Typical stacktrace:
469                 SIGSEGV
470                 __libc_malloc (bytes=16384)
471                 ?? ()
472                 yyFlexLexer::yy_create_buffer ()
473                 Includable_lexer::new_input (this=0x8209a00, s={strh_ = {
474
475      This behaviour has been observed with machines that have old libg++
476      versions (LinuxPPC feb '98, Red Hat 4.x).
477
478 Solaris:
479 ********
480
481    * Sparc64/Solaris 2.6, GNU make-3.77
482
483      GNU make-3.77 is buggy on this platform, upgrade to 3.78.1 or
484      newer.
485
486    * Sparc64/Solaris 2.6, ld
487
488      Not yet resolved.
489
490 AIX
491 ***
492
493    * AIX 4.3 ld
494
495      The following is from the gcc install/SPECIFIC file.
496              Some versions of the AIX binder (linker) can fail with a
497           relocation    overflow severe error when the -bbigtoc option
498           is used to link    GCC-produced object files into an
499           executable that overflows the TOC.     A fix for APAR IX75823
500           (OVERFLOW DURING LINK WHEN USING GCC AND    -BBIGTOC) is
501           available from IBM Customer Support and from its
502           27service.boulder.ibm.com website as PTF U455193.
503
504           Binutils does not support AIX 4.3 (at least through release
505           2.9). GNU    as and GNU ld will not work properly and one
506           should not configure GCC    to use those GNU utilities. Use
507           the native AIX tools which do    interoperate with GCC.
508
509      add -Wl,-bbigtoc to USER_LDFLAGS, ie:
510               LDFLAGS='-Wl,-bbigtoc' ./configure
511
512