ezwinports -- MS-Windows ports of Unix and GNU software
This project is a collection of ports to MS-Windows of GNU and Unix
software packages, which either don't have precompiled Windows
binaries available, or whose existing ports are buggy or broken or
outdated. All the ports are built using the 32-bit MinGW development
environment, with or without MSYS. (MSYS is used to run the
`configure' scripts and the subsequent build with the Make utility,
where these make heavy use of Unix-isms.)
The ports are not necessarily of the "latest and greatest" versions
you can find upstream. But they are well tested and "work for me" in
daily usage (on a couple of XP SP3 boxes and on Windows 7).
For each package, you will find here 2 compressed archives: a source
archive and a binary archive.
The binary archive includes all the executable programs, dynamic
libraries, header files, and all the documentation files -- in
general, everything that is installed by running "make install". For
those of you who don't have Groff installed, I've included formatted
versions of man pages, so just a port of Less should be enough to
display them. If the executable programs need additional DLLs, they
are also included, to make the zip archive self-contained.
To install a binary archive, simply unzip it, preserving the directory
structure recorded in it, and make sure the 'bin' directory is on your
Path. If you already have a public 'bin' directory, unzip the binary
archive from that 'bin's parent directory. The other directories,
like 'include', 'lib', and 'share' are populated with the rest of the
package; in particular, the man pages are in 'share/man', and the Info
docs in 'share/info'. It is advisable to unpack all the archives you
download from this site into the same tree: this will ensure all the
packages work seamlessly together when needed.
The source archive includes everything needed to build the binaries;
in particular, the sources are already patched with all the changes
necessary for the Windows port to function correctly. The source
archive also includes the results of configuring the package: the
generated Makefile's, the famous config.h header file, etc. It is
possible that some of the generated files includes traces of my local
directory tree (e.g., I have a Unix-style directory hierarchy under
`D:\usr'), in which case you may need to edit those files to adapt
them to your machine. In most case, but not always, there's a "diffs"
file somewhere that shows the changes I made relative to the original
Most of the ports use a small number of DLLs for libraries, such as
libiconv or libintl, which I didn't build myself. The GPL requires
that the sources of those libraries be available from this very site.
Therefore, I provide those sources in the Dependencies/ subdirectory
of this directory. The file README.txt there explains how to find the
source distribution for the library you are interested in.
Here's a short description of each package you will find in this
This is a port of the official RCS v5.7.13 source to MS-Windows. I
did this port because the existing GnuWin32 port was broken: any RCS
command that required running another program as a subprocess (e.g.,
rcsdiff) would either crash or produce an error message, due to an
unhandled problem in the Windows versions of the spawn* library
This is a Windows port of the `flip' utility, which converts newline
format between Unix LF and DOS/Windows CR-LF conventions. Its home
page is http://packages.debian.org/sid/flip. I like this utility
better than unix2dos/dos2unix, because (a) it's a single program,
(b) it doesn't try to convert character sets, (c) it changes files
in-place while keeping their time stamp intact, and (d) it keeps its
claws off any binary files, so it's safe.
This is a Windows port of the GNU Texinfo package, version 4.13a.
My reasons for making this port are (1) the makeinfo.exe available
from GnuWin32 crashes for any non-trivial Texinfo source; and (2)
info.exe refuses to work on Windows because no one bothered to make
its terminal display code work on Windows. This port solves both of
This is a Windows port of the ministat program, you can find the
original sources here:
AFAIK, there's no Windows port of this program anywhere. The
program is handy for computing statistics and significance testing
of a series of measurements, e.g. running times of some program (for
A Unix `man' command for Windows. Unlike all the other packages on
this page, this one is not a port. It is a clone of its Unix
namesake, and has absolutely no code common with its cousins. I
wrote it originally as part of the DJGPP project
(http://www.delorie.com/djgpp/), and later updated it to compile
with MinGW and run on MS-Windows as a native Windows program.
If you want to view unformatted man pages, you will have to install
a port of Groff (it is available from this page, see below).
A Windows port of GNU Grep.
The latest port available from GnuWin32 is of version 2.5.4, which
was released in Feb 2009, quite some time ago. Also, it always
annoyed me that color highlighting of Grep matches is not available
on MS-Windows. This port of the latest release 2.10 of Grep fixes
To use Perl-style regular expression, Grep needs to be built with
libpcre, so you have this as a bonus below.
Library of Perl-compatible regular expressions. I needed this to
build Grep capable of "grep -P" mode. (A newer version is available
below, but this one is still required for the ported Grep.)
A Windows port of file 5.09.
The latest GnuWin32 port is of version 5.03, released in May 2009.
It has a subtle bug that breaks libtool, and also a few Windows
specific gotcha's (e.g., try "file NUL" or "file -"). This port of
the latest upstream release fixes those bugs.
Windows ports of, respectively, GMP (the GNU Multiple Precision
Arithmetic library), and p11-kit (a package to load and enumerate
PKCS#11 cryptographic modules). I needed them to build GnuTLS and
wget, but they can be useful on their own right, so I provide them
here. Note that the latest versions of GnuTLS and wget no longer
A Windows build of libxml2 2.7.8.
The available Windows ports are compiled with MSVC, which means they
are not 100% compatible with MinGW. The libxml2 sources include a
JScript configuration script, suitable for running with cscript, and
a bunch of Makefile's to go with it. But it looks like this
suffered some bitrot, and it doesn't support running the test suite,
which was important for me to make sure the build is dependable.
So instead of using this Windows-specific stuff, I configured the
package with MSYS and built it using the Posix configury. The
result passed all the tests.
To compile and link programs against libxml2, you will need to
install libiconv, whose headers and import libraries need to be
available to the compiler and linker. You can find the MinGW port
of libiconv on the MinGW site:
(The libxml2 binaries found here were linked against the
A Windows port of GNU Which v2.20
GnuWin32 does offer a port of this latest version of Which, but it
has a few bugs. This port improves on that one:
. Under -a, it shows the executables in exactly the same order as
the shell would look them up.
. It behaves like on Unix when run by a privileged user.
. Supports home directories both if pointed to by the HOME
environment variable and (if HOME is not set) if pointed to by
the USERPROFILE variable.
. Is more consistent in its support for backslashes and forward
. It fixes a couple of minor bugs.
This second upload fixes a bug whereby 'which' would sometimes crash
when invoked with the -a switch.
A Windows port of Lzip, "a lossless data compressor based on the
The only port of Lzip I'm aware of is the one available from the
Lzip download page, which is of version 1.11, quite old. Here you
have the latest version as of this writing.
A Windows port of xz, lzma, and liblzma.
With many GNU projects starting to use .tar.xz archive as their only
format of tarballs, having this on your development box is really a
A Windows port of bzip2 and of libbz2.
GnuWin32 has only a very old version. MinGW does offer version
1.0.6, but it was built in a way that makes the binaries dependent
on the DLL version of libgcc. This means that anyone redistributing
these binaries would have to also provide the humongous 75-MB source
tarball of GCC, to comply with the GPL license. I think this is
ridiculous, so I made my own port, which is free of this
restriction. While at that, I also fixed a couple of bugs in the
existing ports (e.g., try "bunzip2 -c SOMETHING.bz2 > nul", which is
important for measuring decompression speed, if for nothing else).
Note that bzip2.exe in this port is statically linked with libbz2
library, so it doesn't need the DLL to run -- another advantage.
A Windows port of mairix, a program for indexing and searching email
As far as I know, there are no native Windows ports of mairix
available. I needed it to be able to search my vast email archives
using the Emacs mairix-el package. I only tested this port with the
mbox mail folders, which is all I have, so caveat emptor.
A Windows port of ncurses 5.9. I don't think there's a native
Windows port of this available anywhere. I needed it for Readline
and for Gawk (below), but it should be useful for many other
programs as well. AFAIK, there was never a curses library for
Windows, except for a very old port of PDCurses.
A Windows port of the GNU Readline library. The versions offered by
GnuWin32 are very old. This is the port of the latest release, and
it is built with ncurses, so no Windows-specific hacks were necessary
in the sources.
A Windows port of the OpenSSL package. I needed it for porting XAR
(below), and the build offered by openssl.org seems to be compiled
with MSVC and also it was unclear to me which of the various packages
to install for my needs. So I just built my own.
A Windows port of XAR, the extensible archiver from
http://code.google.com/p/xar/. I'm not aware of any Windows ports of
this available, and I'm not surprised: the code is full of stuff that
is only available on latest Posix systems; porting that was quite a
job. The main reason why you'd be interested in the result is that
it has full support for NTFS security, and can record and restore the
entire NTFS security descriptor of each file, complete with its
owner, primary group, and DACL. (Caveat: use this feature and the
associated -p command-line option with caution: if you don't know
what you are doing, you can easily restore files in a way that will
prevent you from modifying or deleting them.)
This is a Windows build of the GNU MPFR library version 3.1.0 with
the cumulative patches as of 12 Mar 2012 applied. I needed this for
building a development version of Gawk, but I understand many
projects that use extended-precision calculations can use this
(together with GMP, upon which MPFR is built). MinGW, the only
alternative, offers a relatively old port, which is at least partly
dependent on the GCC runtime DLL.
This is version 2.65 of GNU Autoconf configured for use with the MSYS
environment. The MSYS site does not offer a download of this
version, which is needed for configuring GNU Emacs. Unzip the
archive from the root of the MSYS tree (_not_ the MinGW tree!).
This is version 1.11.6 of Automake configured for use with the MSYS
environment. It is required for configuring and building GNU Emacs
from its bzr repository. Unzip the archive from the root of the MSYS
tree (_not_ the MinGW tree!).
This is a Windows port of GNU ID Utils. ID Utils and the
corresponding Emacs front end is an essential part of my Emacs-based
development tool-chain. Without ID Utils, there's no easy way of
finding your ways in a large and complex software project.
Unfortunately, the port available from GnuWin32 is broken and does
not work (mkid emits an error message and quits). So I made my own
Windows port of ID Utils version 3.2d (an interim version that was
only available from alpha.gnu.org in the past, and now deleted even
from alpha.gnu and not available anymore on any GNU site, although
you can still find it on the net if you are persistent enough).
That port was done in May 2005. Later, I upgraded that port using
the user-visible changes from ID Utils 4.5, because I needed ID
Utils to support Java and Lisp, which was not available in v3.2d.
If you wonder why not just port ID Utils 4.6, then you should know
that I found out to my astonishment that 99% of the changes between
4.6 and 3.2d have no user-visible effect. The bulk of the changes
were "portability enhancements". As result of these "enhancements",
the number of files imported from gnulib (in the lib/ subdirectory)
went up from 38 to 143(!), the configury of the package became much
more complex, but the net gain for users in terms of functionality
was almost nil. Needless to say, none of the real problems that
made the Windows port buggy were fixed by these "enhancements"...
So instead of porting ID Utils 4.6, I copied the few changes that
actually contributed to user-visible functionality to the old 3.2d
sources, added to lib/ 3 files that were required for those changes,
fixed a couple more of Windows-related problems (e.g., that `sbrk' is
not available, and therefore "mkid -s" would not display meaningful
memory-usage statistics), and that's what I have now. I call this
version 3.2.99, because its source code base is still largely 3.2
vintage. The ChangeLog file in the top-level directory describes the
Windows-related changes I made in more detail. The file
DIFFS-3.2d-3.2.99.dif shows all the diffs wrt version 3.2d, which
include modifications copied from ID Utils 4.5. I also modified the
Copyright notices of all the old files, to have their years extended
This 2nd upload fixes an upstream bug (only corrected in ID Utils
4.6) whereby "lid -F" would mishandle open-ended ranges like
2000.. or ..200.
This is a Windows port of GNU Findutils 4.2.30. It includes all the
binaries in the original distribution, even those, such as code.exe,
frcode.exe, and bigram.exe that you are not supposed to need. I
made this port because the GnuWin32 port of v4.2.20 had several
grave problems: find.exe was abysmally slow, xargs.exe didn't work
at all, and neither did locate.exe. This port includes updatedb.bat,
which is a stripped-down replacement for the original updatedb Unix
shell script. Please note that xargs.exe in this distribution has
some issues that cause it to fail sometimes. But find.exe and
locate.exe work flawlessly for me for several years.
This fifth upload solves a bug whereby 'find' would sometimes
infloop when some of the directories it traverses are symlinks to
other directories. The solution is to never descend into a
directory that is a symlink (i.e., this port always behaves as if
the -P option was specified).
As an additional bonus, this port includes 64-bit binariesin a
separate findutils-4.2.30-4-w64-bin zip file, prepared by Erwin
Waterlander <firstname.lastname@example.org>. If you are running a 64-bit
Windows version, you may wish to use these 64-bit executables, as
they are about 5 times faster than the 32-bit ones.
This is a Windows build of the latest version 1.2.8 of the venerable
zlib library. MinGW provides this version also (under the name
libz-1.dll), but it depends on GCC's libgcc_s_dw2-1.dll, which has
the same problems as described under bzip2 above, and in addition
tends to crash programs at exit (due to a grave bug in the libgcc
DLL). So I provide here a build that don't have this problem.
You should be able to replace your older zlib1.dll with this
version, as the latter is binary-compatible with the old one.
This second upload fixes a problem with the zlib.pc file which would
fail compilation and linking against zlib in packages that use
pkg-config to determine the necessary compilation and link flags.
A Windows build of the latest version 4.0.3 of TIFF library and
Available ports of this library are way outdated.
This is a Windows build of the latest version 2.40.1 of librsvg, the
library for manipulation, conversion, and viewing of SVG images.
The only other existing port of librsvg that is known to me is from
the GTK project, but is outdated, uses much more dependencies that
is strictly needed on Windows, and also involves a small "DLL hell",
since various dependencies need different versions of the same
library (freetype and libpng). By contrast, this port requires only
the minimal set of dependencies (see below), and only one version of
This second upload fixes a problem with packaging the binary
archive, which could result in librsvg not working unless installed
Pango is a library for laying out and rendering of text, with an
emphasis on internationalization. This is a Windows build of the
latest version 1.36.1. It is required for librsvg (see above).
This second upload fixes a problem with packaging the binary
archive, which could result in Pango not working unless installed in
This is a Windows build of the latest version 1.12.16 of Cairo, a 2D
graphics library with support for multiple output devices. This
minimal build provides only the win32 back-end and a minimal set of
"surfaces" (including SVG) which are are needed for librsvg (above).
A Windows build of the latest version 0.32.4 of Pixman, a library
that provides low-level pixel manipulation features. It is required
for Cairo, and thus needed for librsvg (above).
This is a Windows build of libcoroco, a standalone CSS2 parsing and
manipulation library. It is required by librsvg (above).
The Gdk Pixbuf is a toolkit for image loading and pixel buffer
manipulation. This is a Windows build of the latest version 2.30.2
of Gdk Pixbuf. It is needed for librsvg (above).
A Windows build of the latest version 2.38.2 of Glib, a set of
low-level libraries useful for providing data structure handling for
C, portability wrappers and interfaces for such runtime
functionality as an event loop, threads, dynamic loading and an
object system. It is required for librsvg (above).
LZO is a data compression library which is suitable for data
decompression and compression in real-time. This is a Windows build
of its latest version 2.06. This library is required for one of the
components of Cairo (above).
If you use git (msysGit) on Windows, you will have merge problems
when merging from branches that modified ChangeLog files. This
merge driver solves those annoying problems, but msysGit
distribution doesn't provide it for some reason, and there doesn't
seem to be a build-ready source archive available anywhere.
Building out of gnulib git repo, where the sources live, on a
Windows system is not for the faint at heart. So here you have the
package, complete with sources and binaries. See the file
README.txt for installation and configuration instructions.
This second upload fixes a bug whereby the merge would always
produce a file with DOS-style CR-LF end-of-line (EOL) format, even
if the original files used Unix EOLs. This is an upstream bug,
fixed in this port.
This is a Windows port of Hunspell v1.3.2. Hunspell
(http://hunspell.sourceforge.net/) is a spell-checker with support
for peculiarities of many languages and with Unicode character
codepoints support out of the box. To the best of my knowledge,
there's no other Windows port of Hunspell. In addition, this port
includes fixes for bugs, both Windows-specific and
platform-independent. The result works well for me as the back-end
of the spell-checking features in Emacs. The interactive
curses-based user interface also works, although (due to limitations
of the ported ncurses) only characters in the current ANSI codepage
The binary distribution includes dictionaries for US English and UK
English. You can find the dictionaries for other languages on the
Internet; install them into share/hunspell sub-directory of your
Hunspell installation directory.
This third upload fixes a subtle issue with running Hunspell under
Emacs 24.4 and later, whereby the default dictionary would not be
set correctly during initialization. All the previous bugfixes are
also included, such as failure to rename the temporary file with the
text corrected by spell-checking to the original name of the file
submitted to the speller, and a couple of other minor bugs reported
lately to the Hunspell bug tracker.
This is a Windows build of the latest version 5.1.0 of the giflib
library. Gnuwin32 has only an ancient version 4.1.4, and I didn't
find any Windows port of the 5.x series. (The 'lua-files' project
seems to have a binary, but no sources.) The few problems that I
found and corrected while testing the previous port were accepted
upstream, so this release builds with MinGW out of the box; thus no
This is a Windows build of the latest version 1.6.12 of libpng, the
official PNG image library. It includes several important security
and stability fixes, and is binary-compatible with the previous
1.6.x releases, so you are well advised to upgrade.
As GnuWin32 libpng ports are very old, and even the GTK site falls
behind, there's a need to have the latest PNG library available for
Windows. So here you have that.
This is a Windows build of the latest version 9a of jpegsrc, the
IJG's library for JPEG image compression.
Like with libpng, it's high time Windows users had the latest JPEG
library available to them.
This is a Windows build of an older version 8d of jpegsrc, the IJG's
library for JPEG image compression. It is here for those users who
have binaries linked against this older version (since the MSYS2
project doesn't yet offer v9a).
This is a small library to encrypt and decrypt a block of data.
This is needed for Guile and GDB below.
This is a Windows build of the Boehm-Demers-Weiser garbage collector
(a.k.a. "Boehm GC"). It is used by Guile below. I'm not aware of
any Windows binaries of this library. The library was built with
Win32 threads (_not_ pthreads!), so if you need to use it with a
package that uses pthreads, these binaries are not for you.
This is a Windows port of libunistring 0.9.3, a library that
provides functions for manipulating Unicode-encoded strings, and for
manipulating C strings according to the Unicode standard. The MinGW
site offers a binary distribution of the same version, but it is
severely broken on Windows: it cannot be used after setting a
non-default locale by calling 'setlocale'. This port fixes the bugs
which cause this breakage, and which render Guile (below) unusable
for i18n features.
This is a Windows build of the latest version 3.1 of the libffi
library, which provides a portable, high level programming interface
to various calling conventions. It is required for Guile below and
also for librsvg above.
This is a Windows port of the latest Guile 2.0.11. It is heavily
patched wrt the upstream sources, and supports all features that can
be reasonably supported on MS-Windows. One notable exception is
threads: this port was configured without threading support, because
Guile built with threads (using the Windows port of pthreads) is
unusable: it hangs or crashes in many simple and trivial programs,
and cannot even compile its own Scheme files. The Guile binary and
library in this distribution pass all the tests in the test suite.
I'm not aware of any reliable Windows port of Guile anywhere.
If you install this anywhere but d:/usr, you will need to set 2
where "x:\foo" is the directory from which you unzipped the Guile
binary zip file.
This 2nd upload fixes a couple of minor problems in the code, and
also includes DLL shared libraries in addition to static libraries.
This is a Windows build of libgsf, the GNOME Structured File
Library, a library for reading and writing structured file formats.
It supports reading text, XML, compressed data, MS OLE2, metadata,
and OASIS Open Document streams. It is required by libpst, but can
also be useful on its own, in particular for porting GNOME packages.
This is a Windows port of the latest release 0.6.63 of libpst, a
library and a set of utilities to read and convert Outlook *.pst
files. It can convert email messages in the *.pst files to mbox or
MH or KMail files, and Contacts to vcard or ldif formats. (I only
tested and used the conversion to mbox files, including their
display in Emacs.) The port includes a few Windows specific patches
to fix display of non-ASCII characters on the Windows console.
I'm not aware of any recent Windows port of this package. It was
useful for me, so I'm guessing it might be useful to others.
This is a Windows build of version 4.2 of the GNU ASN1 library. A
port of a newer version 4.9 is available here, but I'm keeping this
because some packages here were linked against this older version.
A Windows build of version 2.7.1 of the Nettle library. A port of a
newer version 3.3 is available here, but I'm keeping this because
some packages here were linked against this older version.
A Windows port of Libidn, a package designed for internationalized
string handling based on the Stringprep, Punycode and IDNA
specifications defined by the IETF Internationalized Domain Names
(IDN) working group, and used for internationalized domain names.
Used by Wget for correct handling of internationalized names of
hosts and URLs.
A Windows port of GnuTLS 3.2.11. Needed to build wget (below), and
is also useful for Emacs. A port of a newer version 3.4.15 is
available here, but I'm keeping this because some packages here
(wget) were linked against this older version.
Version 8.36 of the library of Perl-compatible regular expressions.
I needed this to build wget (below).
The C++ bindings of this library is provided only as a static
library, to avoid dependency on libstdc++ DLL.
This is a C library for handling the Public Suffix List, a list of
known domain suffixes, such as .com and .co.uk, under which Internet
users can register domain names. This library is used by wget
(below) for checking cookies. I'm not aware of a Windows port of
A Windows port of wget 1.16.1.
The GnuWin32 port is of version 1.11.4, which was released a few
years ago. This is the latest released version, as of this writing
(Dec 2014). It was configured and built with as many optional
features as practical on Windows.
A Windows port of the latest release 1.22.3 of GNU Groff.
I successfully used Groff-1.19.1 from GnuWin32 for several years.
However, the latest man pages emit more and more error messages,
because Groff 1.19 doesn't support several new roff features.
GnuWin32 offers version 1.20, but it was released in Jan 2009, and
at least its source GnuWin32 distribution suspiciously lacks several
Therefore, I built the latest release 1.22.3 using MSYS and MinGW,
and here you have the result.
Note: this distribution was built without Ghostscript being
installed, so the HTML back-end (grohtml) and the PDF formatter
(pdfroff) were not tested, and might even not work due to some
missing file or font.
This third upload fixes subtle problems with using Windows-style
file names with backslashes on Groff command lines, and also allows
to install Groff anywhere without setting GROFF_BIN_PATH in the
environment. The changes to fix that were accepted upstream, so the
next release will have them out of the box.
This is a MinGW build of the latest version 0.28 of the pkg-config
utility. The GTK site, which previously offered a slightly outdated
version 0.26, no longer does that, and I'm not aware of any other
Windows port of pkg-config. So here you have the latest version.
This is a MinGW build of the latest version 3.5.11 of the libXpm-noX
DLL. The last version offered by GnuWin32 is the ancient v3.5.1,
and later versions are not available in a single binary package that
includes everything needed to build programs (like Emacs) against
libXpm; instead, you need to collect files from various binary and
source packages. Here you have everything together, and as a bonus
this includes a small program cxpm for checking validity of XPM
This second upload fixes a few problems in the header files that go
with the library.
A Windows build of the latest version 4.1.4 of Gawk. This was linked
against Readline, and so has a fully functional command-line editing
interface, including command history, when using the Gawk debugger.
Also, this port was linked against the MPFR library, and so supports
arbitrary-precision floating-point arithmetics, when invoked with the
-M or --bignum command-line options. See the node "Gawk and MPFR" in
the manual for the details. The new dynamic extensions feature is
also supported, see the node "Dynamic Extensions" in the manual.
Several ready-to-use extensions, in the form of DLL files, are
bundled; you will find them in the lib/gawk/ directory of your Gawk
Last, but not least, this version supports network and co-routines.
This is a Windows build of version 4.9 of the GNU ASN1 library, a
highly portable C library that encodes and decodes DER/BER data
following an ASN.1 schema. It is used by GnuTLS for reading
A Windows build of the latest version 3.3 of the Nettle library, a
low-level cryptographic library used by GnuTLS and other packages.
A Windows port of GnuTLS 3.4.15, the latest stable release of
GnuTLS. Needed to build wget (below), and is also useful for Emacs.
Unlike a previous port of GnuTLS 3.0.9, this port was built
without the PKCS#11 library, because that one is only needed for
authentication using smart cards, for which on Windows you will have
to rebuild GnuTLS with the corresponding DLLs for hardware support.
Therefore, there's no p11tool.exe in the binary distribution.
Another change is that this version comes with Guile bindings, so if
you have Guile installed, you will be able to use GnuTLS from Guile
The C++ bindings of GnuTLS are only provided as a static library,
since a DLL built for that is dependent on the libstdc++ DLL, which
will then require me to provide the whole GCC source tarball here,
and might also get you into a DLL hell if your GCC version is
different from mine. Sorry.
This is a MinGW build of the latest version 4.2.1 of GNU Make.
There are 2 different binary zip files here: with and without Guile
support. The zip without Guile is much smaller, so if you are sure
you won't need Guile scripting in Makefiles any time soon, I
recommend to install the "without-guile" version. The sources for
both these binary zips are in make-4.2.1-w32-src.zip.
For the "with-guile" version, if you install it anywhere but d:/usr,
you will need to set the following 2 environment variables:
where "x:\foo" is the top directory of the Make installation, under
which you have the tree of the unzipped files. (If you used
unzip.exe to unzip the distribution, the top directory is the one
from which you ran unzip.exe.) These variables are required for the
Guile support in Make to be able to initialize itself.
This is a Windows build of Zstandard v1.1.1, a real-time compression
algorithm, providing high compression ratios. Included are a couple
of programs to compress and uncompress files, and a library that
allows including zstd compression capabilities in applications.
This is a Windows build of the latest version 3.1 of GNU 'gperf'
perfect hash function generator utility. The only other Windows
port of 'gperf' is available from the GnuWin32 site, which offers an
ancient version 3.0.1.
LZ4 is a fast, scalable, lossless compression algorithm. This is a
Windows port of the latest release 1.7.5 of LZ4. It is needed for
libarchive (below), but is also useful on its own right. I'm not
aware of any Windows port of this package.
A Windows port of the latest release of libarchive and of bsdtar,
bsdcpio, and bsdcat programs. The latter is a relatively new
addition to the package.
GnuWin32 has an old version 2.4.12 released in 2008. MinGW offers a
newer version 2.8.3, but it is still old (7 years ago). Even the
MSYS2 project offers only v3.1. This is the port of the latest
release, and it fixes a few upstream bugs.
This latest release of bsdtar is really wonderful: it supports most
every format of compressed archives on Earth. gzip, xz, lzma, zip,
rar, 7-zip, pax, rpm, even CAB! You name it, it supports that.
More importantly, it does all compression and decompressing in
memory, without invoking external programs, so it's faster (but
still uses the same algorithms and code via the corresponding
libraries it links against). It also supports UTF-16 file names on
Windows, therefore you can now unpack archives created in other
Windows locales, and still have the files unpack under correct
In general, the degree of Windows support is very good in this
package, in stark contrast to GNU Tar, whose current maintainers are
much less friendly to Windows support.
A Windows build of the latest version 8.0 of GDB. The MinGW site
offers only an outdated version 7.6.1, which was on top of that
built without Python support. Here you have the latest release that
supports Python and Guile.
One caveat: you will have to download and install Python 2.6.6 from
https://www.python.org/download/releases/2.6.6/; gdb.exe in this
archive depends on the Python library and DLL, and will not run
without it being available on your system. (I don't want to
distribute Python binaries, because then I would also need to
provide the Python sources from this site, which is way too much.)
The NEWS file in 'share/doc/gdb-VERSION/' describes all the new and
improved features in this release.
Starting with GDB 7.10, the data files in this port are installed
into a version-specific directory 'share/gdb/VERSION/'. This is so
you could keep previous versions of GDB renamed as, say,
gdb-x.y.z.exe, and still be able to invoke them and let them find
their data files. If this is the first GDB port you are installing
that uses this structure, I suggest to move the data files of the
previous version -- everything under share/gdb/ -- into a version
specific subdirectory share/gdb/X.Y.Z/, where X.Y.Z is the version
of GDB you had before this one.
Guile dependencies are included in this binary distribution.
If you install this anywhere but D:\usr, you will need to set 2
where "x:\foo" is the top directory of the GDB installation, under
which you have the tree of the unzipped files. (If you used
unzip.exe to unzip the distribution, the top directory is the one
from which you ran unzip.exe.) These variables are required for the
Guile support in GDB to be able to initialize itself.
If GDB complains at startup about being unable to load Python
modules, you may need to set the PYTHONPATH environment variable to
point to your Python 2.6.6 installation, like this:
(assuming you installed Python in C:\Python26).
This port also supports TUI, the Text-mode User Interface; invoke
GDB with the -tui command-line option to activate it. Note that
this mode should only be used when invoking GDB from the shell
prompt, not, for example, when invoking GDB as a subprocess of
This is a Windows build of the latest version 6.4 of the GNU Texinfo
package. Note that makeinfo was reimplemented in Perl starting from
version 5.0 version, which made it about 18 times slower. Starting
with this version, Perl extensions in C can used, which speed up
makeinfo by 40%, but these extensions make makeinfo dependent on a
specific binary version of Perl you should have installed, and
create licensing issues. Therefore, the binary distribution of this
port doesn't include the extensions, and you may wish keeping
makeinfo.exe from version 4.13 around for the time being. If you do
want to use this new makeinfo, you will need to install Perl and
make sure it is on PATH.
This is a Windows build of the latest version 2.29 of the GNU
Binutils. The latest Binutils offered by the MinGW site lag behind
the upstream releases; here you have the latest one. In addition to
bringing the latest features, this build supports both the 32-bit
i386 and the 64-bit x86_64 targets, even when running on a 32-bit
OS. This allows using these utilities with 64-bit binaries on
32-bit versions of Windows. Note that binutils are built in a
separate directory, build-binutils-X.YY, so if you are looking for
the products of the build, like config.log and the Makefile's, in
the source zip file, look in that directory, not in binutils-X.YY.