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