]> git.donarmstrong.com Git - lilypond.git/blobdiff - INSTALL.txt
patch::: 1.5.23.jcn1
[lilypond.git] / INSTALL.txt
index 088db01f8dee85f5192233e98347ac948de2a088..972e0c14e503a87bd52cfb9e6aeecae45c7a7e3c 100644 (file)
@@ -8,8 +8,8 @@ Table of Contents
 
 INSTALL - compiling and installing GNU LilyPond
   Downloading
 
 INSTALL - compiling and installing GNU LilyPond
   Downloading
-    source code
-    Binaries
+    Source code
+    Precompiled binaries
     Upgrading
   Requirements
     Compilation
     Upgrading
   Requirements
     Compilation
@@ -20,10 +20,13 @@ INSTALL - compiling and installing GNU LilyPond
   Emacs mode
   Compiling for distributions
     Red Hat Linux
   Emacs mode
   Compiling for distributions
     Red Hat Linux
+    LinuxPPC
     SuSE
     SuSE
+    Slackware
     Mandrake
     Debian GNU/Linux
   Problems
     Mandrake
     Debian GNU/Linux
   Problems
+    FLex-2.5.4a and gcc-3.0
     NetBSD
     Solaris:
     AIX
     NetBSD
     Solaris:
     AIX
@@ -35,7 +38,7 @@ 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 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 as well.  More
 information on this topic can be found at the LilyPond on Windows page
-(ftp://ftp.lilypond.org/pub/LilyPond/gnu-windows/).
+(http://www.lilypond.org/gnu-windows/).
 
 Downloading
 ===========
 
 Downloading
 ===========
@@ -46,43 +49,57 @@ version (1.2) reside on the GNU servers
 latest odd numbered version (1.3), whose webpages are on the lilypond
 site (http://www.lilypond.org/).
 
 latest odd numbered version (1.3), whose webpages are on the lilypond
 site (http://www.lilypond.org/).
 
-source code
+Source code
 -----------
 
    If you want to compile LilyPond from source, download here:
    * Download development releases from
 -----------
 
    If you want to compile LilyPond from source, download here:
    * Download development releases from
-     `ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/' by FTP and
-     `http://ftp.cs.uu.nl/pub/GNU/LilyPond/development/', by HTTP.
+     `ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/' by FTP and
+     `http://ftp.cs.uu.nl/pub/GNU/LilyPond/', by HTTP.
 
    * `ftp://sca.uwaterloo.ca/pub/' by FTP (Canadian mirror)
 
    * at `lilypond.org' `ftp://ftp.lilypond.org/pub/LilyPond/' by FTP and
      `http://www.lilypond.org/ftp/' by HTTP.
 
 
    * `ftp://sca.uwaterloo.ca/pub/' by FTP (Canadian mirror)
 
    * at `lilypond.org' `ftp://ftp.lilypond.org/pub/LilyPond/' by FTP and
      `http://www.lilypond.org/ftp/' by HTTP.
 
-Binaries
---------
+   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.
 
 
-   Binaries are available, but are not updated for every version
-released.
-   * RedHat i386
-     (ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/RedHat/RPMS/)
+   For Red Hat Linux and SuSE Linux, `.spec' files are included in the
+tarball; see instructions below.
 
 
-   * LinuxPPC (ftp://ftp.lilypond.org/pub/LilyPond/binaries/linuxppc)
+Precompiled binaries
+--------------------
 
 
-   * Debian GNU/Linux Stable
-     (ftp://ftp.debian.org/debian/pool/main/l/lilypond)
+   If you want to track bleeding edge development, try:
 
 
-   * Debian GNU/Linux Unstable
-     (ftp://ftp.debian.org/debian/pool/main/l/lilypond1.3)
+   * Debian GNU/Linux
+     (ftp://ftp.debian.org/debian/pool/main/l/lilypond/) usually has
+     the latest binaries for the most useful stable and development
+     versions, while
 
 
-   * Windows Stable (http://home.austin.rr.com/jbr/jeff/lilypond/)
-     Windows Testing (http://www.lilypond.org/gnu-windows)
+   * Mandrake Cooker
+     (http://rpmfind.net/linux/mandrake/cooker/contrib/RPMS/) also
+     provides fairly recent versions.
 
 
+   Binaries are made available for other popular platforms, but as we
+need to compile them ourselves, they are not updated for every version
+released.
+
+   * Red Hat i386
+     (ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/RedHat/RPMS/)
+
+   * SuSE (ftp://ftp.lilypond.org/pub/LilyPond/binaries/SuSE)
+
+   * LinuxPPC (ftp://ftp.lilypond.org/pub/LilyPond/binaries/linuxppc/)
+
+   * Windows (http://www.lilypond.org/gnu-windows/)
 
 Upgrading
 ---------
 
 
 Upgrading
 ---------
 
-   There are two  options for upgrading sources.
+   There are two options for upgrading sources.
 
    * if you have an unpacked source tree of a previous version, you may
      the patches.
 
    * if you have an unpacked source tree of a previous version, you may
      the patches.
@@ -94,10 +111,10 @@ Upgrading
      xdelta (ftp://ftp.xcf.berkeley.edu/pub/xdelta/).   This is much
      safer than using patches, and is the recommended way.
 
      xdelta (ftp://ftp.xcf.berkeley.edu/pub/xdelta/).   This is much
      safer than using patches, and is the recommended way.
 
-     The following command produces `lilypond-1.3.122.tar.gz' from
-     `lilypond-1.3.121' identical (up to compression dates) to the .122
-     on the FTP site.
-            xdelta patch lilypond-1.3.121-1.3.122.xd lilypond-1.3.121.tar.gz
+     The following command produces `lilypond-1.4.3.tar.gz' from
+     `lilypond-1.4.2.tar.gz' identical (up to compression dates) to the
+     .3 on the FTP site.
+            xdelta patch lilypond-1.4.2-1.4.3.xd lilypond-1.4.2.tar.gz
 
 Requirements
 ============
 
 Requirements
 ============
@@ -129,8 +146,8 @@ Compilation
 
      TeX is used as an output backend.
 
 
      TeX is used as an output backend.
 
-     Also, TeX's libkpathsea is used to find the fonts (.mf, .afm,
-     .tfm).  Make sure you have tetex 1.0 or newer (1.0.6 is known to
+     Also, TeX's libkpathsea is used to find the fonts (`.mf', `.afm',
+     `.tfm').  Make sure you have tetex 1.0 or newer (1.0.6 is known to
      work).  You may need to install a tetex-devel or tetex-dev package
      too.
 
      work).  You may need to install a tetex-devel or tetex-dev package
      too.
 
@@ -143,15 +160,6 @@ Compilation
      (ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry).
      This package is normally included with the TeX distribution.
 
      (ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry).
      This package is normally included with the TeX distribution.
 
-   * MetaPost, needed for generating PostScript fonts. Please note that
-     tetex-0.4pl8 (included with Red Hat 5.x) does not include
-     `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 `mf/GNUmakefile', removing the line saying
-     `PFA_FILES='.
-
    * kpathsea, a library for searching (TeX) files.  `kpathsea' is
      usually included with your installation of TeX.  You may need to
      install a tetex-devel or tetex-dev package too.
    * kpathsea, a library for searching (TeX) files.  `kpathsea' is
      usually included with your installation of TeX.  You may need to
      install a tetex-devel or tetex-dev package too.
@@ -164,6 +172,21 @@ Compilation
 
           ./configure --without-kpathsea --enable-tfm-path=/usr/share/texmf/fonts/tfm/public/cm/:/usr/share/texmf/fonts/tfm/ams/symbols
 
 
           ./configure --without-kpathsea --enable-tfm-path=/usr/share/texmf/fonts/tfm/public/cm/:/usr/share/texmf/fonts/tfm/ams/symbols
 
+   * pktrace, [OPTIONAL], needed for generating PostScript Type1 fonts.
+     Get it from  `http://www.cs.uu.nl/~hanwen/pktrace/'
+
+   * autotrace-0.27a, [OPTIONAL], needed for generating PostScript Type1
+     fonts. `http://autotrace.sourceforge.net'.
+
+   * MetaPost [OPTIONAL] needed for generating PostScript Type3 fonts.
+     Please note that tetex-0.4pl8 (included with Red Hat 5.x) does not
+     include `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 `mf/GNUmakefile', removing the line saying
+     `PFA_FILES='.
+
 
 Running requirements
 --------------------
 
 Running requirements
 --------------------
@@ -173,7 +196,7 @@ following software
 
    * TeX.
 
 
    * TeX.
 
-   * Xdvi and ghostscript
+   * Xdvi and Ghostscript
 
    * GUILE 1.3.4, or newer.  Check out the GUILE webpage
      (http://www.gnu.org/software/guile.html)
 
    * GUILE 1.3.4, or newer.  Check out the GUILE webpage
      (http://www.gnu.org/software/guile.html)
@@ -198,7 +221,7 @@ issuing
 
        make web-doc
 
 
        make web-doc
 
-   Building the website requires  some additional tools:
+   Building the website requires some additional tools:
 
    * xpmtoppm (from the netpbm package: the Portable Bitmap Utilities).
      The original is at the netpbm FTP site
 
    * xpmtoppm (from the netpbm package: the Portable Bitmap Utilities).
      The original is at the netpbm FTP site
@@ -218,6 +241,11 @@ issuing
      The website will build without bib converter utility, but you will
      not see our hypertextified bibliography.
 
      The website will build without bib converter utility, but you will
      not see our hypertextified bibliography.
 
+   * 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 texinfo-4.0b
+     (ftp://texinfo.org/texinfo/pretests/texinfo-4.0b.tar.gz) or
+     texinfo-4.0b (ftp://alpha.gnu.org/gnu/texinfo-4.0b.tar.gz)
 
 Building  LilyPond
 ==================
 
 Building  LilyPond
 ==================
@@ -266,18 +294,24 @@ profiling.  Then I'd use the following for the normal build,
 Emacs mode
 ==========
 
 Emacs mode
 ==========
 
-   An emacs mode for LilyPond is included with the source archive as
-`lilypond-mode.el' and `lilypond-font-lock.el'.  If you have an RPM, it
-is in `/usr/share/doc/lilypond-X/'.  You have to install it yourself.
+   An Emacs mode for entering music and running LilyPond is included
+with the source archive as `lilypond-mode.el' and
+`lilypond-font-lock.el'.  You should install these files somewhere in
+your LOAD-PATH.  If you have installed a precompiled LilyPond package,
+these files can be found in `/usr/share/doc/lilypond-x.y.z/'.
 
 
-   Add this to your `~/.emacs' or `~/.emacs.el':
+   Add this to your `~/.emacs' or `~/.emacs.el', or install this file
+in Emacs' `site-start.d':
+         ;;; lilypond-init.el --- Startup code for LilyPond mode
+     
          (load-library "lilypond-mode.el")
          (setq auto-mode-alist
            (cons '("\\.ly$" . LilyPond-mode) auto-mode-alist))
          (add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock)))
 
          (load-library "lilypond-mode.el")
          (setq auto-mode-alist
            (cons '("\\.ly$" . LilyPond-mode) auto-mode-alist))
          (add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock)))
 
-   If you have the latest LilyPond-1.3.x Debian package, LilyPond-mode
-is automatically loaded, so you need not modify your `~/.emacs' file.
+   If you have the latest LilyPond-1.4.x Debian package, LilyPond-mode
+is automatically loaded, you not even need to modify your `~/.emacs'
+file.
 
 Compiling for distributions
 ===========================
 
 Compiling for distributions
 ===========================
@@ -286,13 +320,14 @@ Red Hat Linux
 -------------
 
    Red Hat 7.0 i386 RPMS are available from
 -------------
 
    Red Hat 7.0 i386 RPMS are available from
-`ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/'.
+`ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/'.
 
    You can also compile them yourself.  A spec file is in
 
    You can also compile them yourself.  A spec file is in
-`make/out/redhat.spec'. This file is distributed along with the
-sources.  You can make the rpm by issuing
+`make/out/lilypond.redhat.spec'. This file is distributed along with
+the sources.  You can make the rpm by issuing
 
 
-       rpm -tb lilypond-x.y.z.tar.gz
+             tar xfz lilypond-x.y.z.tar.gz
+       rpm -bb lilypond-x.y.z/make/out/lilypond.redhat.spec
        rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
 
    For running on a Red Hat system you need these packages: guile,
        rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
 
    For running on a Red Hat system you need these packages: guile,
@@ -303,45 +338,97 @@ addition to the those needed for running: glibc-devel, gcc-c++,
 libstdc++-devel, guile-devel, flex, bison, texinfo, tetex-devel, groff,
 libgr-progs.
 
 libstdc++-devel, guile-devel, flex, bison, texinfo, tetex-devel, groff,
 libgr-progs.
 
+LinuxPPC
+--------
+
+   Some LinuxPPC RPMS should available from
+`ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/'.
+
+   A LinuxPPC RPM can be made using the `lilypond.redhat.spec' file.
+
 SuSE
 ----
 
 SuSE
 ----
 
-   You can also compile them yourself.  A spec file is in
-`make/out/suse.spec'. This file is distributed along with the sources.
+   Some SUSE RPMS should available from
+`ftp://ftp.lilypond.org/pub/LilyPond/binaries/SuSE'.
+
+   You can also compile a RPM for SUSE yourself.  A spec file is in
+`make/out/lilypond.suse.spec', see the instructions for building the
+Red Hat RPM.
 
    You must have the following packages: guile tcsh tetex te_latex
 te_kpath te_mpost libpng python gpp libgpp gettext autoconf netpbm
 libnetpb gs_serv gs_lib gs_fonts guile
 
 
    You must have the following packages: guile tcsh tetex te_latex
 te_kpath te_mpost libpng python gpp libgpp gettext autoconf netpbm
 libnetpb gs_serv gs_lib gs_fonts guile
 
+Slackware
+---------
+
+   No precompiled packages for Slackware are available.
+
+   Problems have been reported with Slackware 7.0; apparently, it ships
+with a faulty compiler. Do not compile LilyPond with -O2 on this
+platform.
+
 Mandrake
 --------
 
 Mandrake
 --------
 
-   [TODO]
+   Some binaries are available at rpmfind.net. Refer to
+`http://rpmfind.net/linux/mandrake/cooker/contrib/RPMS/'.
+
+   You can also compile a RPM for Mandrake yourself.  A spec file is in
+`make/out/lilypond.mandrake.spec', see the instructions for building
+the Red Hat RPM.
 
 Debian GNU/Linux
 ----------------
 
    A Debian package is also available.  You may install it easily by
 
 Debian GNU/Linux
 ----------------
 
    A Debian package is also available.  You may install it easily by
-using apt-get as root:
+running `apt-get' as root:
+
+       apt-get install lilypond lilypond-doc
+
+   You can also compile the .deb for Debian yourself, do:
+
+       apt-get -b source lilypond
+
+   If you're real impatient, you may even do:
 
 
-       apt-get install lilypond1.3
+       cd lilypond-x.y.z   # a previous version
+             uscan               # download and build latest directly from upstream
+
+   Debian's TeX installation is a bit short on memory, you may want to
+increase it like this:
+     --- /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 @
+      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.
+     
+      obj_tab_size.context = 256000
+
+   You could also export `extra_mem_top' and `extra_mem_bot' as
+environment variables if you do not want to or cannot modify
+`/etc/texmf/texmf.cnf'.
 
    Alternatively, visit
 
    * http://packages.debian.org/lilypond
      (http://packages.debian.org/lilypond)
 
 
    Alternatively, visit
 
    * http://packages.debian.org/lilypond
      (http://packages.debian.org/lilypond)
 
-   * http://ftp.debian.org/debian/pool/main/l/lilypond1.3/
-     (http://ftp.debian.org/debian/pool/main/l/lilypond1.3/) for latest
-     package uploaded to Debian unstable;
-
    * http://people.debian.org/~foka/lilypond/
      (http://people.debian.org/~foka/lilypond/) for latest
    * http://people.debian.org/~foka/lilypond/
      (http://people.debian.org/~foka/lilypond/) for latest
-     semi-unofficial build of LilyPond 1.3.121 for Debian 2.2r2
-     (potato) users.  The official stable Debian 2.2r2 is stuck with
-     the old LilyPond-1.3.24.
+     semi-unofficial build of LilyPond 1.4.2 for Debian 2.2 (potato)
+     users.  The official stable Debian 2.2 is stuck with the old
+     LilyPond-1.3.24.  Since LilyPond-1.4 has been released, the older
+     lilypond1.3 Debian package is now obsolete.
 
 
-   You may contact Anthony Fok <foka@debian.org> for more information.
+   Please contact Anthony Fok <lilypond@packages.debian.org> for more
+information.
 
    The build scripts are in the subdirectory `debian/'; you can make
 the .deb by doing, for example:
 
    The build scripts are in the subdirectory `debian/'; you can make
 the .deb by doing, for example:
@@ -349,40 +436,48 @@ the .deb by doing, for example:
        $ su - root
        # dpkg --purge lilypond lilypond1.3
        # exit
        $ su - root
        # dpkg --purge lilypond lilypond1.3
        # exit
-       $ tar xzf lilypond-1.3.122.tar.gz
-       $ cd lilypond-1.3.122
-       $ dch -p -v 1.3.122-0.local.1 "Local build."
-       $ debuild
+       $ tar xzf lilypond-1.4.3.tar.gz
+       $ cd lilypond-1.4.3
+       $ dch -p -v 1.4.3-0.local.1 "Local build."
+       $ debuild -B
        $ su - root
        $ su - root
-       # dpkg -i ../lilypond1.3_1.3.122*.deb
+       # dpkg -i ../lilypond_1.4.3*.deb
        # exit
        $
 
        # exit
        $
 
+   Use command `debuild' instead of `debuild -B' if you have a very
+fast machine and want to build the HTML, PS and DVI documentation too.
+
    For compilation on a Debian GNU/Linux system you need these packages,
 in addition to the those needed for running:
 
    For compilation on a Debian GNU/Linux system you need these packages,
 in addition to the those needed for running:
 
-   * g++, cpp, libc6-dev, libstdc++<your-libstdc++-version-here>-dev
+   * g++, cpp, libc6-dev, libstdc++<YOUR-LIBSTDC++-VERSION-HERE>-dev
 
 
-   * libguile<your-libguile-version-here>-dev
+   * libguile<YOUR-LIBGUILE-VERSION-HERE>-dev
 
    * make, m4, flex, bison
 
    * gettext
 
 
    * make, m4, flex, bison
 
    * gettext
 
-   * groff, texinfo, bibtex2html (not in 2.2r2)
+   * groff, texinfo
+
+   * bibtex2html (not in Debian 2.2)
 
    * tetex-base, tetex-bin, tetex-extra, libkpathsea-dev or tetex-dev
 
    * dpkg-dev, debhelper, fakeroot
 
 
    * tetex-base, tetex-bin, tetex-extra, libkpathsea-dev or tetex-dev
 
    * dpkg-dev, debhelper, fakeroot
 
-   * gs, netpbm, pnmtopng
+   * gs, netpbm
+
+   * pnmtopng (only in Debian 2.2; pnmtopng has been merged with netpbm
+      in Debian testing/unstable.)
 
 
-   Most of these are listed on the Build-Depends line in the
-debian/control file.  To ensure the creation of the lilypond deb is
+   Most of these are listed on the `Build-Depends' line in the
+`debian/control' file.  To ensure the creation of the lilypond deb is
 trouble-free, we recommend that you first install the following packages
 trouble-free, we recommend that you first install the following packages
-before starting dpkg-buildpackage by running apt-get as root.
+by running \`apt-get' as root before building the package:
 
 
-   For Debian 2.2 (or 2.2r2, 2.2r3):
+   For Debian 2.2:
 
        apt-get install task-debian-devel task-c++-dev \
                python-base libguile6-dev tetex-bin tetex-dev \
 
        apt-get install task-debian-devel task-c++-dev \
                python-base libguile6-dev tetex-bin tetex-dev \
@@ -391,10 +486,11 @@ before starting dpkg-buildpackage by running apt-get as root.
 
    For Debian in development ("unstable", the future 2.3 or 3.0):
 
 
    For Debian in development ("unstable", the future 2.3 or 3.0):
 
-       apt-get install task-debian-devel task-c++-dev \
-               python-base libguile9-dev tetex-bin libkpathsea-dev \
+       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 bibtex2html groff gs \
-               netpbm pnmtopng m4 gettext
+               netpbm m4 gettext
 
    And, just so that old fonts from previous versions of LilyPond won't
 interfere with your build, you may want to do this before the build too:
 
    And, just so that old fonts from previous versions of LilyPond won't
 interfere with your build, you may want to do this before the build too:
@@ -404,13 +500,25 @@ interfere with your build, you may want to do this before the build too:
 Problems
 ========
 
 Problems
 ========
 
-   For help and questions use <help-gnu-music@gnu.org> and
-<gnu-music-discuss@gnu.org>.  Please consult the faq before mailing
-your problems.  If you find bugs, please send bug reports to
-<bug-gnu-music@gnu.org>.
+   For help and questions use <lilypond-user@gnu.org>.  Please consult
+the FAQ before mailing your problems.  If you find bugs, please send
+bug reports to <bug-lilypond@gnu.org>.
 
    Bugs that are not fault of LilyPond are documented here.
 
 
    Bugs that are not fault of LilyPond are documented here.
 
+FLex-2.5.4a and gcc-3.0
+-----------------------
+
+   Flex 2.5.4a does not produce g++-3.0 compliant C++ code.  To compile
+LilyPond with gcc-3.0 you may do:
+
+             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
+             make conf=gcc-3.0 -C lily
+
+   Note that this is fixed in Debian/unstable for flex >= 2.5.4a-13.
+
 NetBSD
 ------
 
 NetBSD
 ------