From 1aaee14cab6ed427fe6c8610d1eb60e66c861318 Mon Sep 17 00:00:00 2001 From: Arch Librarian Date: Thu, 14 Jul 2005 13:04:29 +0000 Subject: 2001-09-30 Tor Lillqvist Author: tml Date: 2001-09-29 21:05:25 GMT 2001-09-30 Tor Lillqvist Changes for "pure" Win32 (without Cygwin or similar) support. The most important differences compared to pkg-config on Unix are: We don't use hardcoded PKGLIBDIR paths but deduce the installation prefix at runtime. Use the normal GLib DLL, not a private copy. Yes, this does introduce a circular dependency, but that can be worked around. * README.win32: New file. * configure.in: Check for Win32. If so, define USE_INSTALLED_GLIB, and don't configure in the included glib-1.2.8. Set GLIB_CFLAGS and GLIB_LIBS assuming that GLib is installed in the same location pkgconfig will be. Check for dirent.h, unistd.h and sys/wait.h headers. * Makefile.am: If USE_INSTALLED_GLIB, use the GLIB_* values set above, and don't make in the glib-1.2.8 subdir. * autogen.sh: Use perl -p -i.bak, works better on Win32 (and Cygwin). * *.c: Conditionalize inclusions of unistd.h and sys/wait.h. * findme.c: Define X_OK on Win32 if necessary. * parse.c * popthelp.c: Minor Win32 portability ifdefs. * parse.c: No need to include . * pkg.c: Don't hardcode PKGLIBDIR, but use g_win32_get_package_installation_directory() to deduce it. (scan_dir): Make a temp copy of dirname with potential superfluous trailing slash removed. The Win32 opendir implementation doesn't always like those. * pkg.h: If USE_INSTALLED_GLIB, include instead of partial-glib.h. * popt.c (execCommand): Don't compile on Win32. * poptconfig.c (configLine): Don't bother with the "exec" stuff on Win32, too complex to port, at least for now. (poptReadDefaultConfig) Don't bother compiling on Win32, this function isn't even called. --- README.win32 | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 README.win32 (limited to 'README.win32') 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. -- cgit v1.2.1