GTK+ and GIMP for Windows

Downloads

Tor Lillqvist (tml)
GIMP Pages -- Windows port

Redistribution on other web sites, CD-ROM etc

You are welcome to redistribute the GIMP on other web sites, CD-ROM, and other media. You don't have to ask for permission. That's one of the points of Free Software. One important thing that the GNU license requires is that you must also redistribute the source code. This means the gettext, GIMP, GLib, and GTK+ (1.3.0 or 2.2.4) sources from this site (ftp.gtk.org is the same site as this).

Installer

There is a GIMP installer that contains the appropriate stuff from these zipfiles (or relatevely fresh previous versions) at http://www2.arnes.si/~sopjsimo/gimp/. That installer is created by Jernej Simoncic, so please ask him about problems with it.

Prebuilt binary packages, developer packages, and source

These packages are for experienced GIMP and Windows users, and for people who develop software that use GLib and/or GTK. The binaries (DLLs and executables) in these packages are not for the Cygwin environment. They use the MSVCRT runtime. The files included in these zip archives are not compatible with, or drop-in replacements for, the stuff used in the GIMP for Windows from December 2000.

(For Cygwin builds of GTK etc, check out Masahiro Sakai's site.)

Below are runtime and developer packages. The runtime packages include DLLs, auxiliary executables, and configuration files needed at runtime. The developer packages include import libraries, headers, developer tool executables, pkg-config files, and documentation.

Unzip those of the files below that you need into some directory of your choice. Let's call that directory top. Then add top\bin and top\lib to your PATH. How to do this depends on your Windows version. For NT and 2k, use the Control Panel's System tool.

Install in a fresh location!

Because many of the DLLs now install in a different location (in the bin subdirectory instead of lib, because of changes in GNU libtool), in order to avoid much confusion, it is best to install the stuff from the zipfiles below in a totally new directory. Remove the old installation location's bin and lib directories from your PATH.

pkg-config

pkg-config is a replacement for the glib-config and gtk-config scripts that previously were used on Unix. (No such scripts were included in my Windows port, though.)

You can use the pkg-config command in your makefiles like this:

GLIB_CFLAGS=`pkg-config --cflags glib-2.0`
GLIB_LIBS=`pkg-config --libs glib-2.0`
...
foobar.exe : $(FOOBAR_OBJS)
	   $(CC) -o $@ $(FOOBAR_OBJS) $(GLIB_LIBS)

Etc. That only works with a Unixish Make and especially with a command interpreter (shell) that understands backquotes. (I hope you notice those backquotes in the above Makefile snippet, and understand what they mean. If you don't, educate yourself.)

I advise not to use a directory with spaces or other funny character in the name as top. Otherwise you will get problems when using pkg-config output in makefiles.

If you are a MSVC user and use nmake, it's a bit more complicated. nmake (or the standard Windows command interpreter it uses, command.com or cmd.exe) doesn't support backquotes. You must run pkg-config manually with the switch --msvc-syntax, and paste its output into your nmake makefile.

On NT/2k/XP, it is possible to have nmake create temporary files containing the output from pkg-config, and use those in a nmake makefile like this:

foobar.exe: foobar.obj __gtk_libs.mak
	cl -MD foobar.obj @__gtk_libs.mak
	@del __gtk_libs.mak

foobar.obj: foobar.c __gtk_cflags.mak
	cl -MD -c @__gtk_cflags.mak foobar.c
	@del __gtk_cflags.mak

__gtk_cflags.mak:
	pkg-config --msvc-syntax --cflags gtk+-2.0 >$@

__gtk_libs.mak:
	for /F "delims==" %i in ('pkg-config --msvc-syntax --libs gtk+-2.0') \
		do echo /link %i >$@

Note in the above makefile fragment that the __gtk_libs.mak file is created using the for /F syntax available only in the cmd.exe command interpreter on NT/2k/XP. These obscure acrobatics are needed because we want __gtk_libs.mak to contain a line that starts with /link, but pkg-config cannot output the /link flag itself as a cl command line might contain several invokations of pkg-config --libs. We cannot put the /link on the cl command line that links foobar.exe either, as cl then gets confused and runs the linker with a command file that on one line has @__gtk_libs.mak, and link.exe doesn't like that. Sigh.

Downloadable files

Here is a list of the files downloadable from this site, and links to dependencies downloadable from other sites.

  • GNU libiconv for Win32. Both runtime and developer files. GNU Libiconv is an implementation of iconv. GLib uses libiconv, so you will need this. To install, unzip in the top directory.

  • libiconv-1.9.1.tar.gz. Corresponding sources. (Identical as on the GNU ftp site.)

  • gettext-runtime-0.13.1.zip. GNU gettext runtime for Win32, containing the GNU internationalisation library (libintl) and support files. GLib uses libintl, so you will need this. Unzip in the top directory.

  • gettext-tools-0.13.1.zip. GNU gettext tools for Win32, containing the msgfmt program and others. Msgfmt is needed if you want to recompile message catalogs. The other commands can be used to manipulate message catalogs in other ways.

  • gettext-0.13.1.tar.gz. Sources for GNU gettext (both -runtime and -tools). (On this site, to satisfy strict interpretation of GPL requires. Identical as on the GNU sites.)

  • glib-2.2.3-20040116.zip. Runtime package for a GLib snapshot from 2004-01-16. I distribute this snapshot version because it contains some important bug fixes, and it seems that there won't be an GLib 2.2.4 release anytime soon. Requires libiconv and gettext-runtime.

  • glib-dev-2.2.3-20040116.zip. Corresponding developer package, i.e. headers, import libraries and documentation.

  • glib-src-2.2.3-20040116.zip. Corresponding sources.

  • pkgconfig-0.15.zip. Pkg-config is a neat program that is useful in makefiles etc. It manages compile and link flags. Requires GLib 2.x.

  • Sources for pkg-config (On this site, to satisfy strict interpretation of GPL requirements. The same file as available from www.freedesktop.org)

  • gtk+-1.3.0-20030717.zip . Runtime package. This is the gtk-1-3-win32-production branch of GTK+. The GTK+ version is 1.3.0, which is quite old. The GTK+ API had not yet changed much at that time, it is still mostly like GTK+ 1.2.7. Requires GLib 2.x.

  • gtk+-dev-1.3.0-20030115.zip. Corresponding developer package.

  • The source for this GTK+ version is in gtk+-1.3.0-20030717-src.zip. There is no other distribution of the source to this GTK+ branch. You can get it from (anynymous) CVS, though, use the gtk-1-3-win32-production branch of the gtk+ module.

  • dirent.zip. The public domain <dirent.h> implementation from mingw, separately packaged for MSVC users. Not directly related to GLib, but here for the convenience of MSVC users, as there used to be a dirent wrapper using #defines in earlier GLib versions for Win32. Needed only by developers that use MSVC.

  • gimp-1.2.5-20030729.zip. GIMP 1.2.5 plus one small patch. Requires GLib 2.x and GTK+ 1.3.0. Some plug-ins require zlib, libpng, libjpeg, libtiff and freetype.

  • gimp-dev-1.2.5.zip. Corresponding developer package, i.e. libraries and headers for developing and building GIMP plug-ins.

  • GIMP sources. If you redistribute the GIMP executables, you must also redistribute this file.

  • Sources to the unofficial plug-ins included in the GIMP zipfile.

  • Zlib 1.1.4-1, libpng 1.2.4-1, libjpeg 6b-1, libtiff 3.5.7 and FreeType2 2.1.4. As ported and packaged for Windows by the GnuWin32 people. These are used both by GIMP, and by GTK+ 2 below (except FreeType2, which is used just by GIMP's freetype plug-in and Pango's PangoFT2 engine). The "bin" packages are the runtime ones, the "lib" packages are the ones needed by developers.

    Note that the previous binary builds of GIMP and GTK 2.x used an older version of the GnuWin32 zlib, libjpeg and freetype ports, so you need to download the current ones from the link above.

    At least those versions of the GnuWin32 packages available when writing this are inconsistent in their use of each other's DLLs. For instance, libpng.dll wants zlib.dll, while the zlib package actually provides zlib-1.dll. Similarily, libtiff.dll wants libjpeg.dll, while the libjpeg package provides jpeg-62.dll. Just copying zlib.dll to zlib-1.dll, and jpeg-62.dll to libjpeg.dll seems to work fine.

  • gimp-gif-1.2.5.zip. The gif plug-in. Covered by the Unisys LZW patent, so don't download this if you live in a country where the patent is still valid and you don't have a license!

  • xpm-nox-4.0.3-20020617.zip A version of the Xpm library that does not use X. Used by the xpm plug-in in GIMP.

  • xpm-nox-dev-4.0.3-20020112.zip, corresponding developer package.

  • gimp-pspi-1.0.2-src.zip. Sources for the pspi plug-in.

The packages below are GTK+ 2.2.x and its dependents. GIMP 1.2.x does not use these.

The packages below are used by GIMP 2. GIMP 1.2.x does not use these.


Valid HTML 3.2!