lilypond-1.4.4
[lilypond.git] / Documentation / INSTALL.pod
blob741db8d4339f9632bd0b71fd92b5cdde7d8ad096
1 =head1 NAME
3 INSTALL - installing GNU LilyPond
5 =head1 DESCRIPTION
7 This page documents installation and compilation of GNU LilyPond
9 =head1 ABSTRACT
11 You do something which looks remotely like
13         configure
14         make
15         make install
17 The detailed instructions follow here.
19 =head1 PREREQUISITES
21 For compilation you need.
23 =over 5
25 =item *
27 A GNU system: GNU LilyPond is known to run on these GNU systems: Linux
28 (PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix and Solaris.
30 If you have the Cygnus WINDOWS32 port of the GNU utils, it will even
31 work in Windows NT/95, but we don't promise to support it.
33 =item *
35 GNU C++ version 2.7 or newer (yes, 2.8 is fine).
37 =item *
39 Python
41 =back
43 =head1 RUNNING
45 GNU LilyPond does use a lot of resources. For operation you need the following:
47 =over 5
49 =item *
51 TeX
53 =item *
55 A PostScript printer and/or viewer (such as Ghostscript) is strongly
56 recommended.  Xdvi will show all embedded PostScript too if you have
57 Ghostscript installed.
59 =back
61 =head1 RECOMMENDED
63 Although not strictly necessary, these are recommended to have.
65 =over 5
67 =item *
69 GNU make. 
71 =item *
73 Flex (version 2.5.4 or newer). 
75 =item *
77 Bison (version 1.25 or newer).
79 =item *
81 Perl-5.  Most documentation was created with the perl's Plain Old
82 Documentation. (I use 5.003)
84 =item *
86 Python.  Although perl is nice, python is better.  We will shift
87 towards python for build scripts
89 =item *
91 GNU find
93 =item *
95 A fast computer (a full page of music typically takes 1 minute on my
96 486/133, using the B<--enable-checking> compile. It's lot slower than
97 most MusiXTeX preprocessors)
99 =back
101 =head1 WEBSITE
103 If you want to auto-generate Lily's website, you'll need some additional
104 conversion tools.
106 =over 5
108 =item *
110 xpmtoppm (from the Portable Bitmap Utilities) (included within the
111 RedHat package libgr-progs).
113 =item *
115 Bib2html (http://pertsserver.cs.uiuc.edu/~hull/bib2html.)
116 Which, in turn depends on Man2htlm (http://askdonald.ask.uni-karlsruhe.de/
117 hppd/hpux/Networking/WWW/Man2html-1.05) for proper installation (ugh).
118 TeTeX users, don't forget to rerun texhash.
120 =back
122 =head1 CONFIGURING and COMPILING
124 to install GNU LilyPond, simply type:
126         configure
127         make
128         make install
130 This will install the following files:
132         /usr/local/man/man1/mi2mu.1
133         /usr/local/man/man1/convert-mudela.1
134         /usr/local/man/man1/mudela-book.1
135         /usr/local/man/man1/lilypond.1
136         /usr/local/lib/libflower.{so,a}
137         /usr/local/bin/lilypond
138         /usr/local/bin/mi2mu
139         /usr/local/share/lilypond/*
140         /usr/lib/texmf/texmf/tex/lilypond/* 
142 The TeX include directory is detected dynamically, but it can be
143 adjusted with B<--enable-tex-prefix> and B<--enable-tex-dir>. The
144 above assumes that you are root and have the GNU development tools,
145 and your make is GNU make.  If this is not the case, you can adjust
146 your environment variables to your taste:
148         export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" 
149         configure
151 C<CPPFLAGS> are the preprocessor flags. 
153 the configure script is Cygnus configure, and it will accept
154 B<--help>. If you are not root, you will probably have to make it with
156         configure --prefix=/home/me_myself_and_I/
158 In this case, you will have to set MFINPUTS, and TEXINPUTS accordingly.
160 If you want to install GNU LilyPond in F</usr/local>, and your TeX has
161 no default hooks for local stuff (mine is broken too), you can do:
163         configure --prefix=/usr/local --enable-tex-prefix=/usr/lib/texmf
165 Since GNU LilyPond currently is beta, you are advised to also use
167         --enable-debugging
168         --enable-checking
170 other options include:
172 =over 4
174 =item B<--enable-shared>
176 Make a shared library (gnu/linux, solaris (?) only ) 
178 =item B<--enable-printing>
180 Enable debugging print routines (lilypond B<-d> option)
182 =item B<--enable-optimise>
184 Set maximum optimisation: compile with B<-O2>
186 =item B<--enable-profiling>
188 Compile with support for profiling
190 =item B<--enable-tex-prefix>
192 Set the directory where TeX and Metafont live
194 =item B<--enable-tex-dir>
196 Set then directory TeX input is in (detected as a subdir of
197 tex-prefix).  This should be a directory that is reachable both for
198 tex and latex.  On my system the best choice would be
199 F</usr/lib/texmf/texmf/tex/generic//>.
201 =item B<--enable-mf-dir>
203 Set the directory mf input is in (idem).   On my system the best
204 choice would be F</usr/lib/texmf/texmf/fonts/source/public/>.
206 =item B<--enable-config>
208 Output to different configuration files.  Needed for multi-platform
209 builds
212 =back
214 All options are documented in the F<configure> help
215 The option B<--enable-optimise> is recommended for Real Life usage.
217 If you do
219         make all
221 everything will be compiled, but nothing will be installed.  The
222 resulting binaries can be found in the subdirectories F<out/> (which
223 contain all files generated during compilation).
225 =head1 CONFIGURING FOR MULTIPLE PLATFORMS
227 If you want to compile LilyPond with different configuration settings,
228 then, you can use the B<--enable-config> option.  Example: suppose I
229 want to build with and   without profiling.  Then I'd use the
230 following for the normal build, 
232       configure --prefix=~ --disable-optimise --enable-checking
233       make
234       make install
236 and for the profiling version, I specify a different configuration.
238       configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking
239       make configuration=optprof
240       make configuration=optprof install
243 =head1 INSTALLING
245 If you have done a successful C<make>, then a simple
247         make install
249 should do the trick.
251 If you are doing an upgrade, please remember to remove obsolete .pk
252 and .tfm files of the fonts.  A script has been provided to do the
253 work, see F<bin/clean-fonts.sh>.
255 =head1 CAVEATS
257 =over 5
259 =item *
261 The -O2 option to gcc triggers a gcc bug on DEC Alpha in dstream.cc. You
262 should turn off this flag for this file.
264 =item *
266 Perl5.003 and Perl5.004 use different syntax for pod2html.
268 =back
270 =head1 EXAMPLE
272 This is what I type in my xterm:
274         lilypond someinput.ly
275         tex someinput.tex
276         xdvi someinput&
278 This is what the output looks like over here:
280         GNU LilyPond 0.0.78 #4/FlowerLib 1.1.24 #0
281         Parsing ... [/home/hw/share/lilypond/init//
282                 <..etc..>
283                 init//performer.ly]]][input/kortjakje.ly]
284         Creating elements ...[8][16][24][25]
285         Preprocessing elements... 
286         Calculating column positions ... [14][25]
287         Postprocessing elements...
288         TeX output to someinput.tex ...
289         Creating MIDI elements ...MIDI output to someinput.midi ...
292         hw:~/musix/spacer$ xdvi someinput&
293         [1] 855
295 Check out the input files, some of them have comments
296 Please refer to the man page for more information.
298 =head1 REDHAT LINUX
300 RedHat Linux users can compile an RPM. A spec file is in
301 F<make/out/lilypond.spec>.  You should install a gif file called
302 F<lelie_icon.gif> along with the sources.  You can generate this gif
303 file by typing
305      make gifs
307 in the directory F<Documentation>.
311 =head1 DEBIAN GNU/LINUX
313 A Debian package is also available; contact Anthony Fok
314 <foka@debian.org>.  The build scripts are in the subdirectory debian/
317 =head1 WINDOWS NT/95
319 So, you're stuck with Windows, eh?  Well, don't worry, you just 
320 need (to get) Cygnus' windows32 port of gnu development stuff; 
321 have a look at http://www.cygnus.com/gnu-win32.
323 To make GNU LilyPond under, brr, aargh, shudder... windows32, well,
324 simply type:
326         bash configure
327         make
329 B<Note> If you rely on broken DOS/Windows tools such as pkzip/WinZIP 
330 to unpack the distribution, make sure the B<entire> source tree 
331 is unpacked correctly, in particular the empty out directories 
332 (F<flower/out>, F<lib/out> et. al.)
334 =head1 AUTHORS
336 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
338 Jan Nieuwenhuizen <jan@digicash.com>
341 Have fun!