]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/windows/compiling.texi
7eeb9f26962a19691675fe58c813f1bb4eee8278
[lilypond.git] / Documentation / windows / compiling.texi
1 \input texinfo @c -*-texinfo-*-
2 @setfilename compiling.info
3 @settitle Compiling LilyPond on Windows
4
5 @html
6 <!--- @@WEB-TITLE@@=Windows Compilation --->
7 @end html
8
9 @section Obtaining LilyPond
10
11 You can get the latest version of LilyPond at
12 @uref{ftp://ftp.lilypond.org/pub/LilyPond/,
13 ftp://ftp.lilypond.org/pub/LilyPond/}.
14
15 @section Windows build requirements
16 You need the following packages to compile Lilypond on Windows.
17
18 @table @code
19 @item The GNU + Cygnus tools, 1.3.6 or newer.
20 Check out the @uref{http://sources.redhat.com/cygwin,Cygwin webpage}.
21 You can get the latest version of the GNU + Cygnus tools from cygnus
22 @uref{http://sources.redhat.com/cygwin/mirrors.html,mirror site}.
23 Install everything, including tetex and texmf.
24 @item GUILE 1.4, or newer.
25 Check out the @uref{http://www.gnu.org/software/guile.html,GUILE
26 webpage}.  You may need the patch @file{guile-1.4-gnu-windows.patch}
27 included in LilyPond's source distribution.
28 @end table
29
30 @subsection Cross compiling
31
32 These binaries are cross compiled for Windows on a GNU/Linux box.  You
33 may want to check out the
34 @uref{http://www.lilypond.org/gnu-windows/cygwin-cross.tar.gz,cross
35 compilation scripts}.
36
37 @subsection Compiling on Windows
38
39 Compiling on Windows should be possible, but how should we now?  If you
40 have any experiences you want to share, please do so at
41 @uref{http://lilypond.org/wiki?CompilingOnWindows,Compiling on Windows}.
42 Or write to one of the mailing lists.
43
44 @section Windows installation specifics
45
46 Installing LilyPond on Windows is similar to a unix installation, but
47 needs a number of extra tricks.  All code for these tricks can be found
48 in the source package directory @file{Documentation/windows}.
49
50 @table @asis
51 @item @var{guile-1.4-gnu-windows.patch}
52 You may (Cygwin gets better every day) need this patch to compile GUILE.
53 @item @var{cygwin-installer.patch}
54 Apply this patch to the @file{cinstall} directory of
55 @file{winsup-src/cinstall}, to get the LilyPond installer.
56
57 Compiling @file{setup.exe} has been complicated a bit with the
58 introduction of the bzip2 feature.  Here's how I did it:
59 @quotation
60 @example
61     mkdir cygwin-20020218 && cd cygwin-20020218
62     export CVSROOT=:pserver:anoncvs@@anoncvs.cygnus.com:/cvs/src
63     touch $HOME/.cvspass
64     cvs login
65     cvs -z3 co -D20020218 winsup
66     cd src/winsup/cinstall
67     patch < $HOME/usr/src/lilypond/Documentation/windows/cygwin-installer.patch
68     (cd ../bz2lib; ./configure; make)
69     ./configure
70     CYGWIN=$HOME/usr/src/cygwin/cygwin-1.3.6
71     cp $HOME/usr/src/lilypond/Documentation/windows/LilyPond.ico .
72     make w32api_lib=$CYGWIN/usr/lib/w32api \
73         CXX="g++ -L$CYGWIN/usr/lib/mingw"
74     cp -pv setup.exe $CYGWIN/dist/cygwin-1.3.6/new-setup.exe
75     strip $CYGWIN/dist/cygwin-1.3.6/new-setup.exe
76 @end example
77
78 @ignore
79 new setup:
80
81
82 @end ignore
83 @end quotation
84 @item @var{--prefix=/usr/lilypond-x.y.x}
85 The standard binary installation installs LilyPond into its own prefix.
86 We think it's silly, but do this is on special request of Windows users.
87 @item @file{fix-suffixes.sh}
88 Add @file{.exe} to binary executables.
89 @item @file{/etc/postinstall/}
90 A post installation script that updates a symlink.
91 @item @file{/etc/profile.d/}
92 A number of login profile scripts set environment vars, every time you
93 start the LilyPond/Cygwin shell (or Bash, for that matter).
94 @end table
95
96 These scripts and tricks are known to work, but may be incomplete.  If
97 you find a bug, please send us your fix.
98
99 Windows users have indicated that a DOS style login (as supposed to the
100 LilyPond/Cygwin shell), would be useful.  We don't enjoy DOS scripting,
101 and think users should try the bash shell, which is better suited for
102 typing in commands.  It really helps a lot and pays off to read some
103 introduction to this Bash shell.  However, if you have written useful
104 DOS login scripts, please send us your code.