]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/topdocs/INSTALL.yo
release: 1.0.1
[lilypond.git] / Documentation / topdocs / INSTALL.yo
1 article(INSTALL - compiling and installing GNU LilyPond)(HWN & JCN)()
2
3 sect(ABSTRACT)
4
5 You do something which looks remotely like
6 verb(
7         configure    # Check out the buildscripts/set-lily.sh script
8         make
9         make install
10 )
11
12 The detailed instructions follow here.  The
13 file(buildscripts/set-lily.sh) script sets some environment variables
14 and symlinks, which comes in handly when you have to compile LilyPond
15 very often.  It is aimed at people who run (or debug) LilyPond without 
16 installing.
17
18 sect(PREREQUISITES)
19
20 For compilation you need:
21
22 itemize(
23 it()A GNU system: GNU LilyPond is known to run on these GNU systems: Linux
24     (PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix and
25 Solaris.
26
27 Although we recommend to use Unix, LilyPond is known to run on Windows
28 NT/95/98 as well.  See Section ref(w32).
29
30 it() GNU C++ version 2.7 or newer (2.8 and egcs are also fine).
31 it() Python 1.5
32 )
33
34 sect(RUNNING)
35
36 GNU LilyPond does use a lot of resources. For operation you need the following:
37
38 itemize(
39 it()TeX
40 it()A PostScript printer and/or viewer (such as Ghostscript) is strongly
41     recommended.  Xdvi will show all embedded PostScript too if you have
42     Ghostscript installed.
43 )
44
45 sect(RECOMMENDED)
46
47 Although not strictly necessary, these are recommended to have.
48
49 itemize(
50 it()GNU make. 
51 it()Flex (version 2.5.4 or newer). 
52 it()Bison (version 1.25 or newer).
53 it()Python (version 1.5 or newer).
54 it()Yodl.  All documentation will be in Yodl. (1.30.17)
55 lurl(ftp://pcnov095.win.tue.nl/pub/yodl)
56     lurl(http://www.cs.uu.nl/~hanwen/yodl)
57 it()Texinfo. (version 3.12 or newer)
58
59 it()GNU find
60 it() A fast computer (a full page of music typically takes 1 minute on my
61     486/133, using the bf(--enable-checking) compile. It's lot slower than
62     most MusiXTeX preprocessors)
63 )
64
65 sect(WEBSITE)
66
67 If you want to auto-generate Lily's website, you'll need some additional
68 conversion tools.
69
70 itemize(
71 it()xpmtoppm (from the Portable Bitmap Utilities) (For RedHat Linux
72              users: it is included within the package libgr-progs).
73 it()Bib2html lurl(http://pertsserver.cs.uiuc.edu/~hull/bib2html.)
74     Which, in turn depends on man2html for proper installation.
75 man2html can be had from lurl(http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05).
76
77     TeTeX users should not forget to rerun texhash.
78 )
79
80 sect(CONFIGURING and COMPILING)
81
82 to install GNU LilyPond, simply type:
83 verb(
84         configure  --enable-tex-dir=XXXX --enable-mf-dir=YYYY
85         make
86         make install
87 )
88
89 This will install a number of files, something close to:
90 verb(
91         /usr/local/man/man1/mi2mu.1
92         /usr/local/man/man1/convert-mudela.1
93         /usr/local/man/man1/mudela-book.1
94         /usr/local/man/man1/lilypond.1
95         /usr/local/bin/lilypond
96         /usr/local/bin/mi2mu
97         /usr/local/share/lilypond/*
98         /usr/local/share/locale/{it,nl}/LC_MESSAGES/lilypond.mo
99         /usr/lib/texmf/texmf/tex/lilypond/* 
100 )
101
102
103 You should specify directories that are in TeX()'s and MetaFont's
104 include path with the options (--enable-tex-dir) and
105 bf(--enable-mf-dir).  If you don't specify any directories, the TeX()
106 include directory is detected dynamically, which is unreliable.  The
107 above assumes that you are root and have the GNU development tools,
108 and your make is GNU make.  If this is not the case, you can adjust
109 your environment variables to your taste:
110
111 verb(
112         export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" 
113         configure
114 )
115
116 code(CPPFLAGS) are the preprocessor flags. 
117
118 The configure script is Cygnus configure, and it will accept
119 bf(--help). If you are not root, you will probably have to make it
120 with a different bf(--prefix) option.  Our favourite location is
121
122 verb(
123         configure --prefix=$HOME/usr
124 )
125
126 In this case, you will have to set up MFINPUTS, and TEXINPUTS accordingly.
127
128 If you want to install GNU LilyPond in file(/usr/local), and your TeX has
129 no default hooks for local stuff, you can do:
130
131 verb(
132         configure --prefix=/usr/local --enable-tex-prefix=/usr/lib/texmf
133 )
134
135 Since GNU LilyPond currently is beta, you are advised to also use
136
137 verb(
138         --enable-debugging
139         --enable-checking
140 )
141
142 Other options include:
143
144 description(
145 dit(bf(--enable-shared))
146     Make a shared library (gnu/linux, solaris (?) only )  (TEMPORARILY
147 OUT OF ORDER)
148
149 dit(bf(--enable-printing))
150     Enable debugging print routines (lilypond bf(-D) option)
151 dit(bf(--enable-optimise))
152     Set maximum optimisation: compile with bf(-O2)
153 dit(bf(--enable-profiling))
154     Compile with support for profiling.
155 dit(bf(--enable-tex-prefix))
156     Set the directory where TeX and Metafont live.
157 dit(bf(--enable-tex-dir))
158     Set then directory TeX input is in (detected as a subdir of
159     tex-prefix).  This should be a directory that is reachable both for
160     tex and latex.  On my system the best choice would be
161     file(/usr/lib/texmf/texmf/tex/generic//).
162 dit(bf(--enable-mf-dir))
163     Set the directory metafont input is in (idem).   On my system the best
164     choice would be file(/usr/lib/texmf/texmf/fonts/source/public/).
165 dit(bf(--enable-config))
166     Output to a different configuration file.  Needed for multi-platform
167     builds
168 )
169
170 All options are documented in the file(configure) help
171 The option bf(--enable-optimise) is recommended for Real Life usage.
172
173 If you do
174
175 verb(
176         make all
177 )
178
179 everything will be compiled, but nothing will be installed.  The
180 resulting binaries can be found in the subdirectories file(out/) (which
181 contain all files generated during compilation).
182
183 sect(CONFIGURING FOR MULTIPLE PLATFORMS)
184
185 If you want to compile LilyPond with different configuration settings,
186 then, you can use the bf(--enable-config) option.  Example: suppose I
187 want to build with and   without profiling.  Then I'd use the
188 following for the normal build, 
189
190 verb(
191       configure --prefix=~ --disable-optimise --enable-checking
192       make
193       make install
194      )
195
196 and for the profiling version, I specify a different configuration.
197
198 verb(
199       configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking
200       make configuration=optprof
201       make configuration=optprof install
202 )
203
204
205 sect(INSTALLING)
206
207 If you have done a successful code(make), then a simple
208
209 verb(
210         make install
211 )
212
213 should do the trick.
214
215 If you are doing an upgrade, please remember to remove obsolete
216 file(.pk) and file(.tfm) files of the fonts.  A script has been
217 provided to do the work for you, see file(bin/clean-fonts.sh).
218
219 nsect(CAVEATS)
220
221 itemize(
222 it()The -O2 option to gcc triggers a gcc bug on DEC Alpha in dstream.cc. You
223     should turn off this flag for this file.
224 )
225
226 nsect(EXAMPLE)
227
228 This is what I type in my xterm:
229
230 verb(
231         lilypond someinput.ly
232         tex someinput.tex
233         xdvi someinput&
234 )
235
236 This is what the output looks like over here:
237
238 verb(
239         GNU LilyPond 0.0.78 #4/FlowerLib 1.1.24 #0
240         Parsing ... [/home/hw/share/lilypond/init//
241                 <..etc..>
242                 init//performer.ly]]][input/kortjakje.ly]
243         Creating elements ...[8][16][24][25]
244         Preprocessing elements... 
245         Calculating column positions ... [14][25]
246         Postprocessing elements...
247         TeX output to someinput.tex ...
248         Creating MIDI elements ...MIDI output to someinput.midi ...
249
250
251         hw:~/musix/spacer$ xdvi someinput&
252         [1] 855
253 )
254
255 Check out the input files, some of them have comments
256 Please refer to the man page for more information.
257
258 sect(REDHAT LINUX)
259
260 RedHat Linux users can compile an RPM. A spec file is in
261 file(make/out/lilypond.spec).  You should install a gif file called
262 file(lelie_icon.gif) along with the sources.  You can generate this
263 gif file by typing
264
265 verb(
266      make gifs
267 )
268
269 in the directory file(Documentation).
270
271 You can make the rpm by issuing
272
273 verb(
274         make rpm
275 )
276
277
278 sect(DEBIAN GNU/LINUX)
279
280 A Debian package is also available; contact Anthony Fok
281 email(foka@debian.org).  The build scripts are in the subdirectory file(debian/)
282
283
284 sect(WINDOWS NT/95)
285 label(w32)
286
287
288 Separate instructions on building for W32 are avaible
289 url(in the file README-W32.yo)(../../DOEXPAND(outdir)/README-W32.html).
290
291 sect(AUTHORS)
292
293 nemail(Han-Wen Nienhuys)(hanwen@cs.uu.nl)
294
295 nemail(Jan Nieuwenhuizen)(janneke@gnu.org)
296
297
298 Have fun!