]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/INSTALL.pod
release: 0.1.59
[lilypond.git] / Documentation / INSTALL.pod
1 =head1 NAME
2
3 INSTALL - installing GNU LilyPond
4
5 =head1 DESCRIPTION
6
7 This page documents installation and compilation of GNU LilyPond
8
9 =head1 ABSTRACT
10
11 You do something which looks remotely like
12
13         configure
14         make
15         make install
16
17 The detailed instructions follow here.
18
19 =head1 PREREQUISITES
20
21 For compilation you need.
22
23 =over 5
24
25 =item *
26
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.
29
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.
32
33 =item *
34
35 GNU C++ version 2.7 or newer (yes, 2.8 is fine).
36
37 =item *
38
39 Python
40
41 =back
42
43 =head1 RUNNING
44
45 GNU LilyPond does use a lot of resources. For operation you need the following:
46
47 =over 5
48
49 =item *
50
51 TeX
52
53 =item *
54
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.
58
59 =back
60
61 =head1 RECOMMENDED
62
63 Although not strictly necessary, these are recommended to have.
64
65 =over 5
66
67 =item *
68
69 GNU make. 
70
71 =item *
72
73 Flex (version 2.5.4 or newer). 
74
75 =item *
76
77 Bison (version 1.25 or newer).
78
79 =item *
80
81 Perl-5.  Most documentation was created with the perl's Plain Old
82 Documentation. (I use 5.003)
83
84 =item *
85
86 Python.  Although perl is nice, python is better.  We will shift
87 towards python for build scripts
88
89 =item *
90
91 GNU find
92
93 =item *
94
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)
98
99 =back
100
101
102 =head1 CONFIGURING and COMPILING
103
104 to install GNU LilyPond, simply type:
105
106         configure
107         make
108         make install
109
110 This will install the following files:
111
112         /usr/local/man/man1/mi2mu.1
113         /usr/local/man/man1/convert-mudela.1
114         /usr/local/man/man1/mudela-book.1
115         /usr/local/man/man1/lilypond.1
116         /usr/local/lib/libflower.{so,a}
117         /usr/local/bin/lilypond
118         /usr/local/bin/mi2mu
119         /usr/local/share/lilypond/*
120         /usr/lib/texmf/texmf/tex/lilypond/* 
121
122 The TeX include directory is detected dynamically, but it can be
123 adjusted with B<--enable-tex-prefix> and B<--enable-tex-dir>. The
124 above assumes that you are root and have the GNU development tools,
125 and your make is GNU make.  If this is not the case, you can adjust
126 your environment variables to your taste:
127
128         export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" 
129         configure
130
131 C<CPPFLAGS> are the preprocessor flags. 
132
133 the configure script is Cygnus configure, and it will accept
134 B<--help>. If you are not root, you will probably have to make it with
135
136         configure --prefix=/home/me_myself_and_I/
137
138 In this case, you will have to set MFINPUTS, and TEXINPUTS accordingly.
139
140 If you want to install GNU LilyPond in F</usr/local>, and your TeX has
141 no default hooks for local stuff (mine is broken too), you can do:
142
143         configure --prefix=/usr/local --enable-tex-prefix=/usr/lib/texmf
144
145 Since GNU LilyPond currently is beta, you are advised to also use
146
147         --enable-debugging
148         --enable-checking
149
150 other options include:
151
152 =over 4
153
154 =item B<--enable-shared>
155
156 Make a shared library (gnu/linux, solaris (?) only ) 
157
158 =item B<--enable-printing>
159
160 Enable debugging print routines (lilypond B<-d> option)
161
162 =item B<--enable-optimise>
163
164 Set maximum optimisation: compile with B<-O2>
165
166 =item B<--enable-profiling>
167
168 Compile with support for profiling
169
170 =item B<--enable-tex-prefix>
171
172 Set the directory where TeX and Metafont live
173
174 =item B<--enable-tex-dir>
175
176 Set then directory TeX input is in (detected as a subdir of tex-prefix)
177
178 =item B<--enable-mf-dir>
179
180 Set the directory mf input is in (idem)
181
182 =item B<--enable-config>
183
184 Output to different configuration files.  Needed for multi-platform
185 builds
186
187
188 =back
189
190 All options are documented in the F<configure> help
191 The option B<--enable-optimise> is recommended for Real Life usage.
192
193 If you do
194
195         make all
196
197 everything will be compiled, but nothing will be installed.  The
198 resulting binaries can be found in the subdirectories F<out/> (which
199 contain all files generated during compilation).
200
201 =head1 CONFIGURING FOR MULTIPLE PLATFORMS
202
203 If you want to compile LilyPond with different configuration settings,
204 then, you can use the B<--enable-config> option.  Example: suppose I
205 want to build with and   without profiling.  Then I'd use the
206 following for the normal build, 
207
208       configure --prefix=~ --disable-optimise --enable-checking
209       make
210       make install
211
212 and for the profiling version, I specify a different configuration.
213
214       configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking
215       make configuration=optprof
216       make configuration=optprof install
217
218
219 =head1 INSTALLING
220
221 If you have done a successful C<make>, then a simple
222
223         make install
224
225 should do the trick.
226
227 If you are doing an upgrade, please remember to remove obsolete .pk
228 and .tfm files of the fonts.  A script has been provided to do the
229 work, see F<bin/clean-fonts.sh>.
230
231 =head1 CAVEATS
232
233 =over 5
234
235 =item *
236
237 The -O2 option to gcc triggers a gcc bug on DEC Alpha in dstream.cc. You
238 should turn off this flag for this file.
239
240 =item *
241
242 Perl5.003 and Perl5.004 use different syntax for pod2html.
243
244 =back
245
246 =head1 EXAMPLE
247
248 This is what I type in my xterm:
249
250         lilypond someinput.ly
251         tex someinput.tex
252         xdvi someinput&
253
254 This is what the output looks like over here:
255
256         GNU LilyPond 0.0.78 #4/FlowerLib 1.1.24 #0
257         Parsing ... [/home/hw/share/lilypond/init//
258                 <..etc..>
259                 init//performer.ly]]][input/kortjakje.ly]
260         Creating elements ...[8][16][24][25]
261         Preprocessing elements... 
262         Calculating column positions ... [14][25]
263         Postprocessing elements...
264         TeX output to someinput.tex ...
265         Creating MIDI elements ...MIDI output to someinput.midi ...
266
267
268         hw:~/musix/spacer$ xdvi someinput&
269         [1] 855
270
271 Check out the input files, some of them have comments
272 Please refer to the man page for more information.
273
274 =head1 REDHAT LINUX
275
276 RedHat Linux users should be able to get a RPM. A spec file is in
277 F<make/out/lilypond.spec>. You should be able to create an rpm as a
278 normal user. Be sure you have a F<~/.rpmrc>, and edit the RPM-dir in
279 F<Variables.make>. (If you create the RPM as a normal user the
280 permissions will not be set correctly, unfortunately)
281
282
283 =head1 DEBIAN GNU/LINUX
284
285 A Debian package is also available; contact Anthony Fok
286 <foka@debian.org>.  The build scripts are in the subdirectory debian/
287
288
289 =head1 WINDOWS NT/95
290
291 So, you're stuck with Windows, eh?  Well, don't worry, you just 
292 need (to get) Cygnus' windows32 port of gnu development stuff; 
293 have a look at http://www.cygnus.com/gnu-win32.
294
295 To make GNU LilyPond under, brr, aargh, shudder... windows32, well,
296 simply type:
297
298         bash configure
299         make
300
301 B<Note> If you rely on broken DOS/Windows tools such as pkzip/WinZIP 
302 to unpack the distribution, make sure the B<entire> source tree 
303 is unpacked correctly, in particular the empty out directories 
304 (F<flower/out>, F<lib/out> et. al.)
305
306 =head1 AUTHORS
307
308 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
309
310 Jan Nieuwenhuizen <jan@digicash.com>
311
312
313 Have fun!