3e321a3acd
Spot candidates by running these commands: git ls-files |xargs perl -0777 -n \ -e 'while (/\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\s+\1\b/gims)' \ -e '{$n=($` =~ tr/\n/\n/ + 1); ($v=$&)=~s/\n/\\n/g; print "$ARGV:$n:$v\n"}' Thanks to Jim Meyering for the original patch.
141 lines
5.0 KiB
Plaintext
141 lines
5.0 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
|
|
bash windows/build.bash
|
|
|
|
If you used some other directory than C:\devel\tools for the build
|
|
tools, edit the variables near the beginning of build.bash first.
|
|
|
|
If you want to build manually, read the buildit() function in
|
|
build.bash. Look especially at the latter configure invocation.
|
|
|
|
Be patient. Running configure and other scripts used by the build
|
|
system is (very) slow under Windows.
|
|
|
|
|
|
Using a snapshot from the Git repository
|
|
|
|
To use a snapshot, the build system files need to be generated with
|
|
autogen.sh or "autoreconf -fi" before trying to build using the
|
|
above build instructions. You can install the relevant extra packages
|
|
from MinGW or use Cygwin or use e.g. a GNU/Linux system to create a
|
|
source package with the required build system files.
|
|
|