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