| |
| Building XZ Utils on Windows |
| ============================ |
| |
| Introduction |
| ------------ |
| |
| This document explains shortly where to get and how to install the |
| build tools 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. |
| - 32-bit MinGW-w64 (I call it MingW-w32 here) 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. The ready-made build script build.bash 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/MSYS/Base/msys-core/ |
| |
| 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 |
| |
| NOTE: This section may be outdated. I haven't tried MinGW recently. |
| |
| 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 |
| |
| I used the packages from Mingw-builds project. With that it is |
| enough to pick one .7z file for 32-bit and another for 64-bit |
| toolchain. For XZ Utils 5.2.0 I used the packages from these |
| directories: |
| |
| http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.9.2/threads-win32/sjlj/ |
| |
| http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.9.2/threads-win32/sjlj/ |
| |
| If you install both MinGW-w32 and MinGW-w64, remember to extract |
| them into different directories. build.bash looks at |
| C:\devel\tools\mingw-w32 and C:\devel\tools\mingw-w64 by default. |
| |
| |
| 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. |
| |