-\input texinfo @c -*-texinfo-*-
+@node
+@comment node-name, next, previous, up\input texinfo @c -*-texinfo-*-
@setfilename INSTALL.info
@settitle INSTALL - compiling and installing GNU LilyPond
+@html
+<!--- @@WEB-TITLE@@=Installation Instructions --->
+@end html
+
@node Top, , , (dir)
@top
You need the following packages to compile Lilypond.
@itemize
-@item A reasonably new C++ compiler: EGCS 1.1, GCC 2.95.2 or
+@item A reasonably new version of the GNU C++ compiler: EGCS 1.1, GCC 2.95.2 or
newer. Check out @uref{ftp://ftp.gnu.org/gnu/gcc/, the gcc site}.
-@item Python 1.5,
+@item Python (version 1.5 or newer).
Check out @uref{http://www.python.org, the python website}.
-@item GUILE 1.3.4 or newer, check out
+@item GUILE (version 1.4 or newer).
+Check out
@uref{http://www.gnu.org/software/guile/guile.html,the GUILE webpage}.
Version 1.4 is recommended for better performance.
FTP directory for @code{geometry}}. This package is normally included
with the @TeX{} distribution.
-@item MetaPost, needed for generating PostScript fonts. Please
-note that tetex-0.4pl8 (included with Red Hat 5.x) does not include
-@file{mfplain.mp}, which is needed for producing the scalable font
-files.
-
-If you don't have MetaPost and don't want to use PostScript output, then
-edit @file{mf/GNUmakefile}, removing the line saying @code{PFA_FILES=}.
-
@item kpathsea, a library for searching (@TeX{}) files. @code{kpathsea} is
usually included with your installation of @TeX{}. You may need to install
a tetex-devel or tetex-dev package too.
./configure --without-kpathsea --enable-tfm-path=/usr/share/texmf/fonts/tfm/public/cm/:/usr/share/texmf/fonts/tfm/ams/symbols
@end example
+
+@item pktrace, [OPTIONAL], needed for generating PostScript Type1
+fonts. Get it from @uref{http://www.cs.uu.nl/~hanwen/pktrace/}. You
+will need to install some additional packages to get pktrace to work.
+
@end itemize
@subsection Running requirements
@uref{ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz,in
the pnmtopng FTP site}.
-@item @uref{http://www.lri.fr/~filliatr/ftp/bibtex2html/, Bibtex2html}, or
-@uref{http://www.uni-koblenz.de/ag-ki/ftp/bib2html/, Bib2html}.
-Bibtex2html is available in debian, while bib2html is in some rpm based
-distributions.
-Bib2html, in turn depends on man2html for proper installation.
-man2html can be had from @uref{http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05,http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05}.
-
-The website will build without bib converter utility, but you will not
-see our hypertextified bibliography.
-
@item texinfo (a development release)
The documentation will build with texinfo-4.0, but if you want split
html pages, you're best off using the lates pretest version from
For compilation on a Red Hat system you need these packages, in addition
to the those needed for running: glibc-devel, gcc-c++, libstdc++-devel,
-guile-devel, flex, bison, texinfo, tetex-devel, groff,
-libgr-progs.
+guile-devel, flex, bison, texinfo, groff, pktrace.
+
@subsection LinuxPPC
Debian's @TeX{} installation is a bit short on memory, you may want to
increase it like this:
@example
---- /etc/texmf/texmf.cnf.dpkg Sun Jan 28 14:12:14 2001
-+++ /etc/texmf/texmf.cnf Fri Apr 27 11:09:35 2001
-@@ -384,8 +384,8 @@
+--- texmf.cnf.orig Sun Dec 16 23:47:07 2001
++++ texmf.cnf Sun Dec 16 23:46:34 2001
+@@ -411,8 +411,8 @@
main_memory.context = 1500000
main_memory.mpost = 1000000
main_memory = 263000 % words of inimemory available; also applies to inimf&mp
-extra_mem_top = 0 % extra high memory for chars, tokens, etc.
-extra_mem_bot = 0 % extra low memory for boxes, glue, breakpoints, etc.
-+extra_mem_top = 100000 % extra high memory for chars, tokens, etc.
-+extra_mem_bot = 100000 % extra low memory for boxes, glue, breakpoints, etc.
++extra_mem_top = 1000000 % extra high memory for chars, tokens, etc.
++extra_mem_bot = 1000000 % extra low memory for boxes, glue, breakpoints, etc.
- obj_tab_size.context = 256000
-
+ obj_tab_size.context = 300000
+
+@@ -430,7 +430,7 @@
+ % Max number of characters in all strings, including all error messages,
+ % help texts, font names, control sequences. These values apply to TeX and MP.
+ pool_size.context = 750000
+-pool_size = 125000
++pool_size = 250000
+ % Minimum pool space after TeX/MP's own strings; must be at least
+ % 25000 less than pool_size, but doesn't need to be nearly that large.
+ string_vacancies.context = 45000
@end example
You could also export @env{extra_mem_top} and @env{extra_mem_bot} as
@item make, m4, flex, bison
@item gettext
@item groff, texinfo
-@item bibtex2html (not in Debian 2.2)
@item tetex-base, tetex-bin, tetex-extra, libkpathsea-dev or tetex-dev
@item dpkg-dev, debhelper, fakeroot
@item gs, netpbm
For Debian in development ("unstable", the future 2.3 or 3.0):
@example
- apt-get install task-debian-devel task-c++-dev \
- python-base libguile9-dev tetex-bin libkpathsea-dev \
- tetex-extra flex bison texinfo bibtex2html groff gs \
+ apt-get install binutils cpp gcc libc6-dev \
+ g++ libstdc++2.10-dev \
+ python-base libguile-dev tetex-bin libkpathsea-dev \
+ tetex-extra flex bison texinfo groff gs \
netpbm m4 gettext
@end example
dpkg --purge lilypond lilypond1.3
@end example
+@subsection MacOS X
+LilyPond has been built on Darwin, to be precise, on:
+@example
+ Darwin buoux.aspiratie.nl 5.3 Darwin Kernel Version 5.3: Thu Jan 24
+ 22:06:02 PST 2002; root:xnu/xnu-201.19.obj~1/RELEASE_PPC Power Macintosh powerpc
+@end example
+
+using:
+@example
+ Apple Computer, Inc. version gcc-932.1, based on gcc version 2.95.2 19991024 (release)
+@end example
+
+To make sure you have all packages needed to build LilyPond installed,
+run as root:
+
+@example
+ apt-get install bash python guile debianutils flex bison texinfo \
+ ghostscript6 netpbm m4 gettext
+@end example
+
+and:
+
+@example
+ fink install tetex
+@end example
+
+For more information about @file{apt-get} and @file{fink}, see
+@uref{http://fink.sf.net,fink.sourceforge.net}.
+
+@c brokenness of autoconf; don't ask
+Then, configure, patch, make and install LilyPond using these commands:
+
+@example
+ CC="cc -I/sw/include" CXX="c++ -I/sw/include" LDFLAGS="-L/sw/lib" \
+ ./configure --prefix=/sw
+ make -C lily out/parser.hh out/parser.cc out/config.h
+ patch -p0 < darwin.patch
+ make -C lily out/parser.o
+ make DEPENDENCIES_OUTPUT=/dev/null all
+ make install
+@end example
+
+For installing, you must be root, of course.
+
+@c Why isn't this in BUGS (where it belongs?)
@section Problems
For help and questions use @email{lilypond-user@@gnu.org}. Please
Note that this is fixed in Debian/unstable for flex >= 2.5.4a-13.
+@unnumberedsubsec Linux-2.4.0, Guile-1.4 --with-threads
+
+There's a bug in certain kernels around version 2.4.0, that is
+triggered when using Guile 1.4 compiled with pthreads. You'll see
+random segmentation fault crashes of LilyPond. Upgrade to a newer
+version of Linux. If you can't do that, you may try to recompiling
+Guile without threads (YMMV):
+
+@example
+ guile-1.4$ ./configure --without-threads; make all install
+@end example
+
+
@unnumberedsubsec NetBSD
@itemize @bullet