mirror of https://git.tukaani.org/xz.git
132 lines
4.6 KiB
Plaintext
132 lines
4.6 KiB
Plaintext
|
|
||
|
Building XZ Utils on Windows
|
||
|
============================
|
||
|
|
||
|
Introduction
|
||
|
------------
|
||
|
|
||
|
This document explains shortly where to get and how to install the
|
||
|
build tool that are needed to build XZ Utils on Windows. The final
|
||
|
binary package will be standalone in sense that it will depend only
|
||
|
on DLLs that are included in all Windows installations.
|
||
|
|
||
|
These instructions don't apply to Cygwin. XZ Utils can be built under
|
||
|
Cygwin in the same way as many other packages.
|
||
|
|
||
|
These instructions don't apply to MinGW and MSYS developers either,
|
||
|
who may want to package XZ Utils for MinGW or MSYS distributions.
|
||
|
You know who you are, and will probably use quite different configure
|
||
|
options etc. than what is described here.
|
||
|
|
||
|
|
||
|
Installing the toolchain(s)
|
||
|
---------------------------
|
||
|
|
||
|
Some of the following is needed:
|
||
|
- MSYS is always needed to use the GNU Autotools based build system.
|
||
|
- MinGW builds 32-bit x86 binaries.
|
||
|
- MingW-w32 builds 32-bit x86 executables too.
|
||
|
- MinGW-w64 builds 64-bit x86-64 binaries.
|
||
|
|
||
|
So you need to pick between MinGW and MinGW-w32 when building
|
||
|
32-bit version. You don't need both.
|
||
|
|
||
|
You might find 7-Zip <http://7-zip.org/> handy when extracting
|
||
|
some files (especially the .tar.lzma files). The ready-made
|
||
|
build script will also use 7-Zip to create the distributable
|
||
|
.zip and .7z files.
|
||
|
|
||
|
I used the following directory structure but you can use whatever
|
||
|
you want. Just note that I will use these in my examples. Each of
|
||
|
these should have a subdirectory "bin":
|
||
|
|
||
|
C:\devel\tools\msys
|
||
|
C:\devel\tools\mingw
|
||
|
C:\devel\tools\mingw-w32
|
||
|
C:\devel\tools\mingw-w64
|
||
|
|
||
|
|
||
|
Installing MSYS
|
||
|
|
||
|
You can download MSYS from MinGW's Sourceforge page:
|
||
|
|
||
|
http://sourceforge.net/projects/mingw/files/
|
||
|
|
||
|
It's under "MSYS Base System". I recommend using MSYS 1.0.11
|
||
|
(MSYS-1.0.11.exe or msysCORE-1.0.11-bin.tar.gz) because that
|
||
|
package includes all the required tools. At least some of the
|
||
|
later versions include only a subset and thus you would need to
|
||
|
download the rest separately. The old version will work fine for
|
||
|
building XZ Utils.
|
||
|
|
||
|
You can use either the .exe or .tar.gz package. I prefer .tar.gz,
|
||
|
because it can be extracted into any directory and later removed
|
||
|
without worrying about uninstallers.
|
||
|
|
||
|
|
||
|
Installing MinGW
|
||
|
|
||
|
You can download the required packages from MinGW's Sourceforge page:
|
||
|
|
||
|
http://sourceforge.net/projects/mingw/files/
|
||
|
|
||
|
These version numbers were the latest when I wrote this document, but
|
||
|
you probably should pick the latest versions:
|
||
|
|
||
|
MinGW Runtime -> mingwrt-3.17-mingw32-dev.tar.gz
|
||
|
MinGW API for MS-Windows -> w32api-3.14-mingw32-dev.tar.gz
|
||
|
GNU Binutils -> binutils-2.20-1-bin.tar.gz
|
||
|
GCC Version 4 -> gcc-full-4.4.0-mingw32-bin-2.tar.lzma
|
||
|
|
||
|
The full GCC package is quite big, but if you want a smaller
|
||
|
download, you will need to download more than one file, so I'm
|
||
|
using the full package in this document for simplicity.
|
||
|
|
||
|
Extract the packages in the above order, possibly overwriting files
|
||
|
from packages that were extracted earlier.
|
||
|
|
||
|
|
||
|
Installing MinGW-w32 or MinGW-w64
|
||
|
|
||
|
You can find the latest MinGW-w32 and MinGW-w64 builds here:
|
||
|
|
||
|
http://sourceforge.net/projects/mingw-w64/files/
|
||
|
|
||
|
Locate the appropriate files:
|
||
|
|
||
|
Toolchains targeting Win32 -> mingw-w32-*-mingw*.zip
|
||
|
Toolchains targeting Win64 -> mingw-w64-*-mingw*.zip
|
||
|
|
||
|
I don't know what is the most recommended one. I used sezero's
|
||
|
versions from "Personal Builds", since they seemed to have
|
||
|
a stable GCC (judging from the GCC version number only).
|
||
|
|
||
|
If you will install both MinGW-w32 and MinGW-w64, remember to
|
||
|
extract them into different directories.
|
||
|
|
||
|
|
||
|
Building XZ Utils
|
||
|
-----------------
|
||
|
|
||
|
Start MSYS by going to the directory C:\devel\tools\msys and running
|
||
|
msys.bat there (double-click or use command prompt). It will start
|
||
|
at "home" directory, which is C:\devel\tools\msys\home\YourUserName.
|
||
|
|
||
|
If you have xz-5.x.x.tar.gz in C:\devel, you should be able to build
|
||
|
it now with the following commands:
|
||
|
|
||
|
cd /c/devel
|
||
|
tar xzf xz-5.x.x.tar.gz
|
||
|
cd xz-5.x.x
|
||
|
sh windows/build.sh
|
||
|
|
||
|
If you used some other directory than C:\devel\tools for the build
|
||
|
tools, edit the variables near the beginning of build.sh first.
|
||
|
|
||
|
If you want to build manually, read the buildit() function in
|
||
|
build.sh. Look especially at the latter configure invocation.
|
||
|
|
||
|
Be patient. Running configure and other scripts used by the build
|
||
|
system is (very) slow under Windows.
|
||
|
|