X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=INSTALL.txt;h=cf0e511331e8e1ce4525bea0c0ce2e0e41a7b681;hb=6ee4612fef17f4652c62a25d90a31efc208371bd;hp=bf28be6025c174eacd574acd1a411cc416321788;hpb=633bc1bf0b705e17df83311e3c90b289f087d726;p=lilypond.git diff --git a/INSTALL.txt b/INSTALL.txt index bf28be6025..cf0e511331 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -1,396 +1,434 @@ +INSTALL - compiling and installing GNU LilyPond +*********************************************** -INSTALL(1) LilyPond documentation INSTALL(1) +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/). -NAME - INSTALL - installing GNU LilyPond + _If you upgrade by patching do remember to rerun autoconf after +applying the patch_. -DESCRIPTION - This page documents installation and compilation of GNU - LilyPond + 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/'. -ABSTRACT - You do something which looks remotely like + The following command produces `lilypond-1.1.55.tar.gz' from +`lilypond-1.1.54' identical (up to compression dates) to the .55 on the +FTP site. + xdelta patch lilypond-1.1.54-1.1.55.xd lilypond-1.1.54.tar.gz - configure - make - make install +Prerequisites +============= - The detailed instructions follow here. + For compilation you need: -PREREQUISITES - For compilation you need. + * A GNU system: GNU LilyPond is known to run on these GNU systems: + Linux (PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix + and Solaris. - 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. + * 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'. - If you have the Cygnus WINDOWS32 port of the GNU - utils, it will even work in Windows NT/95, but we - don't promise to support it. + * Although we recommend to use Unix, LilyPond is known to run on + Windows NT/95/98 as well. See Section Windows NT/95,es. - o GNU C++ version 2.7 or newer (yes, 2.8 is fine). + * EGCS 1.1 or newer. Check out `ftp://ftp.gnu.org/gnu/gcc/'. - o Python + * Python 1.5, Check out `ftp://ftp.python.org' or + `ftp://ftp.cwi.nl/pub/python'. -RUNNING - GNU LilyPond does use a lot of resources. For operation - you need the following: + * 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. - o TeX + * GNU Make. Check out ftp://ftp.gnu.org/gnu/make/ + (ftp://ftp.gnu.org/gnu/make/). - 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. + * Flex (version 2.5.4a or newer). Check out + ftp://ftp.gnu.org/gnu/flex/ (ftp://ftp.gnu.org/gnu/flex/). -RECOMMENDED - Although not strictly necessary, these are recommended to - have. + * Bison (version 1.25 or newer). Check out + ftp://ftp.gnu.org/gnu/bison/ (ftp://ftp.gnu.org/gnu/bison/). - o GNU make. + * 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. - o Flex (version 2.5.4 or newer). + * 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. - o Bison (version 1.25 or newer). + * 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) - o Perl-5. Most documentation was created with the - perl's Plain Old Documentation. (I use 5.003) + * MetaPost, needed for generating PostScript fonts. Please note that + tetex-0.4pl8 (included with Redhat 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. -13/May/98 LilyPond 0.1.64 1 +Running +======= + GNU LilyPond does use a lot of resources. For operation you need the +following software + * TeX. + * A PostScript printer and/or viewer (such as Ghostscript) is + strongly recommended. Xdvi will show all embedded PostScript + too if you have Ghostscript installed. -INSTALL(1) LilyPond documentation INSTALL(1) + * GUILE 1.3.4, check out http://www.gnu.org/software/guile/ + (http://www.gnu.org/programs/guile.html) + 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. - o Python. Although perl is nice, python is better. We - will shift towards python for build scripts + 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 GNU find + LilyPond is a big and slow program. A fast CPU and plenty of RAM is +recommended for comfortable use. - o A fast computer (a full page of music typically takes - 1 minute on my 486/133, using the --enable-checking - compile. It's lot slower than most MusiXTeX - preprocessors) +Website +======= -WEBSITE - If you want to auto-generate Lily's website, you'll need - some additional conversion tools. + The website is the most convenient form to use for reading the +documentation on-line documentation. It is made by entering - o Xpmtoppm (from the libgr-progs package). + make htmldoc + This does require a functioning LilyPond. The binary doesn't have +to be installed. - o Bib2html - (http://pertsserver.cs.uiuc.edu/~hull/bib2html.) - Which, in turn depends on Man2htlm - (http://askdonald.ask.uni-karlsruhe.de/ - hppd/hpux/Networking/WWW/Man2html-1.05) for proper - installation (ugh). TeTeX users, don't forget to - rerun texhash. + If you want to auto-generate Lily's website, you'll need some +additional conversion tools. -CONFIGURING and COMPILING - to install GNU LilyPond, simply type: + * xpmtoppm (from the Portable Bitmap Utilities) (For RedHat 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) - configure - make - make install + * pnmtopng, which is also in libgr-progs for RedHat. 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 - This will install the following files: + The version of `pnmtopng' that is distributed with RedHat 5.1 and + 5.2 contains a bug: pnmtopng is dynamically linked to the wrong + version of libpng. - /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/lib/libflower.{so,a} - /usr/local/bin/lilypond - /usr/local/bin/mi2mu - /usr/local/share/lilypond/* - /usr/lib/texmf/texmf/tex/lilypond/* + * Bib2html (http://pertsserver.cs.uiuc.edu/~hull/bib2html). + Which, 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 TeX include directory is detected dynamically, but it - can be adjusted with --enable-tex-prefix and --enable-tex- - dir. 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: + The website will build without this utility, but you will not see + our hypertextified bibliography. - export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" - configure - CPPFLAGS are the preprocessor flags. +Configuring and compiling +========================= + 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 + This will install a number of files, something close to: -13/May/98 LilyPond 0.1.64 2 + /usr/local/man/man1/midi2ly.1 + /usr/local/man/man1/abc2ly.1 + /usr/local/man/man1/etf2ly.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/midi2ly + /usr/local/bin/convert-mudela + /usr/local/bin/mudela-book + /usr/local/bin/abc2ly + /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 + `CPPFLAGS' are the preprocessor flags. -INSTALL(1) LilyPond documentation INSTALL(1) + 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 - the configure script is Cygnus configure, and it will - accept --help. If you are not root, you will probably have - to make it with + ./configure --prefix=$HOME/usr - configure --prefix=/home/me_myself_and_I/ + In this case, you will have to set up MFINPUTS, and TEXINPUTS +accordingly. - In this case, you will have to set MFINPUTS, and TEXINPUTS - accordingly. + Since GNU LilyPond currently is beta, you are advised to also use - If you want to install GNU LilyPond in /usr/local, and - your TeX has no default hooks for local stuff (mine is - broken too), you can do: - configure --prefix=/usr/local --enable-tex-prefix=/usr/lib/texmf + --enable-debugging + --enable-checking - Since GNU LilyPond currently is beta, you are advised to - also use + Options to configure include: - --enable-debugging - --enable-checking +``--enable-printing'' + Enable debugging print routines (lilypond `-D' option) - other options include: +``--enable-optimise'' + Set maximum optimisation: compile with `-O2'. This can be + unreliable on some compiler/platform combinations (eg, DEC Alpha + and PPC) - --enable-shared - Make a shared library (gnu/linux, solaris (?) only ) +``--enable-profiling'' + Compile with support for profiling. - --enable-printing - Enable debugging print routines (lilypond -d option) +``--enable-config'' + Output to a different configuration file. Needed for + multi-platform builds - --enable-optimise - Set maximum optimisation: compile with -O2 + All options are documented in the `configure' help The option +`--enable-optimise' is recommended for Real Life usage. - --enable-profiling - Compile with support for profiling + If you do - --enable-tex-prefix - Set the directory where TeX and Metafont live - --enable-tex-dir - Set then directory TeX input is in (detected as a - subdir of tex-prefix). This should be a directory - that is reachable both for tex and latex. On my - system the best choice would be - /usr/lib/texmf/texmf/tex/generic//. + make all - --enable-mf-dir - Set the directory mf input is in (idem). On my - system the best choice would be - /usr/lib/texmf/texmf/fonts/source/public/. + 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). - --enable-config - Output to different configuration files. Needed for - multi-platform builds +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, + ./configure --prefix=~ --disable-optimise --enable-checking + make + make install -13/May/98 LilyPond 0.1.64 3 + 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 +========== + if you have done a successful `make', then a simple -INSTALL(1) LilyPond documentation INSTALL(1) + make install - All options are documented in the configure help The - option --enable-optimise is recommended for Real Life - usage. + should do the trick. - If you do + 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'. - make all +Redhat linux +============ - 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). + RedHat Linux users can compile an RPM. A spec file is in +`make/out/lilypond.spec', it is distributed along with the sources. -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, + You can make the rpm by issuing - configure --prefix=~ --disable-optimise --enable-checking - make - make install + rpm -tb lilypond-x.y.z.tar.gz + rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z - and for the profiling version, I specify a different - configuration. + Precompiled i386 RedHat RPMS are available from +`ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/'. - configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking - make configuration=optprof - make configuration=optprof install + For compilation on a RedHat system you need these packages, in +addition to the those needed for running: + * glibc-devel + * libstdc++-devel -INSTALLING - If you have done a successful make, then a simple + * guile-devel - make install + * flex - should do the trick. + * bison - 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, see bin/clean-fonts.sh. + * texinfo -CAVEATS - o The -O2 option to gcc triggers a gcc bug on DEC Alpha - in dstream.cc. You should turn off this flag for this - file. + * tetex-devel - o Perl5.003 and Perl5.004 use different syntax for - pod2html. +Debian GNU/linux +================ -EXAMPLE - This is what I type in my xterm: + A Debian package is also available; see +http://packages.debian.org/lilypond +(http://packages.debian.org/lilypond) or contact Anthony Fok + for more information. + The build scripts are in the subdirectory `debian/'; you can make +the .deb by doing + tar xzf lilypond-x.y.z.tar.gz + cd lilypond-x.y.z + dpkg-buildpackage + dpkg -i ../lilypond_x.y.z*deb -13/May/98 LilyPond 0.1.64 4 + For compilation on a Debian GNU/Linux system you need these packages, +in addition to the those needed for running: + * libc6-dev + * libstdc++-dev + * libguile-dev + * flex + * bison -INSTALL(1) LilyPond documentation INSTALL(1) + * gettext + * texinfo - lilypond someinput.ly - tex someinput.tex - xdvi someinput& + * tetex-dev - This is what the output looks like over here: + * debhelper - 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 ... +Windows NT/95 +============= - hw:~/musix/spacer$ xdvi someinput& - [1] 855 + Separate instructions on building for W32 are available; See the +files in `Documentation/ntweb/', included with the sources. - Check out the input files, some of them have comments - Please refer to the man page for more information. +Problems +======== -REDHAT LINUX - 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 - generate this gif file by typing + For help and questions use and +. Please consult the faq before mailing +your problems. - make gifs + If you find bugs, please send bug reports to . - in the directory Documentation. + Bugs that are LilyPond's fault are listed in our TODO list on the +web, or demonstrated in `input/bugs/'. -DEBIAN GNU/LINUX - A Debian package is also available; contact Anthony Fok - . The build scripts are in the - subdirectory debian/ + Bugs that are not LilyPond's fault are documented here. -WINDOWS NT/95 - So, you're stuck with Windows, eh? Well, don't worry, you - just need (to get) Cygnus' windows32 port of gnu - development stuff; have a look at - http://www.cygnus.com/gnu-win32. +LinuxPPC Bugs: +************** - To make GNU LilyPond under, brr, aargh, shudder... - windows32, well, simply type: + * 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/' - bash configure - make + * egcs-1.0.2 (LinuxPPC R4): all compiling with `-O2' is suspect, in + particular guile-1.3, and Lily herself will break. - Note If you rely on broken DOS/Windows tools such as - pkzip/WinZIP to unpack the distribution, make sure the - entire source tree is unpacked correctly, in particular - the empty out directories (flower/out, lib/out et. al.) +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. -13/May/98 LilyPond 0.1.64 5 + 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 -INSTALL(1) LilyPond documentation INSTALL(1) + Typical stacktrace: + SIGSEGV + __libc_malloc (bytes=16384) + ?? () + yyFlexLexer::yy_create_buffer () + Includable_lexer::new_input (this=0x8209a00, s={strh_ = { + This behaviour has been observed with machines that have old libg++ + versions (LinuxPPC feb '98, RedHat 4.x). -AUTHORS - Han-Wen Nienhuys +Solaris: +******** - Jan Nieuwenhuizen + * Sparc64/Solaris 2.6, GNU make-3.77 - Have fun! + GNU make-3.77 is buggy on this platform, upgrade to 3.78.1 or + newer. + * Sparc64/Solaris 2.6, ld + Not yet resolved. +AIX +*** + * AIX 4.3 ld + 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. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -13/May/98 LilyPond 0.1.64 6 + add -Wl,-bbigtoc to USER_LDFLAGS, ie: + LDFLAGS='-Wl,-bbigtoc' ./configure