pkg-config/README.win32

47 lines
2.4 KiB
Text
Raw Permalink Normal View History

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
===================
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
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
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.
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.
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.