=head1 DESCRIPTION
-This page documents installation and compilation of GNU LilyPond
+This page documents installation and compilation of GNU LilyPond
-=head1 IMPORTANT
+=head1 ABSTRACT
-if you have downloaded a
+You do something which looks remotely like
- *.pre*
+ configure
+ make
+ make install
-version, then this is version is I<not> meant for producing nice
-output, but to keep your patchsets up to date. It might not even compile.
+The detailed instructions follow here.
=head1 PREREQUISITES
=item *
-A Unix system with GNU tools. GNU LilyPond is known to run on these
-unices: Linux, AIX, Digital Unix and Solaris.
+A GNU system: GNU LilyPond is known to run on these GNU systems:
+Linux, AIX, Digital Unix and Solaris.
If you have the Cygnus WINDOWS32 port of the GNU utils, it will even
-work in Windows NT/95, but don't promise to support it.
+work in Windows NT/95, but we don't promise to support it.
=item *
=back
+=head1 RUNNING
+
+GNU LilyPond does use a lot of resources. For operation you need the following:
+
+
+=over 5
+
+=item *
+
+TeX
+
+=item *
+
+A PostScript printer and/or viewer (such as Ghostscript).
+
+=back
+
+
=head1 RECOMMENDED
+Although not strictly necessary, these are recommended to have.
+
=over 5
=item *
-Perl. Most scripts are written in Perl. The documentation was created
-with the perl's Plain Old Documentation.
+Perl-5. Most documentation was created with the perl's Plain Old
+Documentation. (I use 5.003)
=item *
-(GNU) find
+Python. Although perl is nice, python is better. We will shift
+towards python for build scripts
+
+=item *
+
+GNU find
+
+=item *
+
+A fast computer (a full page of music typically takes 1 minute on my
+486/133, using the B<--enable-checking> compile. It's lot slower than
+most MusiXTeX preprocessors)
=back
+
=head1 CONFIGURING and COMPILING
to install GNU LilyPond, simply type:
This will install the following files:
/usr/local/man/man1/mi2mu.1
- /usr/local/man/man5/mudela.5
+ /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/*
- /usr/lib/texmf/texmf/fonts/source/lilypond/*
The TeX include directory is detected dynamically, but it can be
adjusted with B<--enable-tex-prefix> and B<--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
+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 --prefix=/home/me_myself_and_I/
-In this case, you will have to set MFINPUTS, and TEINPUTS accordingly.
+In this case, you will have to set MFINPUTS, and TEXINPUTS accordingly.
If you want to install GNU LilyPond in F</usr/local>, and your TeX has
no default hooks for local stuff (mine is broken too), you can do:
=over 4
-=item --enable-shared
+=item B<--enable-shared>
Make a shared library (gnu/linux, solaris (?) only )
-=item --enable-printing
+=item B<--enable-printing>
Enable debugging print routines (lilypond B<-d> option)
-=item --enable-optimise
+=item B<--enable-optimise>
-Set maximum optimisation
+Set maximum optimisation: compile with B<-O2>
-=item --enable-profiling
+=item B<--enable-profiling>
Compile with support for profiling
-=item --enable-tex-prefix
+=item B<--enable-tex-prefix>
+
+Set the directory where TeX and Metafont live
-Set the directory where texmf lives
+=item B<--enable-tex-dir>
-=item --enable-tex-dir
+Set then directory TeX input is in (detected as a subdir of tex-prefix)
-Set then directory tex input is in (detected as a subdir of tex-prefix)
+=item B<--enable-mf-dir>
-=item --enable-mf-dir
+Set the directory mf input is in (idem)
-Set then directory tex input is in (idem)
+=item B<--enable-out-dir>
+
+Set the directory for machine generated output.
=back
resulting binaries can be found in the subdirectories F<out/> (which
contain all files generated during compilation).
+=head2 Building for multiple hosts
-=head1 INSTALLING
+LilyPond does not follow the GNU standards when it comes to
+configuring and making Makefiles. In LilyPond, F<make> generates I<all>
+output in output directories (called F<out/>, by default).
+You can have multiple compiles from the same source-tree, by
+overriding the setting for the output directory.
-If you have done a successful C<make>, then a simple
-
- make install
+Example: on my system, I do debugging and lots compiling. For this I
+use the configuration as follows:
-should do the trick.
-
-[todo. Obsolete; fonts are in distribution now.]
-
-Install the musixtex fonts in a directory which TeX and MF knows (if
-you are root, look for a directory which contains the directories with
-AMS and CM source (*.mf) files. Create a subdir lilypond or musixtex
-and copy the fonts into that). Do not forget to rehash TeX (if
-applicable)
-
-Example: my fonts are in F</usr/local/lib/texfonts/musixtex/>, and I
-have a symlink pointing to that in
-F</usr/lib/texmf/texmf/fonts/source/public/>
+ configure --prefix=~ --enable-debugging --enable-printing --enable-checking
+ make all
-=head1 CAVEATS
+and I want to do profiling. For that I use
+ configure --prefix=~ --enable-debugging --disable-printing\
+ --disable-checking --enable-profiling --enable-optimise\
+ --enable-out-dir=out-profile
+ make OUTDIR_NAME=out-profile all
-=over 5
+These two commands build two entirely separate versions of
+LilyPond. In Real Life, you would probably also want to have two
+different prefixes. On my machine this is no problem; I never do
+C<make install>. My prefix dirs are linked back to my source directory.
-=item *
-The -O2 option to gcc triggers a gcc bug on DEC Alpha in dstream.cc. You
-should turn off this flag for this file.
+=head1 INSTALLING
-=back
+If you have done a successful C<make>, then a simple
-=head1 RUNNING
+ make install
-GNU LilyPond does use a lot of resources. For operation you need the following:
+should do the trick.
+=head1 CAVEATS
=over 5
=item *
-A fast computer (a full page of music typically takes 1 minute
-on my 486/66, using the B<--enable-checking> compile. It's lot slower
-than most MusiXTeX preprocessors)
-
-=item *
-
-TeX
+The -O2 option to gcc triggers a gcc bug on DEC Alpha in dstream.cc. You
+should turn off this flag for this file.
=item *
-The MusixTeX fonts (I included those found in MusixTeX T.73). Beware,
-the clef symbol has changed position in the Egler version,
-a.k.a. OpusTeX)
+Perl5.003 and Perl5.004 use different syntax for pod2html.
=back
-At this time, GNU LilyPond output looks nice, but is not of production
-quality. If you're not discouraged; this is what I type in my xterm:
+=head1 EXAMPLE
+
+This is what I type in my xterm:
lilypond someinput.ly
- tex lelie.tex
- xdvi test&
+ tex someinput.tex
+ xdvi someinput&
This is what the output looks like over here:
- hw:~/musix/spacer$ lilypond input/kortjakje.ly
- GNU LilyPond 0.0.71 #20/FlowerLib 1.1.20 #0
- Parsing ... [/home/hw/share/lilypond/init//symbol.ini <..snip..>
- .. .ini]][input/kortjakje.ly]
- Creating elements ...
+ 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 ... [3][8][13][17][21][25]
+ Calculating column positions ... [14][25]
Postprocessing elements...
- TeX output to lelie.tex ...
+ TeX output to someinput.tex ...
+ Creating MIDI elements ...MIDI output to someinput.midi ...
- hw:~/musix/spacer$ tex lelie
- This is TeX, Version 3.14159 (C version 6.1)
- (lelie.tex
- Hyphenation patterns for english, dutch, german, loaded.
- (/home/hw/lib/texmf/tex/lilypond/lilyponddefs.tex) [1] )
- Output written on lelie.dvi (1 page, 8944 bytes).
- Transcript written on lelie.log.
- hw:~/musix/spacer$ xdvi lelie&
+ hw:~/musix/spacer$ xdvi someinput&
[1] 855
Check out the input files, some of them have comments
=head1 REDHAT LINUX
RedHat Linux users should be able to get a RPM. A spec file is in
-F<make/lilypond.spec>. You should be able to create an rpm as a normal
-user. Be sure you have a ~/.rpmrc, and edit the RPM-dir in
-F<Variables.make>
+F<make/out/lilypond.spec>. You should be able to create an rpm as a
+normal user. Be sure you have a F<~/.rpmrc>, and edit the RPM-dir in
+F<Variables.make>. (If you create the RPM as a normal user the
+permissions will not be set correctly, unfortunately)
+
+
+=head1 DEBIAN GNU/LINUX
+A Debian package is also available; contact Anthony Fok
+<foka@debian.org>. The build scripts are in the subdirectory debian/
-=head1 WINDOZE
-Windows NT:
+=head1 WINDOWS NT/95
-you need the cygnus windows32 gnu port development stuff; have a look
-at http://www.cygnus.com/gnu-win32.
+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.
-to make GNU LilyPond under, brr, aargh, well, simply type:
+To make GNU LilyPond under, brr, aargh, shudder... windows32, well,
+simply type:
bash configure
- make windows32
+ make
+
+B<Note> If you rely on broken DOS/Windows tools such as pkzip/WinZIP
+to unpack the distribution, make sure the B<entire> source tree
+is unpacked correctly, in particular the empty out directories
+(F<flower/out>, F<lib/out> et. al.)
+
+=head1 MUSIXTEX
+
+Previous versions (before 0.1.39) used fonts from the TeX macro
+package "MusixTeX". You can still use these, but they are not
+supported. Since LilyPond's Feta font is much prettier, you'd be
+stupid to use them, but anyway, here are the installation instructions
+for those deprecated fonts.
+
+
+[obsolete] I use the MusixTeX fonts those found in MusixTeX
+T.73. Beware, the clef symbol seems to have changed its position in
+some versions, (notably Egler's, a.k.a. OpusTeX). The MusixTeX fonts
+are included in MusixTeX (T73 or better), which can be had from any
+CTAN site, e.g. at
+
+=over 4
+
+=item ftp://ftp.shsu.edu/tex-archive/macros/musixtex/taupin
-=head1 PLATFORMS
+=item ftp://ftp.tex.ac.uk/tex-archive/macros/musixtex/taupin
-GNU LilyPond (pl 0.0.39) is known to compile on the following platforms:
+=item ftp://ftp.dante.de/tex-archive/macros/musixtex/taupin
-Unix:
+=back
+
+You only need the contents of the F<mf/> subdirectory of the
+package. The primary site of the Taupin version is
+ftp://hprib.lps.u-psud.fr/pub/music_zips/musixtex.zip
+
+Install the musixtex fonts in a directory which TeX and MF knows (if
+you are root, look for a directory which contains the directories with
+AMS and CM source (*.mf) files. Create a subdir lilypond or musixtex
+and copy the fonts into that). Do not forget to rehash TeX (if
+applicable)
+
+Example: my fonts are in F</usr/local/lib/texfonts/musixtex/>, and I
+have a symlink pointing to that in
+F</usr/lib/texmf/texmf/fonts/source/public/>. After I copied the
+files, I ran "texhash"
- * gnu/linux 2.0.x, g++ 2.7.2[.1]
- * aix 4.1, g++ 2.7.2
- * solaris 2.5, g++ 2.7.2
+Andreas Egler's version of MusixTeX, now called OpusTeX, will also
+work. Andreas moved some characters around in the fonts, so you have
+to edit the definitions in F<tex/eglerdefs.tex>.
-Other:
- * windows-nt 4.0, cygnus gnu-windows32 beta17.1 (~=g++ 2.7.2)
- * gnu/linux 2.0.28 X to doze, gcc-go32 (~=g++ 2.7.2) [exec. untested]
=head1 AUTHORS