2001-09-30 Tor Lillqvist <tml@iki.fi>
Author: tml
Date: 2001-09-29 21:05:25 GMT
2001-09-30 Tor Lillqvist <tml@iki.fi>
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 <windows.h>.
* 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 <glib.h> 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.
2005-07-14 13:04:29 +00:00
|
|
|
pkg-config on Win32
|
|
|
|
|
===================
|
|
|
|
|
|
2005-07-14 13:05:20 +00:00
|
|
|
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.
|
2001-09-30 Tor Lillqvist <tml@iki.fi>
Author: tml
Date: 2001-09-29 21:05:25 GMT
2001-09-30 Tor Lillqvist <tml@iki.fi>
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 <windows.h>.
* 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 <glib.h> 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.
2005-07-14 13:04:29 +00:00
|
|
|
|
2012-12-08 19:57:17 -08:00
|
|
|
When pkg-config.exe is invoked, it uses the glib function
|
|
|
|
|
g_win32_get_package_installation_directory_of_module() to find the
|
|
|
|
|
directory it's being run from. It then adds the "lib" and "share"
|
|
|
|
|
subdirectories to the pkg-config search path unless PKG_CONFIG_LIBDIR is
|
|
|
|
|
set in the environment. This allows pkg-config to adjust to being
|
|
|
|
|
relocated on Windows.
|
2001-09-30 Tor Lillqvist <tml@iki.fi>
Author: tml
Date: 2001-09-29 21:05:25 GMT
2001-09-30 Tor Lillqvist <tml@iki.fi>
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 <windows.h>.
* 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 <glib.h> 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.
2005-07-14 13:04:29 +00:00
|
|
|
|
2012-12-08 19:57:17 -08:00
|
|
|
For each .pc file encountered, pkg-config will replace the prefix
|
|
|
|
|
variable to the base of it's currently installed directory unless the
|
|
|
|
|
command line option --dont-define-prefix is set. It will take the .pc
|
|
|
|
|
directory and strip off either lib\pkgconfig or share\pkgconfig to
|
|
|
|
|
determine the prefix. This allows the paths encoded in .pc files at
|
|
|
|
|
build time to be replaced with appropriate values at runtime.
|
2005-07-14 13:04:41 +00:00
|
|
|
|
2012-12-08 19:57:17 -08:00
|
|
|
In order to use the output of pkg-config with MSVC, the option
|
|
|
|
|
--msvc-syntax can be used to convert UNIX style library output to
|
|
|
|
|
arguments that work with MSVC. This means -Lfoo will be converted to
|
|
|
|
|
/libpath:foo, and -lfoo will be converted to foo.lib.
|
2015-10-27 13:55:38 +08:00
|
|
|
|
|
|
|
|
Building pkg-config is now supported on Visual Studio/MSVC as well. To
|
|
|
|
|
build it, you will need to have a glib installation. Note that MSVC
|
|
|
|
|
builds of glib does not have a build-time dependency on pkg-config,
|
|
|
|
|
unlike the normal autotools builds. The headers and libs either need to
|
|
|
|
|
be found in your default %INCLUDE% and %LIB% respectively, or they need
|
|
|
|
|
to be found in $(GLIB_PREFIX)\include and $(GLIB_PREFIX)\lib respectively;
|
|
|
|
|
please see Makefile.vc for adjusting $(GLIB_PREFIX) to suit your needs.
|
|
|
|
|
To build pkg-config with MSVC, run in a Visual Studio command prompt:
|
|
|
|
|
|
|
|
|
|
"nmake /f Makefile.vc CFG=release" (release builds) -or-
|
|
|
|
|
"nmake /f Makefile.vc CFG=debug" (debug builds)
|
|
|
|
|
|
|
|
|
|
The resulting pkg-config.exe will be found in [release|debug]\[win32|x64];
|
|
|
|
|
a 'clean' target is supported to clean up the build. MSVC 2008
|
|
|
|
|
through 2015 is supported; older versions may work as well but is not
|
|
|
|
|
tested. Note that building with the glib bundled with this source
|
|
|
|
|
distribution is not currently supported-the glib DLL and all of its
|
|
|
|
|
dependent DLLs are required at runtime.
|