]> icculus.org git repositories - icculus/xz.git/blob - windows/INSTALL-Windows.txt
Update docs.
[icculus/xz.git] / windows / INSTALL-Windows.txt
1
2 Building XZ Utils on Windows
3 ============================
4
5 Introduction
6 ------------
7
8     This document explains shortly where to get and how to install the
9     build tool that are needed to build XZ Utils on Windows. The final
10     binary package will be standalone in sense that it will depend only
11     on DLLs that are included in all Windows installations.
12
13     These instructions don't apply to Cygwin. XZ Utils can be built under
14     Cygwin in the same way as many other packages.
15
16     These instructions don't apply to MinGW and MSYS developers either,
17     who may want to package XZ Utils for MinGW or MSYS distributions.
18     You know who you are, and will probably use quite different configure
19     options etc. than what is described here.
20
21
22 Installing the toolchain(s)
23 ---------------------------
24
25     Some of the following is needed:
26       - MSYS is always needed to use the GNU Autotools based build system.
27       - MinGW builds 32-bit x86 binaries.
28       - MingW-w32 builds 32-bit x86 executables too.
29       - MinGW-w64 builds 64-bit x86-64 binaries.
30
31     So you need to pick between MinGW and MinGW-w32 when building
32     32-bit version. You don't need both.
33
34     You might find 7-Zip <http://7-zip.org/> handy when extracting
35     some files (especially the .tar.lzma files). The ready-made
36     build script will also use 7-Zip to create the distributable
37     .zip and .7z files.
38
39     I used the following directory structure but you can use whatever
40     you want. Just note that I will use these in my examples. Each of
41     these should have a subdirectory "bin":
42
43         C:\devel\tools\msys
44         C:\devel\tools\mingw
45         C:\devel\tools\mingw-w32
46         C:\devel\tools\mingw-w64
47
48
49 Installing MSYS
50
51     You can download MSYS from MinGW's Sourceforge page:
52
53         http://sourceforge.net/projects/mingw/files/
54
55     It's under "MSYS Base System". I recommend using MSYS 1.0.11
56     (MSYS-1.0.11.exe or msysCORE-1.0.11-bin.tar.gz) because that
57     package includes all the required tools. At least some of the
58     later versions include only a subset and thus you would need to
59     download the rest separately. The old version will work fine for
60     building XZ Utils.
61
62     You can use either the .exe or .tar.gz package. I prefer .tar.gz,
63     because it can be extracted into any directory and later removed
64     without worrying about uninstallers.
65
66
67 Installing MinGW
68
69     You can download the required packages from MinGW's Sourceforge page:
70
71         http://sourceforge.net/projects/mingw/files/
72
73     These version numbers were the latest when I wrote this document, but
74     you probably should pick the latest versions:
75
76         MinGW Runtime -> mingwrt-3.17-mingw32-dev.tar.gz
77         MinGW API for MS-Windows -> w32api-3.14-mingw32-dev.tar.gz
78         GNU Binutils -> binutils-2.20-1-bin.tar.gz
79         GCC Version 4 -> gcc-full-4.4.0-mingw32-bin-2.tar.lzma
80
81     The full GCC package is quite big, but if you want a smaller
82     download, you will need to download more than one file, so I'm
83     using the full package in this document for simplicity.
84
85     Extract the packages in the above order, possibly overwriting files
86     from packages that were extracted earlier.
87
88
89 Installing MinGW-w32 or MinGW-w64
90
91     You can find the latest MinGW-w32 and MinGW-w64 builds here:
92
93         http://sourceforge.net/projects/mingw-w64/files/
94
95     Locate the appropriate files:
96
97         Toolchains targeting Win32 -> mingw-w32-*-mingw*.zip
98         Toolchains targeting Win64 -> mingw-w64-*-mingw*.zip
99
100     I don't know what is the most recommended one. I used sezero's
101     versions from "Personal Builds", since they seemed to have
102     a stable GCC (judging from the GCC version number only).
103
104     If you will install both MinGW-w32 and MinGW-w64, remember to
105     extract them into different directories.
106
107
108 Building XZ Utils
109 -----------------
110
111     Start MSYS by going to the directory C:\devel\tools\msys and running
112     msys.bat there (double-click or use command prompt). It will start
113     at "home" directory, which is C:\devel\tools\msys\home\YourUserName.
114
115     If you have xz-5.x.x.tar.gz in C:\devel, you should be able to build
116     it now with the following commands:
117
118         cd /c/devel
119         tar xzf xz-5.x.x.tar.gz
120         cd xz-5.x.x
121         bash windows/build.bash
122
123     If you used some other directory than C:\devel\tools for the build
124     tools, edit the variables near the beginning of build.bash first.
125
126     If you want to build manually, read the buildit() function in
127     build.bash. Look especially at the latter configure invocation.
128
129     Be patient. Running configure and other scripts used by the build
130     system is (very) slow under Windows.
131
132
133 Using a snapshot from the Git repository
134
135     To use a snapshot, the build system files need to be generated with
136     autogen.sh or "autoreconf -fi" before trying to build using the the
137     above build instructions. You can install the relevant extra packages
138     from MinGW or use Cygwin or use e.g. a GNU/Linux system to create a
139     source package with the required build system files.
140