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