-\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
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.
@item pktrace, [OPTIONAL], needed for generating PostScript Type1
-fonts. Get it from
- @uref{http://www.cs.uu.nl/~hanwen/public/software/pktrace-0.1.tar.gz}
-
-@item autotrace-0.27a, [OPTIONAL], needed for generating PostScript Type1
-fonts. You must apply the patch included pktrace-0.1 first.
-@uref{http://autotrace.sourceforge.net}.
-
-@item MetaPost [OPTIONAL] needed for generating PostScript Type3 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=}.
-
-
+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
@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
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 bibtex2html groff gs \
+ 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
LilyPond with gcc-3.0 you may do:
@example
- rm -f config.cache
CC=gcc-3.0 CXX=g++-3.0 ./configure --enable-config=gcc-3.0
make conf=gcc-3.0 -C lily out-gcc-3.0/lexer.cc
patch -p1 < lexer-gcc-3.0.patch
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 craches of LilyPond. Upgrade to a newer
+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
+@end example
+
@unnumberedsubsec NetBSD