summaryrefslogtreecommitdiff
path: root/README.win32
diff options
context:
space:
mode:
Diffstat (limited to 'README.win32')
-rw-r--r--README.win3241
1 files changed, 41 insertions, 0 deletions
diff --git a/README.win32 b/README.win32
new file mode 100644
index 0000000..ef0f5c1
--- /dev/null
+++ b/README.win32
@@ -0,0 +1,41 @@
+pkg-config on Win32
+===================
+
+This file describes pkg-config for "pure" Win32. (With Cygwin,
+pkg-config 0.8.0 builds fine right out of the box. Cygwin is just
+another Unix variant, as far as pkg-config is concerned.) I hesitate
+to call this "pure" Win32 target mingw, as the ideal would be for
+pkg-config to be usable also by MSVC users. This will require the
+addition of an option to print out the flags in the form used by MSVC,
+however, which isn't done yet. Anyway, libraries like GLib, Pango, GTK
+that are described by pkgconfig files definitely are supposed to be
+usable both for MSVC users and gcc ("mingw") users.
+
+There should be no compile-time paths built into the executable of
+pkg-config. Likewise, not in the libraries it describes either.
+
+We use one optional entry in the Registry: The path to the pkgconfig
+installation prefix. (This can be either user-specific (in
+HKEY_CURRENT_USER) or for the whole machine (in HKEY_LOCAL_MACHINE).)
+If pkg-config.exe is invoked from the "bin" subdirectory of a
+directory with a lib/pkgconfig subdirectory, no Registry entry is even
+needed, as pkgconfig (actually, the
+g_win32_get_package_installation_directory() function in GLib) figures
+out the directory by itself.
+
+The intention is that a developer package for some library being
+desribed by a .pc file is installed using some simple installer, that
+edits the user-selected installation directory into the .pc file
+before storing the .pc file where pkg-config can find it.
+
+On Unix, pkg-config is built using its own copy of GLib 1.2.8. On
+Windows, we use the normal GLib available for Windows (1.3.9
+currently). Yes, this does introduce a circular dependency, but that
+can be worked around. The circular dependency only appears if one uses
+the configure mechanism to build GLib. GLib's configure script checks
+for pkg-config. pkg-config depends on GLib. Thus, starting from
+scratch, with no GLib and no pkg-config, using configure, there would
+indeed be a Catch-22 situation. However, GLib can be built just fine
+using the manually written makefiles for mingw or MSVC. And if
+somebody does want to build GLib on Win32 using configure, she can
+first install a prebuilt pkgconfig.