]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/topdocs/INSTALL.texi
release commit
[lilypond.git] / Documentation / topdocs / INSTALL.texi
index 1130e259d38fb41bf5895dc1764a2c004b188d68..33117dd713605857447dcdc5fb5e22d77a649c7d 100644 (file)
 @chapter INSTALL - compiling and installing GNU LilyPond
 
 
-This document describes how to build LilyPond on Unix platforms.  It is
-also known to run and compile on Windows NT/95/98 as well.  More
-information on this topic can be found at the
-@uref{http://www.lilypond.org/gnu-windows/, LilyPond on Windows page}.
+This document describes how to build LilyPond on Unix platforms.  It
+is also known to run and compile on Windows NT/95/98/ME/XP as well.
+More information on this topic can be found at the
+@uref{http://www.lilypond.org/cygwin/, LilyPond on Windows page}.
 
 
 @html
@@ -28,9 +28,9 @@ information on this topic can be found at the
 @section Downloading
 
 Even numbered versions are `stable'. The webpages for the stable version
-(1.2) reside @uref{http://www.gnu.org/software/lilypond, on the GNU
+(1.4) reside @uref{http://www.gnu.org/software/lilypond, on the GNU
 servers}. Big enhancements go into the latest odd numbered version
-(1.3), whose webpages are on @uref{http://www.lilypond.org/,the lilypond
+(1.5), whose webpages are on @uref{http://www.lilypond.org/,the lilypond
 site}.
 
 @subsection Source code
@@ -48,12 +48,19 @@ If you want to compile LilyPond from source, download here:
 @uref{http://www.lilypond.org/ftp/} by HTTP.
 @end itemize
 
+
+For Red Hat Linux and SuSE Linux, @file{.spec} files are included in the
+tarball; see instructions below.
+
+
+
 Of course, if your platform supports LilyPond, such as Debian GNU/Linux,
 FreeBSD, OpenBSD or NetBSD, you're encouraged to use the native build
 from source drill.
 
-For Red Hat Linux and SuSE Linux, @file{.spec} files are included in the
-tarball; see instructions below.
+The latest development version is also available through anonymous
+CVS. See @uref{http://savannah.gnu.org/cvs/?group=lilypond}.
+
 
 @html
 <a name="download-binaries">
@@ -117,8 +124,14 @@ on the FTP site.
 You need the following packages to compile Lilypond.
 
 @itemize
-@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 The GNU c++ compiler (version 2.95.2 or newer).
+EGCS 1.1 may work, but is no longer supported.
+Check out @uref{ftp://ftp.gnu.org/gnu/gcc/, the gcc site}.
+
+WARNING: if you choose to upgrade to GCC 3.x, enquire if your
+distribution supports g++ 3.x and flex.  At the time of writing (Fri
+Jul 5 2002), @strong{no} distribution that we know of ships a flex
+that generates gcc-3.1.x compliant C++ code.
 
 @item Python (version 1.5 or newer).
 Check out @uref{http://www.python.org, the python website}.
@@ -135,6 +148,11 @@ make FTP directory}.
 @item Flex (version 2.5.4a or newer). 
 Check out @uref{http://www.gnu.org/software/flex/,the Flex webpage}.
 
+WARNING: plain Flex 2.5.4(a) generates invalid C++ code.  GCC 3.x
+chokes on this.  If you wish to use GCC 3.x, make sure that your
+distribution supports g++ 3.x and flex.  For workarounds, see
+lexer-gcc-3.0.patch and lexer-gcc-3.1.sh in the source directory.
+
 @item Bison (version 1.25 or newer).
 Check out @uref{http://www.gnu.org/software/bison/,the bison  webpage}
 
@@ -168,9 +186,11 @@ UNIX), you can compile LilyPond without kpathsea support.  In that case,
 you'll probably have to indicate where @TeX{}'s tfm files live.  Invoke
 configure something like:
 
+@quotation
 @example
 ./configure --without-kpathsea --enable-tfm-path=/usr/share/texmf/fonts/tfm/public/cm/:/usr/share/texmf/fonts/tfm/ams/symbols
 @end example
+@end quotation
 
 @end itemize
 
@@ -182,7 +202,8 @@ following software
 @itemize @bullet
 @item @TeX{}.
 @item Xdvi and Ghostscript
-@item GUILE 1.3.4, or newer.  Check out
+@item GUILE 1.4, or newer.
+Check out
 @uref{http://www.gnu.org/software/guile.html,the GUILE webpage}
 @end itemize
 
@@ -212,9 +233,9 @@ Building the website requires some additional tools:
 
 @itemize @bullet
 @item The netpbm utilities, see @uref{http://netpbm.sourceforge.net/}
-@item pktrace 1.0 or newer, 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.
+@item mftrace 1.0 or newer, needed for generating PostScript Type1
+fonts. Get it from @uref{http://www.cs.uu.nl/~hanwen/mftrace/}.  You
+will need to install some additional packages to get mftrace to work.
 @end itemize
 
 @section Building  LilyPond
@@ -255,7 +276,9 @@ If you want to build multiple versions of LilyPond with different
 configuration settings, you can use the @code{--enable-config=CONF}
 option of configure.  You should use @samp{make conf=CONF} to generate
 the output in @file{out-CONF}.  Example: suppose I want to build with
-and without profiling.  Then I'd use the following for the normal build,
+and without profiling.  Then I'd use the following for the normal
+build,
+@c prefix=~ ?
 @example 
 
       ./configure --prefix=~ --enable-checking
@@ -309,7 +332,9 @@ file.
 @subsection Red Hat Linux
 
 Red Hat 7.x i386 RPMS are available from
-@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/}.
+@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/}.  For running on
+a Red Hat system you need these packages: guile, tetex, tetex-latex,
+tetex-dvips, libstdc++, python, ghostscript.
 
 You can also compile them yourself.  A spec file is in
 @file{make/out/lilypond.redhat.spec}. This file is distributed along
@@ -322,12 +347,9 @@ with the sources.  You can make the rpm by issuing
 
 @end example 
 
-For running on a Red Hat system you need these packages: guile, tetex,
-tetex-latex, tetex-dvips, libstdc++, python, ghostscript.
-
 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, groff, pktrace,
+libstdc++-devel, guile-devel, flex, bison, texinfo, groff, mftrace,
 netpbm-progs, autotrace, t1utils.
 
 
@@ -593,7 +615,12 @@ send bug reports to @email{bug-lilypond@@gnu.org}.
 
 Bugs that are not fault of LilyPond are documented here.
 
-@unnumberedsubsec FLex-2.5.4a and gcc-3.0
+@unnumberedsubsec Gcc-3.0.4
+
+Gcc 3.0.4, is a bit flaky.  Try downgrading to 2.95.x, or if you're
+adventurous (see below), upgrading to 3.1.x.
+
+@unnumberedsubsec Flex-2.5.4a and gcc-3.x
 
 Flex 2.5.4a does not produce g++-3.0 compliant C++ code.  To compile
 LilyPond with gcc-3.0 you may do:
@@ -607,6 +634,22 @@ LilyPond with gcc-3.0 you may do:
 
 Note that this is fixed in Debian/unstable for flex >= 2.5.4a-13.
 
+@unnumberedsubsec Flex-2.5.4a and gcc-3.1.x
+
+Flex 2.5.4a does not produce g++-3.1.1 compliant C++ code.  To compile
+LilyPond with gcc-3.1.1 you may do:
+
+@example
+        CONF=gcc-3.1 ./lexer-gcc-3.1.sh
+        CPPFLAGS=$(pwd)/lily/out-gcc-3.1 CC=gcc-3.1 CXX=g++-3.1 \
+            ./configure --enable-config=gcc-3.1
+        CONF=gcc-3.1 ./lexer-gcc-3.1.sh
+        make conf=gcc-3.1
+@end example
+
+Note that this is @strong{not} fixed in Debian/unstable for flex <=
+2.5.4a-26.
+
 @unnumberedsubsec Linux-2.4.0, Guile-1.4 --with-threads
 
 There's a bug in certain kernels around version 2.4.0, that is