PKG_CHECK_MODULES_STATIC is a convenience autoconf macro wrapping
PKG_CHECK_MODULES with --static enabled. This gives developers a way to
get static linking information from a specific set of modules.
Freedesktop #19541 (https://bugs.freedesktop.org/show_bug.cgi?id=19541)
The derived variables pcfiledir, pc_top_builddir and pc_sysrootdir were
lacking in documentation. Rework the "QUERYING PKG-CONFIG'S DEFAULTS"
section to describe these and pc_path.
The example of using "pkg-config --modversion pkg-config" was removed
since it's superfluous to "pkg-config --version".
Freedesktop #62018 (https://bugs.freedesktop.org/show_bug.cgi?id=62018)
Allowing pkg-config to override the prefix variable in .pc files is a
useful feature for making packages relocatable. There's nothing Windows
specific about it.
Freedesktop #63602 (https://bugs.freedesktop.org/show_bug.cgi?id=63602)
The prefix redefinition feature on Windows to make packages relocatable
was being confined only to locations where the .pc file was in a
directory ending in lib/pkgconfig or share/pkgconfig. This is too
restrictive as it's quite common for the libdir to have a different name
such as lib64. This keeps the convention that the feature will only be
enabled when the .pc file is in a pkgconfig directory, and it continues
to define the prefix to the grandparent of the pkgconfig directory.
The path handling is switched over to standard glib functions
g_path_get_basename and g_path_get_dirname to avoid handrolled handling
of Windows paths.
Currently the native Win32 builds default to redefining the prefix
variable in .pc files based on their installation paths. This behavior
is not always desired when pkg-config is being used in a traditional
fixed path environment (e.g., /mingw like /usr).
Allow the default to be set via configure switch
--enable/disable-define-prefix, and allow it to be set both ways at
runtime through the --[dont-]define-prefix pkg-config option.
This provides the user with output matching the behavior of the code.
When multiple --atleast/exact/max-version options are supplied, only the
first will be honored.
This happened basically by accident before when "pkg-config foo" was run
because the code wouldn't find any options set and just fall through to
the end after processing the package arguments. However, it would act
differently in that Requires.private was only enabled with an explicit
--exists.
When the VARIABLE-PREFIX tag is used more than once in PKG_CHECK_MODULES
it can result in later runs reporting success without actually running
pkg-config. This is because PKG_CHECK_MODULES looks for FOO_CFLAGS and
FOO_LIBS from the environment as a way to allow users to override the
test. PKG_CHECK_MODULES also sets these variables, though, and
subsequent calls will simply use these values.
Although there are legitimate ways to use the same VARIABLE-PREFIX
(e.g., they're all under conditionals meaning only one will be used),
document that repeated usage is not recommended.
Freedesktop #3550
The DW and EW roff macros had been used to suppress warnings around the
documentation on the now removed Windows registry keys. These macro
definitions are unneeded and cause problems with older groff and nroff
versions. Numerous patches exist around the web to remove them. I
confirmed this with an old nroff from the Heirloom project.
Fixes Freedesktop #5214
* parse.c: On Win32, if the value of a a variable other than the
"prefix" one starts with the non-overridden value of "prefix",
then replace that prefix, too, with the run-time one.
To avoid shadowing warnings, rename a 'p' variable to 'q'.
* pkg-config.1: Corresponding update.
* main.c
* pkg.h: Move the Win32 redefinition of PKG_CONFIG_PC_PATH from
main.c to pkg.h as it now is needed in pkg.c, too.
* main.c: Remove the possibility to have a default PKG_CONFIG_PATH
in the Registry. It is much more flexible to just use environment
variables. In general the Registry is not used in the ports of
GTK+ or GNOME libraries and software to Windows.
* parse.c (parse_line): On Windows, handle also .pc files found in
a share/pkgconfig folder when automatically redefining a prefix
variable for the package.
* pkg-config.1: Corresponding changes.
2008-02-18 Tor Lillqvist <tml@novell.com>
* main.c: Fix some bitrot: On Windows, don't use the compile-time
PKG_CONFIG_PC_PATH, but deduce a default one at run-time based on
the location of the executable. This was originally what
pkg-config did on Windows, but it had bit-rotted.
* pkg.h, pkg.c (string_list_to_string), pkg-config.1, main.c
(main): Add sysroot support and document same. Triggered by
setting PKG_CONFIG_SYSROOT_DIR in the environment.
* pkg-config.1: Apply patch from Ed Catmur to document
PKG_PROG_PKG_CONFIG and that it should be used if the first call
to PKG_CHECK_MODULES might not happen.
Author: tfheen
Date: 2005-05-21 09:14:47 GMT
2005-05-21 Tollef Fog Heen <tfheen@err.no>
* check/check-libs-private: New test to check for support for
private libraries.
* check/simple.pc (prefix): Add Libs.private header.
* check/Makefile.am (TESTS): Add check-libs-private test
* pkg.h: Adjust function prototypes.
* pkg.c: Add global ignore_private_libs variable.
(scan_dir): Use the correct free function. Stop leaking file
descriptors.
(package_get_l_libs, packages_get_l_libs, package_get_L_libs,
packages_get_L_libs): Stop the recursive silliness and go back to
old behaviour.
(packages_get_all_libs): Adjust parameters to packages_get_*_libs
(enable_private_libs, disable_private_libs): Trivial helper
functions.
* pkg-config.1: Update documentation wrt search path (Debian
#308942), update docs for Libs.private and add the problematic
handling of mixing = and non-= arguments to the bugs section.
* parse.h: Adjust parameters for parse_package_file to get private
libs or not.
* parse.c (trim_and_sub): Fix memory leak.
(_do_parse_libs): New function including what's common between
parse_libs and parse_private_libs.
(parse_libs_private): New function. Handle private libraries.
(parse_line): Add . to the list of valid characters in headers (so
Libs.private works correctly.
(parse_line): Fix memory leaks.
(parse_line): Handle Libs.private.
(parse_package_file): Fix memory leak.
* main.c (main): Fix memory leak.
* NEWS: Document changes to inter-library handling.
* main.c (main): Handle inter-library dependencies old-style, but
do private libraries too. Adjust parameters to
packages_get_*_libs.
* configure.in: Change comment wrt inter-library handling to talk
about private libraries instead.
Author: tfheen
Date: 2005-02-21 07:53:41 GMT
Get rid of groff warnings when formatting pkg-config(1) on an 80-column terminal. Thanks to Colin Watson and Ubuntu for the fix. (Freedesktop #148)
Author: keybuk
Date: 2004-06-07 23:43:21 GMT
Improve pkg-config's configure instructure and bring it bang
up to date.
* pkg.m4: Complete rewrite.
(PKG_PROG_PKG_CONFIG): if PKG_CONFIG not defined, find the
pkg-config in the path or $host-pkg-config if cross-compiling,
check that is of at least version 0.9.0 or one given.
(_PKG_CONFIG): internal macro to call pkg-config.
(PKG_CHECK_MODULES): same semantics as the previous incarnation
except you can prevent pkg-config from being called by defining
xxx_CFLAGS and xxx_LIBS yourself, additionally all results are
cached.
* README, pkg-config.1: Adjust documentation to match.
Author: hp
Date: 2003-02-15 15:04:07 GMT
2003-02-15 Havoc Pennington <hp@pobox.com>
Fixes suggested by Werner Trobin
* main.c (verbose_error): honor --errors-to-stdout and flush
the same stream we write to
* parse.c (parse_url): support an "url" field so if someone
has a .pc file they can figure out where to go for newer
versions and such
Author: hp
Date: 2003-01-15 04:02:47 GMT
2003-01-15 Havoc Pennington <hp@pobox.com>
* pkg.c (package_init): honor a PKG_CONFIG_LIBDIR to move default
search dir, useful in cross-compilation for example, bug
#103545 fix from David Schleef
Author: hp
Date: 2002-02-28 23:22:11 GMT
2002-02-28 Havoc Pennington <hp@redhat.com>
* pkg-config.1: add a note about the need for AC_SUBST with
PKG_CHECK_MODULES. Stefan Kost pointed this out.
Author: hp
Date: 2002-02-01 22:24:24 GMT
2002-02-01 Havoc Pennington <hp@redhat.com>
Throughout: cast chars to guchar before passing to isspace, etc.,
noted by Morten Welinder
* pkg.c (verify_package): actually strip system -I/-L out of the
cflags/libs, unless you set an environment variable asking to
leave them in.