3 INSTALL - installing GNU LilyPond
7 This page documents installation and compilation of GNU LilyPond
11 You do something which looks remotely like
16 tar -C /usr/lib/texmf/fonts/source/ -zxf musixtex-T73.tgz 'mf/*'
18 The detailed instructions follow here.
22 For compilation you need.
28 A GNU system: GNU LilyPond is known to run on these GNU systems:
29 Linux, AIX, Digital Unix and Solaris.
31 If you have the Cygnus WINDOWS32 port of the GNU utils, it will even
32 work in Windows NT/95, but we don't promise to support it.
36 GNU C++ v2.7 or better, with libg++ installed. Version 2.7.2
37 or better recommended.
45 Flex (2.5.1 or better).
49 Bison. (Version 1.25 or better)
55 GNU LilyPond does use a lot of resources. For operation you need the following:
66 The MusixTeX fonts (I included those found in MusixTeX T.73). Beware,
67 the clef symbol seems to have changed its position in some versions,
68 (notably Egler's, a.k.a. OpusTeX). The MusixTeX fonts are included in
69 MusixTeX (T73 or better), which can be had from any CTAN site, e.g. at
73 =item ftp://ftp.shsu.edu/tex-archive/macros/musixtex/taupin
75 =item ftp://ftp.tex.ac.uk/tex-archive/macros/musixtex/taupin
77 =item ftp://ftp.dante.de/tex-archive/macros/musixtex/taupin
81 You only need the contents of the F<mf/> subdirectory of the
82 package. The primary site of the Taupin version is
83 ftp://hprib.lps.u-psud.fr/pub/music_zips/musixtex.zip
85 Andreas Egler's version of MusixTeX, now called OpusTeX, will also
86 work. Andreas moved some characters around in the fonts, so you have
87 to edit the definitions in tex/eglerdefs.tex (patch appreciated)
92 Although not strictly necessary, these are recommended to have.
98 Perl-5. Most documentation was created with the perl's Plain Old
99 Documentation. (I use 5.003)
103 Python. Although perl is nice, python is better. We will shift
104 towards python for build scripts
112 A fast computer (a full page of music typically takes 1 minute on my
113 486/133, using the B<--enable-checking> compile. It's lot slower than
114 most MusiXTeX preprocessors)
119 =head1 CONFIGURING and COMPILING
121 to install GNU LilyPond, simply type:
126 This will install the following files:
128 /usr/local/man/man1/mi2mu.1
129 /usr/local/man/man1/convert-mudela.1
130 /usr/local/man/man1/mudela-book.1
131 /usr/local/man/man1/lilypond.1
132 /usr/local/lib/libflower.{so,a}
133 /usr/local/bin/lilypond
135 /usr/local/share/lilypond/*
136 /usr/lib/texmf/texmf/tex/lilypond/*
138 The TeX include directory is detected dynamically, but it can be
139 adjusted with B<--enable-tex-prefix> and B<--enable-tex-dir>. The
140 above assumes that you are root and have the GNU development tools,
141 and your make is GNU make. If this is not the case, you can adjust
142 your environment variables to your taste:
144 export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR"
147 C<CPPFLAGS> are the preprocessor flags.
149 the configure script is Cygnus configure, and it will accept
150 B<--help>. If you are not root, you will probably have to make it with
152 configure --prefix=/home/me_myself_and_I/
154 In this case, you will have to set MFINPUTS, and TEXINPUTS accordingly.
156 If you want to install GNU LilyPond in F</usr/local>, and your TeX has
157 no default hooks for local stuff (mine is broken too), you can do:
159 configure --prefix=/usr/local --enable-tex-prefix=/usr/lib/texmf
161 Since GNU LilyPond currently is beta, you are advised to also use
166 other options include:
170 =item --enable-shared
172 Make a shared library (gnu/linux, solaris (?) only )
174 =item --enable-printing
176 Enable debugging print routines (lilypond B<-d> option)
178 =item --enable-optimise
180 Set maximum optimisation: compile with B<-O2>
182 =item --enable-profiling
184 Compile with support for profiling
186 =item --enable-tex-prefix
188 Set the directory where TeX and Metafont live
190 =item --enable-tex-dir
192 Set then directory TeX input is in (detected as a subdir of tex-prefix)
194 =item --enable-mf-dir
196 Set the directory mf input is in (idem)
198 =item --enable-out-dir
200 Set the directory for machine generated output.
204 All options are documented in the F<configure> help
205 The option B<--enable-optimise> is recommended for Real Life usage.
211 everything will be compiled, but nothing will be installed. The
212 resulting binaries can be found in the subdirectories F<out/> (which
213 contain all files generated during compilation).
215 =head2 Building for multiple hosts
217 LilyPond does not follow the GNU standards when it comes to
218 configuring and making Makefiles. In LilyPond, F<make> generates I<all>
219 output in output directories (called F<out/>, by default).
220 You can have multiple compiles from the same source-tree, by
221 overriding the setting for the output directory.
223 Example: on my system, I do debugging and lots compiling. For this I
224 use the configuration as follows:
226 configure --prefix=~ --enable-debugging --enable-printing --enable-checking
229 and I want to do profiling. For that I use
231 configure --prefix=~ --enable-debugging --disable-printing\
232 --disable-checking --enable-profiling --enable-optimise\
233 --enable-out-dir=out-profile
235 make OUTDIR_NAME=out-profile all
237 These two commands build two entirely separate versions of
238 LilyPond. In Real Life, you would probably also want to have two
239 different prefixes. On my machine this is no problem; I never do
240 C<make install>. My prefix dirs are linked back to my source directory.
245 If you have done a successful C<make>, then a simple
251 Install the musixtex fonts in a directory which TeX and MF knows (if
252 you are root, look for a directory which contains the directories with
253 AMS and CM source (*.mf) files. Create a subdir lilypond or musixtex
254 and copy the fonts into that). Do not forget to rehash TeX (if
257 Example: my fonts are in F</usr/local/lib/texfonts/musixtex/>, and I
258 have a symlink pointing to that in
259 F</usr/lib/texmf/texmf/fonts/source/public/>. After I copied the
260 files, I ran "texhash"
268 The -O2 option to gcc triggers a gcc bug on DEC Alpha in dstream.cc. You
269 should turn off this flag for this file.
273 Perl5.003 and Perl5.004 use different syntax for pod2html:
279 This is what I type in my xterm:
281 lilypond someinput.ly
285 This is what the output looks like over here:
287 GNU LilyPond 0.0.78 #4/FlowerLib 1.1.24 #0
288 Parsing ... [/home/hw/share/lilypond/init//
290 init//performer.ly]]][input/kortjakje.ly]
291 Creating elements ...[8][16][24][25]
292 Preprocessing elements...
293 Calculating column positions ... [14][25]
294 Postprocessing elements...
295 TeX output to lelie.tex ...
296 Creating MIDI elements ...MIDI output to lelie.midi ...
299 hw:~/musix/spacer$ xdvi lelie&
302 Check out the input files, some of them have comments
303 Please refer to the man page for more information.
307 RedHat Linux users should be able to get a RPM. A spec file is in
308 F<make/out/lilypond.spec>. You should be able to create an rpm as a normal
309 user. Be sure you have a ~/.rpmrc, and edit the RPM-dir in
310 F<Variables.make>. (If you create the RPM as a normal user the
311 permissions will not be set correctly, unfortunately)
314 =head1 DEBIAN GNU/LINUX
316 A Debian package is in the works
321 So, you're stuck with Windows, eh? Well, don't worry, you just
322 need (to get) Cygnus' windows32 port of gnu development stuff;
323 have a look at http://www.cygnus.com/gnu-win32.
325 To make GNU LilyPond under, brr, aargh, shudder... windows32, well,
331 Note: If you rely on broken DOS/Windows tools such as pkzip/WinZIP
332 to unpack the distribution, make sure the B<entire> source tree
333 is unpacked correctly, in particular the empty out directories
334 (F<flower/out>, F<lib/out> et. al.)
338 Han-Wen Nienhuys <hanwen@stack.nl>
340 Jan Nieuwenhuizen <jan@digicash.com>