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 Unix system with GNU tools. GNU LilyPond is known to run on these
29 unices: 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. Most scripts are written in Perl. Most documentation was created
99 with the perl's Plain Old Documentation.
107 A fast computer (a full page of music typically takes 1 minute
108 on my 486/133, using the B<--enable-checking> compile. It's lot slower
109 than most MusiXTeX preprocessors)
114 =head1 CONFIGURING and COMPILING
116 to install GNU LilyPond, simply type:
121 This will install the following files:
123 /usr/local/man/man1/mi2mu.1
124 /usr/local/man/man1/convert-mudela.1
125 /usr/local/man/man1/mudela-book.1
126 /usr/local/man/man1/lilypond.1
127 /usr/local/lib/libflower.{so,a}
128 /usr/local/bin/lilypond
130 /usr/local/share/lilypond/*
131 /usr/lib/texmf/texmf/tex/lilypond/*
133 The TeX include directory is detected dynamically, but it can be
134 adjusted with B<--enable-tex-prefix> and B<--enable-tex-dir>. The
135 above assumes that you are root and have the GNU development tools,
136 and your make is GNU make. If this is not the case, you can adjust
137 your environment variables to your taste:
139 export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR"
142 C<CPPFLAGS> are the preprocessor flags.
144 the configure script is Cygnus configure, and it will accept
145 B<--help>. If you are not root, you will probably have to make it with
147 configure --prefix=/home/me_myself_and_I/
149 In this case, you will have to set MFINPUTS, and TEXINPUTS accordingly.
151 If you want to install GNU LilyPond in F</usr/local>, and your TeX has
152 no default hooks for local stuff (mine is broken too), you can do:
154 configure --prefix=/usr/local --enable-tex-prefix=/usr/lib/texmf
156 Since GNU LilyPond currently is beta, you are advised to also use
161 other options include:
165 =item --enable-shared
167 Make a shared library (gnu/linux, solaris (?) only )
169 =item --enable-printing
171 Enable debugging print routines (lilypond B<-d> option)
173 =item --enable-optimise
175 Set maximum optimisation: compile with B<-O2>
177 =item --enable-profiling
179 Compile with support for profiling
181 =item --enable-tex-prefix
183 Set the directory where TeX and Metafont live
185 =item --enable-tex-dir
187 Set then directory TeX input is in (detected as a subdir of tex-prefix)
189 =item --enable-mf-dir
191 Set the directory mf input is in (idem) [obsolete]
193 =item --enable-out-dir
195 Set the directory for machine generated output.
199 All options are documented in the F<configure> help
200 The option B<--enable-optimise> is recommended for Real Life usage.
206 everything will be compiled, but nothing will be installed. The
207 resulting binaries can be found in the subdirectories F<out/> (which
208 contain all files generated during compilation).
210 =head2 Building for multiple hosts
212 LilyPond does not follow the GNU standards when it comes to
213 configuring and making Makefiles. In LilyPond, F<make> generates I<all>
214 output in output directories (called F<out/>, by default).
215 You can have multiple compiles from the same source-tree, by
216 overriding the setting for the output directory.
218 Example: on my system, I do debugging and lots compiling. For this I
219 use the configuration as follows:
221 configure --prefix=~ --enable-debugging --enable-printing --enable-checking
224 and I want to do profiling. For that I use
226 configure --prefix=~ --enable-debugging --disable-printing\
227 --disable-checking --enable-profiling --enable-optimise\
228 --enable-out-dir=out-profile
230 make OUTDIR_NAME=out-profile all
232 These two commands build two entirely separate versions of
233 LilyPond. In Real Life, you would probably also want to have two
234 different prefixes. On my machine this is no problem; I never do
235 C<make install>. My prefix dirs are linked back to my source directory.
240 If you have done a successful C<make>, then a simple
246 Install the musixtex fonts in a directory which TeX and MF knows (if
247 you are root, look for a directory which contains the directories with
248 AMS and CM source (*.mf) files. Create a subdir lilypond or musixtex
249 and copy the fonts into that). Do not forget to rehash TeX (if
252 Example: my fonts are in F</usr/local/lib/texfonts/musixtex/>, and I
253 have a symlink pointing to that in
254 F</usr/lib/texmf/texmf/fonts/source/public/>. After I copied the
255 files, I ran "texhash"
263 The -O2 option to gcc triggers a gcc bug on DEC Alpha in dstream.cc. You
264 should turn off this flag for this file.
268 Perl5.003 and Perl5.004 use different syntax for pod2html:
274 This is what I type in my xterm:
276 lilypond someinput.ly
280 This is what the output looks like over here:
282 GNU LilyPond 0.0.78 #4/FlowerLib 1.1.24 #0
283 Parsing ... [/home/hw/share/lilypond/init//
285 init//performer.ly]]][input/kortjakje.ly]
286 Creating elements ...[8][16][24][25]
287 Preprocessing elements...
288 Calculating column positions ... [14][25]
289 Postprocessing elements...
290 TeX output to lelie.tex ...
291 Creating MIDI elements ...MIDI output to lelie.midi ...
294 hw:~/musix/spacer$ xdvi lelie&
297 Check out the input files, some of them have comments
298 Please refer to the man page for more information.
302 RedHat Linux users should be able to get a RPM. A spec file is in
303 F<make/out/lilypond.spec>. You should be able to create an rpm as a normal
304 user. Be sure you have a ~/.rpmrc, and edit the RPM-dir in
305 F<Variables.make>. (If you create the RPM as a normal user the
306 permissions will not be set correctly, unfortunately)
309 =head1 DEBIAN GNU/LINUX
311 A Debian package is in the works
318 you need the cygnus windows32 gnu port development stuff; have a look
319 at http://www.cygnus.com/gnu-win32.
321 to make GNU LilyPond under, brr, aargh, shudder.. windows32, well,
329 Han-Wen Nienhuys <hanwen@stack.nl>
331 Jan Nieuwenhuizen <jan@digicash.com>