GnuWin32 – GNU on Windows

As we all know, all the windows user are cursed by proprietary tools. It’s tough to find standard tools which are available on Linux.

I was looking for a code indenting tool on Windows XP. The obvious choice is GNU indent, I have used it on Fedora. Thanks to GnuWin32 which provides ports of gnu indent with an open source license, on Windows.

GnuWin32 provides ports of tools with a GNU or similar open source license, to MS-Windows (Microsoft Windows 95 / 98 / ME / NT / 2000 / XP / 2003 / Vista / 2008).

The GnuWin32 project provides Win32-versions of GNU tools, or tools with a similar open source licence. The ports are native ports, that is they rely only on libraries provided with any standard 32-bits MS-Windows operating system, such as MS-Windows 95 / 98 / ME / NT / 2000 / XP / 2003 / Vista. Native ports do not rely on some kind of Unix emulation, such as CygWin or Msys, so that there is no need to install additional emulation libraries.

At present, all developments have been done under MS-Windows-XP, using the MinGW port of the GNU C and C++ (GCC) compilers. Utilities and libraries provided by GnuWin32, are used and distributed with packages such as GNU Emacs and KDE-Windows.

The packages that have been ported, fall into four broad categories:

  • GNU utilities: bc, bison, chess, compface, cpio, coreutils (fileutils, sh-utils, stat, textutils), diffutils, doschk, ed, findutils, flex, gawk, gdbm, gcal, gengetopt, gettext, gperf, grep, groff, gsl, gzip, hello, help2man, iconv, jwhois, less, m4, miscfiles, patch, readline, regex, rx, sed, sharutils, tar, texinfo, tree, units, unrtf, wget, which
  • Archivers and compressors: arc, arj, bsdtar, bzip2, gzip, lha, libarchive, unzip / zip, zlib
  • Other utilities: byacc, cpuid, cygutils, file, ntfsprogs, openssl, pcre, popt, re2c, rpl, sgrep, tree, x86info
  • Graphics packages: asciichart, compface, gd, jpeg, jbigkit, liburt, libungif, libpng and png utilities, libwmf, netpbm, piechart, plotutils, tiff, xpm, zimg
  • Textprocessing- and postscript-related packages: a2ps, barcode, bm2font, deroff, dvidj, enscript, freetype, grap, gri, groff, indent, libxml, nenscript, pdflib, polyglotman, psutils, scribe2latex, src-highlite, t1lib, t1utils, troff2latex, ttf2pt1, unrtf
  • Mathematical and statistical packages: bc, calc, crypt, fdlibm, gsl, units

Some other characteristics of GnuWin32 are:

GnuWin32 comes with a very nice Installer; something of which most of the windows users are accustomed. GnuWin32 always provides the source, which usually is also required by the license of the original package, with any changes from the original code in the form of a diff. GnuWin32 always provides the documentation in a ‘compiled’ form, i.e. as PDF, HTML, PS, DVI, CHM, and HLP. GnuWin32 provides import libraries for MSVC and BCC wherever possible.


In general, static and import C libraries from GnuWin32 should be interoperable with other libraries compiled with MinGW, MSVC and BCC, although the options with which the library files have been compiled might differ; in particular, most libraries, and binaries, from GnuWin32 have been compiled without debug option. C++ libraries from different compilers are not in general interoperable.


The patches to the source code are given in unified diffs, usually in files ending in -diffs or .diff. In particular, for packages whose source is infrequently updated, we try to keep track of the patches for FreeBSD, NetBSD, OpenBSD, Debian, Fedora, Red Hat, and Suse.

By Shishir Sharma

Shishir Sharma is a husband, hacker, biker. Bachelor of electronics & communication engineering by training. He is a visionary, mentor, problem solver, technology enthusiast. He can speak in Javascript, Ruby, Python, PHP; Fluent in C, C++. He is a moderator at LUG-Jaipur. He loves action movies and FPS games.

4 replies on “GnuWin32 – GNU on Windows”

Hi, I found your blog on this new directory of WordPress Blogs at I dont know how your blog came up, must have been a typo, i duno. Anyways, I just clicked it and here I am. Your blog looks good. Have a nice day. James.

The path of gsl library in MinGW isc C:MinGWmsys.0homegslincludegsl. But while compiling the program it is showing an error as:
linen25:test.c: fatal error:gslgsl_math.h cannot be included.
No such file or directory.

I would like to know how we can include gsl or gnuwin in mingw? If anybody knows give a reply.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.