]> git.donarmstrong.com Git - lilypond.git/blob - INSTALL.txt
1f1cd1afc0d87d68cd71d9bcfc3b1e468b229784
[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/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 Redhat 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
126 to 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 RedHat Linux       users: it is included within the package
133      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 RedHat). 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 RedHat 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''
226      Output to a different configuration file.  Needed for
227      multi-platform     builds
228
229    All options are documented in the `configure' help The option
230 `--enable-optimise' is recommended for Real Life usage.
231
232    If you do
233
234
235         make all
236
237    everything will be compiled, but nothing will be installed.  The
238 resulting binaries can be found in the subdirectories `out/' (which
239 contain all files generated during compilation).
240
241 Configuring for multiple platforms
242 ==================================
243
244    If you want to compile LilyPond with different configuration
245 settings, then, you can use the `--enable-config' option.  Example:
246 suppose I want to build with and   without profiling.  Then I'd use the
247 following for the normal build,
248
249
250            ./configure --prefix=~ --disable-optimise --enable-checking
251            make
252            make install
253
254    and for the profiling version, I specify a different configuration.
255
256
257            ./configure --prefix=~ --enable-profiling --enable-config=prof --enable-optimise --disable-checking
258            make config=prof
259            make config=prof install
260
261 Installing
262 ==========
263
264    if you have done a successful `make', then a simple
265
266
267         make install
268
269    should do the trick.
270
271    If you are doing an upgrade, please remember to remove obsolete
272 `.pk' and `.tfm' files of the fonts.  A script has been provided to do
273 the work for you, see `bin/clean-fonts.sh'.
274
275 Redhat linux
276 ============
277
278    RedHat Linux users can compile an RPM. A spec file is in
279 `make/out/lilypond.spec', it is distributed along with the sources.
280
281    You can make the rpm by issuing
282
283         rpm -tb lilypond-x.y.z.tar.gz
284         rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
285
286    Precompiled RedHat-7.0 i386 RPMS are available from
287 `ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/'.
288
289    For compilation on a RedHat system you need these packages, in
290 addition to the those needed for running:
291    * glibc-devel
292
293    * libstdc++-devel
294
295    * guile-devel
296
297    * flex
298
299    * bison
300
301    * texinfo
302
303    * tetex-devel
304
305 Debian GNU/linux
306 ================
307
308    A Debian package is also available; see
309 http://packages.debian.org/lilypond
310 (http://packages.debian.org/lilypond) or contact Anthony Fok
311 <foka@debian.org> for more information.
312
313    The build scripts are in the subdirectory `debian/'; you can make
314 the .deb by doing
315
316
317         tar xzf lilypond-x.y.z.tar.gz
318         cd lilypond-x.y.z
319         dpkg-buildpackage
320         dpkg -i ../lilypond_x.y.z*deb
321
322    For compilation on a Debian GNU/Linux system you need these packages,
323 in addition to the those needed for running:
324    * libc6-dev
325
326    * libstdc++<your-libstdc++-version-here>-dev
327
328    * libguile<your-libguile-version-here>-dev
329
330    * flex
331
332    * bison
333
334    * gettext
335
336    * texinfo
337
338    * tetex-dev
339
340    * debhelper
341
342 Windows NT/95
343 =============
344
345    Separate instructions on building for W32 are available; See the
346 files in `Documentation/ntweb/', included with the sources.
347
348 Problems
349 ========
350
351    For help and questions use <help-gnu-music@gnu.org> and
352 <gnu-music-discuss@gnu.org>.  Please consult the faq before mailing
353 your problems.
354
355    If you find bugs, please send bug reports to <bug-gnu-music@gnu.org>.
356
357    Bugs that are LilyPond's fault are listed in our TODO list on the
358 web, or demonstrated in `input/bugs/'.
359
360    Bugs that are not LilyPond's fault are documented here.
361
362 LinuxPPC Bugs:
363 **************
364
365    * egcs-1.1.2-12c (stock LinuxPPC R5) has a serious bug, upgrade to
366      fixed in egcs-1.1.2-12f or gcc-2.95-0a,
367      `ftp://dev.linuxppc.org/users/fsirl/R5/RPMS/ppc/'
368
369    * egcs-1.0.2 (LinuxPPC R4): all compiling with `-O2' is suspect, in
370      particular guile-1.3, and Lily herself will break.
371
372 Linux-i386
373 **********
374
375    * SuSE6.2 and similar platforms (glibc 2.1, libstdc++ 2.9.0)
376
377      Lily will crash during parsing (which suggests a C++ library
378      incompatibility).  Precise cause, precise platform description or
379      solution are not known.
380
381      Note that this only happens on some computers with the said
382      platform.
383
384    * libg++ 2.7
385
386      LilyPond occasionally crashes while parsing the initialisation
387      files.  This is a very obscure bug, and usually entering the
388      commandline differently "fixes" it.
389
390                 lilypond input.ly
391
392      and
393                 lilypond -I. ./input.ly
394      makes a difference
395
396      Typical stacktrace:
397                 SIGSEGV
398                 __libc_malloc (bytes=16384)
399                 ?? ()
400                 yyFlexLexer::yy_create_buffer ()
401                 Includable_lexer::new_input (this=0x8209a00, s={strh_ = {
402
403      This behaviour has been observed with machines that have old libg++
404      versions (LinuxPPC feb '98, RedHat 4.x).
405
406 Solaris:
407 ********
408
409    * Sparc64/Solaris 2.6, GNU make-3.77
410
411      GNU make-3.77 is buggy on this platform, upgrade to 3.78.1 or
412      newer.
413
414    * Sparc64/Solaris 2.6, ld
415
416      Not yet resolved.
417
418 AIX
419 ***
420
421    * AIX 4.3 ld
422
423      The following is from the gcc install/SPECIFIC file.
424              Some versions of the AIX binder (linker) can fail with a
425           relocation    overflow severe error when the -bbigtoc option
426           is used to link    GCC-produced object files into an
427           executable that overflows the TOC. A    fix for APAR IX75823
428           (OVERFLOW DURING LINK WHEN USING GCC AND    -BBIGTOC) is
429           available from IBM Customer Support and from its
430           27service.boulder.ibm.com website as PTF U455193.
431
432           Binutils does not support AIX 4.3 (at least through release
433           2.9). GNU    as and GNU ld will not work properly and one
434           should not configure GCC    to use those GNU utilities. Use
435           the native AIX tools which do    interoperate with GCC.
436
437      add -Wl,-bbigtoc to USER_LDFLAGS, ie:
438               LDFLAGS='-Wl,-bbigtoc' ./configure
439
440