]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/INSTALL.pod
cd096c78181da68af09436df7cae0abf7dc9c8dd
[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 IMPORTANT
10
11 if you have downloaded a
12
13         *.pre*
14
15 version, then this is version is I<not> meant for producing nice
16 output, but to keep your patchsets up to date.  It might not even compile.
17
18 =head1 PREREQUISITES
19
20 For compilation you need.
21
22 =over 5
23
24 =item *
25
26 Unix. GNU LilyPond is known to run on Linux, AIX, Digital Unix and
27 Solaris
28
29 If you have the Cygnus WIN32 port of the GNU utils, it will
30 even work in Lose NT/95, but don't promise to support it.
31
32 =item *
33
34 GNU C++ v2.7 or better, with libg++ installed.  Version 2.7.2
35 or better recommended. I almost positive that it will not compile with
36 AT&T CC.
37
38 =item *
39
40 GNU make. 
41
42 =item *
43
44 Flex (2.5.1 or better). 
45
46 =item *
47
48 Bison. (Version 1.25 or better)
49
50 =back
51
52 =head1 RECOMMENDED
53
54 =over 5
55
56 =item *
57
58 Perl.  Most scripts are written in Perl. The documentation was created
59 with the perl's Plain Old Documentation.
60
61 =item *
62 (GNU) find
63
64 =back
65
66
67
68 =head1 CONFIGURING and COMPILING
69
70 to install GNU LilyPond, simply type:
71
72         configure
73         make install
74
75 This will install the following files:
76
77         /usr/local/man/man1/mi2mu.1
78         /usr/local/man/man5/mudela.5
79         /usr/local/man/man1/lilypond.1
80         /usr/local/lib/libflower.{so,a}
81         /usr/local/bin/lilypond
82         /usr/local/bin/mi2mu
83         /usr/local/share/lilypond/*
84         /usr/lib/texmf/texmf/tex/lilypond/* 
85         /usr/lib/texmf/texmf/fonts/source/lilypond/* 
86
87 The TeX include directory is detected dynamically, but it can be
88 adjusted with B<--enable-tex-prefix> and B<--enable-tex-dir>. The
89 above assumes that you are root and have the gnu development tools,
90 and your make is gnu make.  If this is not the case, you can adjust
91 your environment variables to your taste:
92
93         export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" 
94         configure
95
96 C<CPPFLAGS> are the preprocessor flags. 
97
98 the configure script is Cygnus configure, and it will accept
99 B<--help>. If you are not root, you will probably have to make it with
100
101         configure --prefix=/home/me_myself_and_I/
102
103 In this case, you will have to set MFINPUTS, and TEINPUTS accordingly.
104
105 If you want to install GNU LilyPond in F</usr/local>, and your TeX has
106 no default hooks for local stuff (mine is broken too), you can do:
107
108         configure --prefix=/usr/local --enable-tex-prefix=/usr/lib/texmf
109
110 Since GNU LilyPond currently is beta, you are advised to also use
111
112         --enable-debugging
113         --enable-checking
114
115 other options include:
116
117 =over 4
118
119 =item --enable-shared
120
121 Make a shared library (linux, solaris (?) only ) 
122
123 =item   --enable-printing
124
125 Enable debugging print routines (lilypond B<-d> option)
126
127 =item   --enable-optimise
128
129 Set maximum optimisation
130
131 =item   --enable-profiling
132
133 Compile with support for profiling
134
135 =item   --enable-tex-prefix
136
137 Set the directory where texmf lives
138
139 =item --enable-tex-dir
140
141 Set then directory tex input is in (detected as a subdir of tex-prefix)
142
143 =item --enable-mf-dir
144
145 Set then directory tex input is in (idem)
146
147 =back
148
149 All options are documented in the F<configure> help
150 The option B<--enable-optimise> is recommended for Real Life usage.
151
152 If you do
153
154         make all
155
156 everything will be compiled, but nothing will be installed.  The
157 resulting binaries can be found in the subdirectories F<out/> (which
158 contain all files generated during compilation).
159
160
161 =head1 INSTALLING
162
163 If you have done a successful C<make>, then a simple
164
165         make install
166
167 should do the trick. 
168
169 [todo. Obsolete; fonts are in distribution now.]
170
171 Install the musixtex fonts in a directory which TeX and MF knows (if
172 you are root, look for a directory which contains the directories with
173 AMS and CM source (*.mf) files. Create a subdir lilypond or musixtex
174 and copy the fonts into that). Do not forget to rehash TeX (if
175 applicable)
176
177 Example: my fonts are in F</usr/local/lib/texfonts/musixtex/>, and I
178 have a symlink pointing to that in
179 F</usr/lib/texmf/texmf/fonts/source/public/>
180
181 =head1 CAVEATS
182
183
184
185 =over 5
186
187 =item *
188
189 The -O2 option to gcc triggers a gcc bug on DEC Alpha in dstream.cc. You
190 should turn off this flag for this file.
191
192 =back
193
194 =head1 RUNNING
195
196 GNU LilyPond does use a lot of resources. For operation you need the following:
197
198
199 =over 5
200
201 =item *
202
203 A fast computer (a full page of music typically takes 1 minute
204 on my 486/66, using the B<--enable-checking> compile. It's lot slower
205 than most MusiXTeX preprocessors)
206
207 =item *
208
209 TeX
210
211 =item *
212
213 The MusixTeX fonts. (I use those found in MusixTeX T.59). Beware, the
214 clef symbol has changed position in recent versions of MusixTeX)
215
216 =back
217
218 At this time, GNU LilyPond output looks nice, but is not of production
219 quality. If you're not discouraged; this is what I type in my xterm:
220
221         lilypond someinput.ly
222         tex lelie.tex
223         xdvi test&
224
225 This is what the output looks like over here:
226
227         hw:~/musix/spacer$ GNU LilyPond 0.0.60 #8/FlowerLib 1.1.14 #2
228         Parsing ... [./input/kortjakje.ly[lots of stuff]]
229         Setting up requests...Processing requests ...[8][16][24][25]
230         Preprocessing elements... 
231         Calculating column positions ... [3][7][12][16][20][25]
232         Postprocessing elements...
233         TeX output to lelie.tex ...
234
235         hw:~/musix/spacer$ tex lelie
236         This is TeX, Version 3.14159 (C version 6.1)
237         (lelie.tex
238         Hyphenation patterns for english, dutch, german, loaded.
239         (/home/hw/lib/texmf/tex/lilypond/lilyponddefs.tex) [1] )
240         Output written on lelie.dvi (1 page, 8944 bytes).
241         Transcript written on lelie.log.
242
243         hw:~/musix/spacer$ xdvi lelie&
244         [1] 855
245
246 Check out the input files, some of them have comments
247 Please refer to the man page for more information.
248
249 =head1 REDHAT LINUX
250
251 RedHat Linux users should be able to get a RPM. A spec file is in
252 F<make/lilypond.spec>. You should be able to create an rpm as a normal
253 user. Be sure you have a ~/.rpmrc, and edit the RPM-dir in
254 F<Variables.make>
255
256
257 =head1 WINDOZE
258
259 Windows NT:
260
261 you need the cygnus win32 gnu port development stuff; have a look
262 at http://www.cygnus.com/gnu-win32.
263
264 to make GNU LilyPond under, brr, aargh, well, simply type:
265
266         bash configure
267         make win32
268
269 =head1 PLATFORMS
270
271 GNU LilyPond (pl 0.0.39) is known to compile on the following platforms:
272
273         * linux 2.0.x, g++ 2.7.2[.1]
274         * aix 4.1, g++ 2.7.2
275         * windows-nt 4.0, cygnus gnu-win32 beta17.1 (~=g++ 2.7.2)
276         * linux 2.0.28 X to doze, gcc-go32 (~=g++ 2.7.2) [exec. untested]
277
278 =head1 AUTHORS
279
280 Han-Wen Nienhuys <hanwen@stack.nl>
281
282 Jan Nieuwenhuizen <jan@digicash.com>
283
284
285 Have fun!