mirror of
https://gitlab.freedesktop.org/pkg-config/pkg-config.git
synced 2026-01-02 19:00:07 +01:00
Author: tml Date: 2002-09-12 20:47:07 GMT 2002-09-13 Tor Lillqvist <tml@iki.fi> * Makefile.am (USE_INSTALLED_GLIB): Seems that the automake version used by Havoc doesn't recognize pkg_config_CFLAGS and pkg_config_LDFLAGS, thus failing builds on Win32 directly from the tarball. Set included_glib_includes and pkg_config_LDADD instead, then, like in the !USE_INSTALLED_GLIB branch. * findme.c (X_OK): If X_OK undefined, define as 1, always, not only if G_OS_WIN32, which is never defined here. Fixes a corner case on Win32 with MSYS and mingw where configure as included in the release tarball for some reason doesn't find unistd.h.
52 lines
2.6 KiB
Text
52 lines
2.6 KiB
Text
pkg-config on Win32
|
|
===================
|
|
|
|
This file describes pkg-config for "native" Win32. (On Cygwin,
|
|
pkg-config builds fine right out of the box. Cygwin is just another
|
|
Unix variant, as far as pkg-config is concerned.) I don't call this
|
|
"native" Win32 target MinGW, as pkg-config on Windows is supposed to
|
|
be useable also by MSVC users.
|
|
|
|
There should be no compile-time paths built into the executable of
|
|
pkg-config. Likewise, not in the libraries it describes either.
|
|
|
|
pkg-config uses some optional entries in the Registry: Firstly, the
|
|
path to the pkgconfig installation prefix. This can be either
|
|
user-specific in HKCU\Software\pkgconfig\InstallationDirectory or for
|
|
the whole machine in HKLM\Software\pkgconfig\InstallationDirectory.
|
|
|
|
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 figures out the directory by itself. (The
|
|
g_win32_get_package_installation_directory() function in GLib.)
|
|
|
|
Additionally, in addition to the PKG_CONFIG_PATH environment
|
|
variables, any string value in the Registry key
|
|
HKLM\Software\pkgconfig\PKG_CONFIG_PATH (or HKCU\...) is assumed to be
|
|
a directory name and is searched for .pc files.
|
|
|
|
When pkg-config is invoked on Windows, it tries to set the "prefix"
|
|
variable for each .pc file read to "top" of the directory tree where
|
|
the .pc file is located. This is done only if the .pc file is in a
|
|
path that ends in "lib/pkgconfig". Thus, if an end-user (developer)
|
|
installs headers, import libraries and .pc files in the normal
|
|
subdirectories under some random directory, everything should just
|
|
work, even if the .pc file for that software doesn't know the true
|
|
directory name, but contains the path used on the packager's
|
|
site. This works as long as the .pc file uses the variable name
|
|
"prefix" for its installation prefix. At least GLib, ATK, Pango and
|
|
GTK does this.
|
|
|
|
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 (2.0.x). Yes,
|
|
this does introduce a kind of 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.
|
|
|
|
--Tor Lillqvist <tml@iki.fi>
|