X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=INSTALL.txt;h=971cd7d7aa7030c30725746d13b131a2b4637c6d;hb=af51453530b95aee167fe02ee3f4cb0c8dcd1fe2;hp=1b088819bc02ab044819aa0e1d7dc087d064d7e2;hpb=30270f615f32a6b93e7b09bf55d1b8a7d7aad7ca;p=lilypond.git diff --git a/INSTALL.txt b/INSTALL.txt index 1b088819bc..971cd7d7aa 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -1,510 +1,486 @@ +INSTALL - compiling and installing GNU LilyPond +*********************************************** +Obtaining +========= + You can get the latest version of LilyPond at +ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/ +(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/). + _If you upgrade by patching do remember to rerun autoconf after +applying the patch_. + If you do not want to download the entire archive for each version, +the safest method for upgrading is to use `xdelta', see +`ftp://ftp.xcf.berkeley.edu/pub/xdelta/'. + 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 +Prerequisites +============= - INSTALL - compiling and installing GNU LilyPond + For compilation you need: - HWN & JCN + * A GNU system: GNU LilyPond is known to run on these GNU systems: + Linux (PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix + and Solaris. + * Lots of disk space: LilyPond takes between 30 and 100 mb to + compile if you use debugging information. If you are short on + disk-space run configure with `--disable-debugging'. -Contents + * Although we recommend to use Unix, LilyPond is known to run on + Windows NT/95/98 as well. See Section Windows NT/95,es. - 1: ABSTRACT -2: PREREQUISITES -3: RUNNING -4: RECOMMENDED -5: WEBSITE -6: CONFIGURING and COMPILING -7: CONFIGURING FOR MULTIPLE PLATFORMS -8: INSTALLING -9: REDHAT LINUX -10: DEBIAN GNU/LINUX -11: WINDOWS NT/95 -12: AUTHORS + * A reasonable C++ compiler: EGCS 1.1, GCC 2.95.2 or newer. Check + out `ftp://ftp.gnu.org/gnu/gcc/'. + * Python 1.5, Check out `ftp://ftp.python.org' or + `ftp://ftp.cwi.nl/pub/python'. -1: ABSTRACT + * GUILE 1.3.4 or newer, check out + http://www.gnu.org/software/guile/guile.html + (http://www.gnu.org/software/guile/guile.html). Version 1.4 is + recommended for better performance. + * GNU Make. Check out ftp://ftp.gnu.org/gnu/make/ + (ftp://ftp.gnu.org/gnu/make/). -You do something which looks remotely like + * Flex (version 2.5.4a or newer). Check out + ftp://ftp.gnu.org/pub/gnu/non-gnu/flex/ + (ftp://ftp.gnu.org/pub/gnu/non-gnu/flex/). + * Bison (version 1.25 or newer). Check out + ftp://ftp.gnu.org/gnu/bison/ (ftp://ftp.gnu.org/gnu/bison/). + * TeX. If you want LilyPond to use kpathsea support (recommended), + 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. + * Texinfo (version 4.0 or newer). Check out + ftp://ftp.gnu.org/gnu/texinfo/ (ftp://ftp.gnu.org/gnu/texinfo/). + Most documentation is in texinfo. + * The geometry package for LaTeX is needed to use ly2dvi. Available + at + ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry + (ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry) + or at mirror site ftp://ftp.dante.de (ftp://ftp.dante.de) - configure # Check out the buildscripts/set-lily.sh script - make - make install + * 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 do not want to use PostScript output, 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. +Running +======= -The detailed instructions follow here. The build- -scripts/set-lily.sh script sets some environment variables -and symlinks, which comes in handly when you have to compile -LilyPond very often. It is aimed at people who run (or -debug) LilyPond without installing. + GNU LilyPond does use a lot of resources. For operation you need the +following software + * TeX. -2: PREREQUISITES + * A PostScript printer and/or viewer (such as Ghostscript) is + strongly recommended. Xdvi will show all embedded PostScript + too if you have Ghostscript installed. + * GUILE 1.3.4, or newer. Check out + http://www.gnu.org/software/guile/ + (http://www.gnu.org/programs/guile.html) -For compilation you need: + For running LilyPond successfully you have to help TeX and MetaFont +find various files. The recommended way of doing so is adjusting the +environment variables in the start-up scripts of your shell. Appropriate +Csh and sh scripts are left in `buildscripts/out/lilypond-profile' and +`buildscripts/out/lilypond-login' after compilation. + The empty path component represents TeX and MetaFont's default search +paths. Scripts with the proper paths for the bourne and C-shell +respectively are generated in `buildscripts/out/lilypond-profile' and +`buildscripts/out/lilypond-login' during compilation. -o A GNU system: GNU LilyPond is known to run on these GNU - systems: Linux (PPC, intel), FreeBSD, AIX, NeXTStep, - IRIX, Digital Unix and Solaris. + LilyPond is a big and slow program. A fast CPU and plenty of RAM is +recommended for comfortable use. +Website +======= -o Lots of disk space: LilyPond takes between 50 and 100 - mb to compile if you use debugging information. If you - are short on disk-space run configure with --disable- - debugging. + The website is the most convenient form to use for reading the +documentation on-line documentation. It is made by entering - Although we recommend to use Unix, LilyPond is known to - run on Windows NT/95/98 as well. See Section 11. + make htmldoc + This does require a functioning LilyPond. The binary doesn't have to +be installed. + If you want to auto-generate Lily's website, you'll need some +additional conversion tools. -o GNU C++ version 2.7 or newer (2.8 and egcs are also - fine). + * xpmtoppm (from the netpbm package: the Portable Bitmap Utilities) + (For Red Hat Linux users: it is included within the + package libgr-progs). The original is at + ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz + (ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz) -o Python 1.5 (Strictly speaking, you shouldn't need - Python for compiling and installing, but you'll need it - to regenerate the font tables, e.g.). + * pnmtopng (also in libgr-progs for Red Hat). The original is at + ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz + (ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz).i + The version of `pnmtopng' that is distributed with Red Hat 5.1 and + 5.2 contains a bug: pnmtopng is dynamically linked to the wrong + version of libpng. -3: RUNNING + * Bibtex2html (http://www.lri.fr/~filliatr/ftp/bibtex2html/), or + Bib2html (http://www.uni-koblenz.de/ag-ki/ftp/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 + 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. -GNU LilyPond does use a lot of resources. For operation you -need the following: +Configuring and compiling +========================= -o TeX + to install GNU LilyPond, simply type: + gunzip -c lilypond-x.y.z | tar xf - + cd lilypond-x.y.z + ./configure # fill in your standard prefix with --prefix + make + make install -o A PostScript printer and/or viewer (such as - Ghostscript) is strongly recommended. Xdvi will show - all embedded PostScript too if you have Ghostscript - installed. + This will install a number of files, something close to: -For running LilyPond successfully you have to help TeX and -MetaFont find various files. The recommended way of doing -so is adjusting the environment variables in the start-up -scripts of your shell. An example is given here for the -Bourne shell: + /usr/local/man/man1/midi2ly.1 + /usr/local/man/man1/abc2ly.1 + /usr/local/man/man1/etf2ly.1 + /usr/local/man/man1/convert-ly.1 + /usr/local/man/man1/lilypond-book.1 + /usr/local/man/man1/lilypond.1 + /usr/local/bin/lilypond + /usr/local/bin/midi2ly + /usr/local/bin/convert-ly + /usr/local/bin/lilypond-book + /usr/local/bin/abc2ly + /usr/local/bin/pmx2ly + /usr/local/bin/musedata2ly + /usr/local/bin/etf2ly + /usr/local/share/lilypond/* + /usr/local/share/locale/{....}/LC_MESSAGES/lilypond.mo + The above assumes that you are root and have the GNU development +tools, and your make is GNU make. If this is not the case, you can +adjust your environment variables to your taste: + export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" + ./configure - export MFINPUTS="/usr/local/share/lilypond/mf:" - export TEXINPUTS="/usr/local/share/lilypond/tex:" + `CPPFLAGS' are the preprocessor flags. + The configure script is Cygnus configure, and it will accept +`--help'. If you are not root, you will probably have to make it with a +different `--prefix' option. Our favourite location is + ./configure --prefix=$HOME/usr -The empty path component represents and MetaFont's default -search paths. Scripts with the proper paths for the bourne -and C-shell respectively are generated in build- -scripts/out/lilypond-profile and buildscripts/out/lilypond- -login during compilation. + In this case, you will have to set up MFINPUTS, and TEXINPUTS +accordingly. + Since GNU LilyPond currently is beta, you are advised to also use -4: RECOMMENDED + --enable-debugging + --enable-checking -Although not strictly necessary, these are recommended to -have. + Options to configure include: +``--enable-printing'' + Enable debugging print routines (lilypond `-D' option) -o GNU make. Check out ftp://ftp.gnu.org or any mirror of - this site. +``--enable-optimise'' + Set maximum optimisation: compile with `-O2'. This can be + unreliable on some compiler/platform combinations (eg, DEC Alpha + and PPC) - -o Flex (version 2.5.4 or newer). Check out - ftp://ftp.gnu.org or any mirror of this site. - -o Bison (version 1.25 or newer). Check out - ftp://ftp.gnu.org or any mirror of this site. - - -o GUILE (version 1.2) Check out http://www.gnu.org/pro- - grams/guile.html - - -o Python (version 1.5 or newer). Check out - ftp://ftp.python.org or ftp://ftp.cwi.nl/pub/python. - - -o Yodl. All documentation will be in Yodl. (1.30.17) - ftp://pcnov095.win.tue.nl/pub/yodl - http://www.cs.uu.nl/~hanwen/yodl - -o Texinfo. (version 3.12 or newer) - - -o GNU find Check out ftp://ftp.gnu.org or any mirror of - this site. - - -o The geometry package for LaTeX is needed to use ly2dvi. - Available at ftp://ftp.ctan.org/tex- - archive/macros/latex/contrib/supported/geometry or at - mirror site ftp://ftp.dante.de - - -o A fast computer (a full page of music typically takes 1 - minute on my 486/133, using the --enable-checking com- - pile. It's lot slower than most MusiXTeX preprocessors) - - -5: WEBSITE - - -If you want to auto-generate Lily's website, you'll need -some additional conversion tools. - - -o xpmtoppm (from the Portable Bitmap Utilities) (For Red- - Hat Linux users: it is included within the package - libgr-progs). - -o Bib2html http://pertsserver.cs.uiuc.edu/~hull/bib2html. - Which, in turn depends on man2html for proper installa- - tion. man2html can be had from http://askdon- - ald.ask.uni-karlsruhe.de/hppd/hpux/Network- - ing/WWW/Man2html-1.05. - - TeTeX users should not forget to rerun texhash. - -Building the website requires pnmtopng. The version of pnm- -topng that is distributed with RedHat 5.1 contains a bug -(pnmtopng is dynamically linked to the wrong version of -libpng). Recompile it from source, and make sure that the -pnmtopng binary is linked statically to the libpng that is - - -included in libgr. - - - - - - tar xzf libgr-2.0.13.tar.gz - make - cd png - rm libpng.so* - make pnmtopng - - - - - -You can then install the new pnmtopng into /usr/local/bin/ - - -6: CONFIGURING and COMPILING - - -to install GNU LilyPond, simply type: - - - - - - configure - make - make install - - - - - -This will install a number of files, something close to: - - - - - - /usr/local/man/man1/mi2mu.1 - /usr/local/man/man1/convert-mudela.1 - /usr/local/man/man1/mudela-book.1 - /usr/local/man/man1/lilypond.1 - /usr/local/bin/lilypond - /usr/local/bin/mi2mu - /usr/local/share/lilypond/* - /usr/local/share/locale/{it,nl}/LC_MESSAGES/lilypond.mo - - -The above assumes that you are root and have the GNU devel- -opment tools, and your make is GNU make. If this is not the -case, you can adjust your environment variables to your -taste: - - - - - - - export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" - configure - - - - - -CPPFLAGS are the preprocessor flags. - -The configure script is Cygnus configure, and it will accept ---help. If you are not root, you will probably have to make -it with a different --prefix option. Our favourite location -is - - - - - - - configure --prefix=$HOME/usr - - - - - -In this case, you will have to set up MFINPUTS, and TEXIN- -PUTS accordingly. - -Since GNU LilyPond currently is beta, you are advised to -also use - - - - - - - --enable-debugging - --enable-checking - - -Options to configure include: - - ---enable-guile - Link in GUILE (experimental) - ---enable-printing - Enable debugging print routines (lilypond -D option) - ---enable-optimise - Set maximum optimisation: compile with -O2. This can - be unreliable on some compiler/platform combinations - (eg, DEC Alpha and PPC) - ---enable-profiling +``--enable-profiling'' Compile with support for profiling. ---enable-config - Output to a different configuration file. Needed for - multi-platform builds - -All options are documented in the configure help The option ---enable-optimise is recommended for Real Life usage. - -If you do - - +``--enable-config'' + Output to a different configuration file. Needed for + multi-platform builds + All options are documented in the `configure' help The option +`--enable-optimise' is recommended for Real Life usage. + If you do - make all + make all + everything will be compiled, but nothing will be installed. The +resulting binaries can be found in the subdirectories `out/' (which +contain all files generated during compilation). +Configuring for multiple platforms +================================== + If you want to compile LilyPond with different configuration +settings, then, you can use the `--enable-config' option. Example: +suppose I want to build with and without profiling. Then I'd use the +following for the normal build, -everything will be compiled, but nothing will be installed. -The resulting binaries can be found in the subdirectories -out/ (which contain all files generated during compilation). - - -7: CONFIGURING FOR MULTIPLE PLATFORMS - - -If you want to compile LilyPond with different configuration -settings, then, you can use the --enable-config option. -Example: suppose I want to build with and without profil- -ing. Then I'd use the following for the normal build, - - - configure --prefix=~ --disable-optimise --enable-checking + ./configure --prefix=~ --disable-optimise --enable-checking make make install + and for the profiling version, I specify a different configuration. + ./configure --prefix=~ --enable-profiling --enable-config=prof --enable-optimise --disable-checking + make config=prof + make config=prof install +Installing +========== -and for the profiling version, I specify a different config- -uration. - - - - - - - configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking - make config=optprof - make config=optprof install - - - - - - -8: INSTALLING - - -If you have done a successful make, then a simple - - - - - - - make install - - - - - -should do the trick. - -If you are doing an upgrade, please remember to remove obso- -lete .pk and .tfm files of the fonts. A script has been -provided to do the work for you, see bin/clean-fonts.sh. - + if you have done a successful `make', then a simple -CAVEATS + make install + should do the trick. -o The -O2 option to gcc triggers a gcc bug on DEC Alpha - in dstream.cc. You should turn off this flag for this + If you are doing an upgrade, please remember to remove obsolete +`.pk' and `.tfm' files of the fonts. A script has been provided to do +the work for you, see `bin/clean-fonts.sh'. +Red Hat Linux +============= - file. + Red Hat Linux users can compile an RPM. A spec file is in +`make/out/lilypond.spec'; it is distributed along with the sources. + You can make the rpm by issuing -EXAMPLE + rpm -tb lilypond-x.y.z.tar.gz + rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z + Precompiled Red Hat 7.0 i386 RPMS are available from +`ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/'. -This is what I type in my xterm: + For compilation on a Red Hat system you need these packages, in +addition to the those needed for running: + * glibc-devel + * libstdc++-devel + * guile-devel + * flex + * bison + * texinfo - lilypond someinput.ly - tex someinput.tex - xdvi someinput& + * tetex-devel +Debian GNU/Linux +================ + A Debian package is also available. You may install it easily by +using apt-get as root: + apt-get install lilypond1.3 + Alternatively, visit -This is what the output looks like over here: + * 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 + 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. + You may contact Anthony Fok for more information. + The build scripts are in the subdirectory `debian/'; you can make +the .deb by doing, for example: + $ 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 + $ su - root + # dpkg -i ../lilypond1.3_1.3.122*.deb + # exit + $ - GNU LilyPond 0.0.78 #4/FlowerLib 1.1.24 #0 - Parsing ... [/home/hw/share/lilypond/init// - <..etc..> - init//performer.ly]]][input/kortjakje.ly] - Creating elements ...[8][16][24][25] - Preprocessing elements... - Calculating column positions ... [14][25] - Postprocessing elements... - TeX output to someinput.tex ... - Creating MIDI elements ...MIDI output to someinput.midi ... + 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++-dev - hw:~/musix/spacer$ xdvi someinput& - [1] 855 + * libguile-dev + * make, m4, flex, bison + * gettext + * groff, texinfo, bibtex2html (not in 2.2r2) + * tetex-base, tetex-bin, tetex-extra, libkpathsea-dev or tetex-dev -Check out the input files, some of them have comments Please -refer to the man page for more information. + * dpkg-dev, debhelper, fakeroot + * gs, netpbm, pnmtopng -9: REDHAT LINUX + 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 +before starting dpkg-buildpackage by running apt-get as root. + For Debian 2.2 (or 2.2r2, 2.2r3): -RedHat Linux users can compile an RPM. A spec file is in -make/out/lilypond.spec. You should install a gif file -called lelie_icon.gif along with the sources. You can gen- -erate this gif file by typing + apt-get install task-debian-devel task-c++-dev \ + python-base libguile6-dev tetex-bin tetex-dev \ + tetex-extra flex bison texinfo groff gs \ + netpbm pnmtopng m4 gettext + 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 \ + tetex-extra flex bison texinfo bibtex2html groff gs \ + netpbm pnmtopng 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: + dpkg --purge lilypond lilypond1.3 +Windows NT/95 +============= - make gifs + Separate instructions on building for W32 are available; See the +files in `Documentation/ntweb/', included with the sources. +Problems +======== + For help and questions use and +. Please consult the faq before mailing +your problems. + If you find bugs, please send bug reports to . + Bugs that are LilyPond's fault are listed in our TODO list on the +web, or demonstrated in `input/bugs/'. -in the directory Documentation. + Bugs that are not LilyPond's fault are documented here. -You can make the rpm by issuing +LinuxPPC Bugs: +************** + * egcs-1.1.2-12c (stock LinuxPPC R5) has a serious bug, upgrade to + fixed in egcs-1.1.2-12f or gcc-2.95-0a, + `ftp://dev.linuxppc.org/users/fsirl/R5/RPMS/ppc/' + * egcs-1.0.2 (LinuxPPC R4): all compiling with `-O2' is suspect, in + particular guile-1.3, and Lily herself will break. +Linux-i386 +********** + * SuSE6.2 and similar platforms (glibc 2.1, libstdc++ 2.9.0) + Lily will crash during parsing (which suggests a C++ library + incompatibility). Precise cause, precise platform description or + solution are not known. - make rpm + Note that this only happens on some computers with the said + platform. + * libg++ 2.7 + LilyPond occasionally crashes while parsing the initialisation + files. This is a very obscure bug, and usually entering the + commandline differently "fixes" it. + lilypond input.ly + and + lilypond -I. ./input.ly + makes a difference + Typical stacktrace: + SIGSEGV + __libc_malloc (bytes=16384) + ?? () + yyFlexLexer::yy_create_buffer () + Includable_lexer::new_input (this=0x8209a00, s={strh_ = { -10: DEBIAN GNU/LINUX + This behaviour has been observed with machines that have old libg++ + versions (LinuxPPC feb '98, Red Hat 4.x). +Solaris: +******** -A Debian package is also available; contact Anthony Fok -foka@debian.org . The build scripts are in -the subdirectory debian/ + * Sparc64/Solaris 2.6, GNU make-3.77 + GNU make-3.77 is buggy on this platform, upgrade to 3.78.1 or + newer. -11: WINDOWS NT/95 + * Sparc64/Solaris 2.6, ld + Not yet resolved. -Separate instructions on building for W32 are avaible in the -file README-W32.yo. +AIX +*** + * AIX 4.3 ld -12: AUTHORS + The following is from the gcc install/SPECIFIC file. + Some versions of the AIX binder (linker) can fail with a + relocation overflow severe error when the -bbigtoc option + is used to link GCC-produced object files into an + executable that overflows the TOC. A fix for APAR IX75823 + (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is + available from IBM Customer Support and from its + 27service.boulder.ibm.com website as PTF U455193. + Binutils does not support AIX 4.3 (at least through release + 2.9). GNU as and GNU ld will not work properly and one + should not configure GCC to use those GNU utilities. Use + the native AIX tools which do interoperate with GCC. -Han-Wen Nienhuys + add -Wl,-bbigtoc to USER_LDFLAGS, ie: + LDFLAGS='-Wl,-bbigtoc' ./configure -Jan Nieuwenhuizen -Have fun!