| |
| 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. |
| |