Import xPack OpenOCD 0.12.0-7 and GNU Make 4.4.1 from x86_64-w64-mingw32.

This commit is contained in:
2026-09-14 16:20:05 +08:00
parent 2b73c30a9d
commit 534c017e0f
1133 changed files with 74341 additions and 0 deletions
@@ -0,0 +1,11 @@
Original authors
----------------
James Henstridge <james@daa.com.au> original pkg-config
Tim Janik <timj@gtk.org> the PKG_CHECK_VERSION macro
Havoc Pennington <hp@redhat.com> rewrite in C
Scott James Remnant <scott@netsplit.com> m4 cleanups and maintainer
for a while
Maintainer
----------
Tollef Fog Heen <tfheen@err.no>
@@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
@@ -0,0 +1,307 @@
pkg-config 0.29.2
=================
- Improved pkg-config's recursive package list expansion performance.
Thanks to Matthew Hanna for the fix.
- Handle an empty prefix setting correctly when --define-prefix is used.
(#97453)
- Lazily load pc files instead of reading all available pc files during
initialization. Thanks to Marco Diego Aurélio Mesquita for the fix.
(#98215)
- Check the CPATH environment variable when determining system include
paths like GCC does. Document the system search path behavior. Thanks
to v4hn for the fix. (#99224)
- Make PKG_CHECK_MODULES show the module list rather than the variable
prefix in configure output. Thanks to Russ Albery for the fix.
(#98334)
- Fix bundled glib build with GCC 6. (#98334)
- Handle -isystem and -idirafter when PKG_CONFIG_SYSROOT_DIR is set.
(#97337)
- Check the INCLUDE environment variable when determining system include
paths on Windows builds when --msvc-syntax is used. (#94729)
pkg-config 0.29.1
=================
- Fixed a regression from 0.29 with unquoting values queried with
--variable. In some cases, this would cause shell special characters to
be escaped in ways they weren't before. Instead, the unquoting only
occurs if the value appears to be quoted. (#93284)
- Add support for building pkg-config with Microsoft Visual Studio.
Thanks to Chun-wei Fan for the fix. (#92489)
- Allow overriding pkg-config variables with environment variables. By
setting an environment variable of the form
PKG_CONFIG_$PACKAGE_$VARIABLE, a pkg-config variable can be set
globally without always having to pass --define-variable. Thanks to
Alex Larsson for the fix. (#90917)
- Honor -Wl,-framework in addition to -framework so that multiple
frameworks are handled on OSX. (#1278)
- Fix the OSX build using --with-internal-glib. Thanks to Rudá Moura for
the initial fix and Adam Mercer for testing the final patch. (#92902)
pkg-config 0.29
===
- Fixed a regression from 0.28 in system -L flag handling. If the pc
file has multiple system -L flags, every other flag will be left as
is. Thanks to Andrew Oakley for the fix. (#78077)
- Quoting of variables queried through --variable is removed so that the
output can be used verbatim in subsequent shell commands. Thanks to
Marek Kasik for the fix. (#67904)
- Fixed a regression from 0.28 in -L flag handling on Windows. A .libs
suffix was inadvertantly being added to the library path.
- Added a --validate option to check pc file syntax. This works just
like --exists, but package dependencies are disabled. (#7000)
- Added the PKG_PREREQ autoconf macro. Whereas PKG_PROG_PKG_CONFIG is
used to check the version of the pkg-config tool, this is used to
check the version of the pkg-config autoconf macros in use.
- Added the PKG_CHECK_MODULES_STATIC autoconf macro. This will
temporarily add --static to the pkg-config calls while invoking
PKG_CHECK_MODULES. (#19541)
- Many fixes to the testsuite for Windows. It should now pass for a
MinGW, Cygwin, and cross-compiled MinGW using Wine for test execution.
(#66939)
- More consistent handling of prefix redefinition. On Windows, the
prefix was always being redefined based on the pc file path. This
feature can now be enabled or disabled at runtime on all platforms
using the --define-prefix and --dont-define-prefix options. (#63602)
- Continue listing packages with --list-all even if there are errors in
pc files. (#26615)
- Various documentation improvements. (#62018, #62374, #66155)
- Fixed a bug when multiple -isystem arguments are used. (#72584)
- pkg-config is now built with largefile support to ensure that it works
correctly on filesystems with 64 bit inodes. Thanks to Peter Jones for
the fix. (#90078)
- Bugs fixed: 7000, 19541, 26615, 62018, 62374, 63602, 66155, 66939,
67904, 70690, 72584, 78077, 80378, 80380, 89267, 90078, 90437, 92002.
pkg-config 0.28
===
- Fixed a pair of long-standing and intertwined bugs involving unwanted
removal of flags. The first is that other Libs flags like -Wl are now
kept in context order with -l flags. The second is that aggressive
removal of all duplicate arguments has been scaled back so that just
consecutive duplicate arguments are removed. One result of this change
is that some flags could be repeated in the final output, especially
flags from non-pkg-config packages like -lm. Since pkg-config rarely
has enough knowledge here about the right thing to do, we throw the
duplicate arguments at the compiler/linker and trust it will do the
right thing.
- Fixed an old bug to allow circular Requires. This fix brings along a
small behavior change in that pkg-config resolves requires depth
first, causing some lower level flags to show up earlier in the output
than previously.
- Cleaned up many corner-case bugs and ambiguous behavior in
pkg-config's interface. Thanks to Michał Górny for finding so many of
these.
- New autoconf macro PKG_CHECK_VAR for reading variables from .pc files.
- Default to suppressing -L/lib and/or -L/lib64 like their /usr
counterparts.
- To help support multiarch scenarios out of the box, $host-pkg-config
is now installed unless --disable-host-tool is passed to configure.
- Added optional gcov usage through the --with-gcov configure option. As
a result, many more tests were added to greatly increase the coverage
of the code to 86% of executed lines on a Fedora 18 machine.
- Bugs fixed: 130, 7331, 16101, 17053, 19950, 34504, 48098, 54231,
54271, 54379, 54384, 54386, 54388, 54389, 54390, 54391, 54427, 54463,
54716, 57078, 58363, 59435.
pkg-config 0.27.1
===
- Various fixes for using the internal glib snapshot. It should now be
usable pretty much everywhere with the exception that universal
builds are not supported on OS X.
- Remove usage of gettext from the internal glib to avoid gettext and
libintl dependencies.
- Update internal glib snapshot to 2.32.4.
- Fix check for POSIX shell used in tests to work better.
- Handle spaces in autodetected prefix on Windows.
- Bugs fixed 3550, 51883, 52031, 53493.
pkg-config 0.27
===
- Drop usage of popt for equivalent API in glib2.
- Add back an internal snapshot of glib2 to break circular dependency.
This can be used by passing --with-internal-glib to configure. On
Windows it may still be required to use an installed glib.
- Fix --exists to check for Requires and Requires.private. This ensures
that all necessary packages are installed prior to using --cflags,
--libs, etc.
- Various fixes for MinGW which should allow it to be used unpatched on
that system.
- New autoconf macros PKG_INSTALLDIR and PKG_NOARCH_INSTALLDIR to help
determine the .pc file install directory.
- Fix handling of --exact/atleast/max-version vs. =/>=/<=.
- Fix errors in man page source.
- Ensure testing only searches in the check directory.
- Bump glib requirement to 2.16 to avoid deprecated
g_win32_get_package_installation_subdirectory().
- Autotools refresh and update. The required versions now are
autoconf-2.62, automake-1.11 and libtool-2.2.
- Use g_alloca from glib instead of figuring out alloca ourselves.
- Remove search for setresuid & setreuid only needed for internal popt.
- Bugs fixed: 833, 2458, 5214, 5326, 5703, 6074, 8653, 9135, 9143,
9584, 10652, 11464, 14396, 17053, 23922, 28776, 29011, 29801, 31699,
31700, 32622, 34382, 37266, 39646, 41081, 43149, 44843, 45599, 45742,
48743
pkg-config 0.26
===
- Build system fixes
- More tests
- pkg.m4 fixups which makes autoconf 2.66 happier.
- Drop support for legacy -config scripts. Those should already be
gone and cause problems in cross-compilation environments.
- Drop embedded glib
- Fix up pkg.m4 to handle the case of --exists working and --cflags
or --libs failing.
- Various documentation updates
- Allow $() through without escaping it.
- Add --with-system-include-path instead of hard-coding
/usr/include.
pkg-config 0.25
===
- 0.24 included a too strict whitespace/shell metacharacter filter
leading to some legal characters like = and : being escaped in the
output. This has been fixed.
- when building with newer and external libpopt, it would be confused
over being asked to split an empty string, leading to errors with
packages that included empty fields in their .pc files.
- Make the COPYING file explicitly GPLv2. The COPYING file in 0.24
was inadvertently GPLv3 rather than the correct GPLv2.
- Minor changes to documentation
pkg-config 0.24
===
- Fix up bug in PKG_CONFIG_SYSROOT handling which mangled non-I and
non-L arguments
- Put /usr/lib/pkgconfig and /usr/share/pkgconfig into the default
search path when no prefix is passed to configure.
- Portability fixes for Windows and NetBSD
- Various man page updates
- Add logging support to log how pkg-config is being called.
- Skip Requires.private unless we need them for Cflags
- Add a variable, pc_path to the compiled-in pkg-config package that
you can query for the compiled-in PKG_CONFIG_PC_PATH.
- Various updates to pkg.m4.
- Update rpmvercmp with bugfixes from upstream.
- Add introductory guide to pkg-config, thanks to Dan Nicholson for
the patch.
- Add listing of variables in a package
- Make it possible to use external popt.
- Add --print-provides and --print-requires(-private) options
- Add support for paths containing whitespace and shell metacharacters
pkg-config 0.23
===
- Add support for setting sysroot through PKG_CONFIG_SYSROOT_DIR in
the environment.
- Update included glib to 1.2.10.
- Other minor fixes, including a segfault.
pkg-config 0.22
===
- Make Requires.private a whole lot more useful by traversing the
whole tree, not just the top-level, for Cflags.
- Add support for using the system glib.
- Update URL to pkg-config website
- Fix some win32 problems.
- Other minor fixes.
pkg-config 0.21
===
- Fix some cosmetic output from pkg.m4
- Fix build problems with !gcc due to always passing -Wall
- Documentation fixes
- We now always add the Cflags from packages we depend on, whether
they are public or private dependencies. The discussion surrouding
this change can be found in http://bugs.debian.org/340904 .
- Add internal pkg-config package which can be queried for version
number and other information.
pkg-config 0.20
===
- Fix test suite to work on Solaris. Yay non-POSIX /bin/sh :-(
- Fix segfault on --help with gcc4. Fix segfault on bigendian arches
in some cases.
- Win32 fixes
- Add --short-errors, now used by pkg.m4 if available. This gives a
better error message if some libraries can't be found.
pkg-config 0.19
===
- Fix a segfault
- Fix default search path
- Fix cosmetic bug in pkg.m4 where AC_MSG_RESULT wasn't called in
some cases.
pkg-config 0.18.1
===
- Fix up pkg.m4 to not end up with pkg_failed=untried always.
pkg-config 0.18
===
- The inter-library dependencies check was too tight and caused
problems if one used the --no-undefined flag to libtool on Solaris
(since it there expands to -Wl,-z,defs which disallows undefined
symbols). Add a new name to .pc files: Libs.private which will not
be listed in the output of --libs unless --static is also given.
Private libraries are libraries which are needed in the case of
static linking or on platforms not supporting inter-library
dependencies. They are not supposed to be used for libraries which
are exposed through the library in question. An example of an
exposed library is GTK+ exposing Glib. A common example of a private
library is libm.
Generally, if include another library's headers in your own, it's a
public dependency and not a private one.
Thanks a lot to James Henstridge for both the bug and the following
discussion.
pkg-config 0.17.2
===
- Don't go into an infinite loop allocating more and more memory when
the same name is specified twice on the command line and we're in
"direct dependencies only"-mode.
pkg-config 0.17.1
===
- Now actually sets CFLAGS and LIBS instead of trying to set those in
a subshell. (Only affects if you've autoreconfiscated with 0.17)
- Fix detection of inter-library dependencies.
pkg-config 0.17
===
- Evaluate second argument to PKG_CHECK_MODULES again
- Portability fixes (MacOS, BeOS, Cygwin)
- Handle inter-library dependencies and assume those are in place if
the platform supports them. Disable with --enable-indirect-deps.
- Add initial test framework
- Build fixes (make distcheck now works)
pkg-config 0.16
===
- Use a search path, rather than a single default directory.
- Fix a bunch of bugs in glib by backporting
- More man page fixes
- Lots of small fixes and cleanups over the place.
- pkg-config now grabs _PKG_* and PKG_*, so don't use variables
starting with that in any configure scripts.
pkg-config 0.15
===
- add PKG_CONFIG_LIBDIR for cross-compiling (David Schleef)
- add --libs-only-other/--cflags-only-other (Zack Rusin)
- apply man page fixes (Pter Breitenlohner)
- C portability fix (David Robins)
- fix to win32 build (Tor Lillqvist)
@@ -0,0 +1,61 @@
pkg-config is a script to make putting together all the build
flags when compiling/linking a lot easier.
Report bugs at http://bugzilla.freedesktop.org/
To use pkg-config, do something like the following in your configure.ac
PKG_CHECK_MODULES([GNOME], [gtk > 1.2.8 gnomeui >= 1.2.0])
This puts the neccesary include flags to compile/link something against
libgnomeui and all its dependencies in $(GNOME_CFLAGS), and the -L/-l flags
for linking in $(GNOME_LIBS).
Users can define the PKG_CONFIG environment variable to point at the
right one, or if they cross-compile and have a correctly named pkg-config
(eg. arm-linux-pkg-config) in their PATH that will be used in preference.
Users can also define the GNOME_CFLAGS and GNOME_LIBS environment variables
if they think they know better, pkg-config will not be called if they do
that.
The "gtk > 1.2.8" part is only neccesary if you want to specifically check
if libgtk is version 1.2.8 or higher. Otherwise, the flags for gtk
will be included automatically, since libgnomeui depends on gtk.
So you could just say:
PKG_CHECK_MODULES([GNOME], [gnomeui])
for any version of gnomeui.
For more info, there's even a man page, try 'man pkg-config'
Building
========
pkg-config depends on glib. Note that glib build-depends on pkg-config,
but you can just set the corresponding environment variables (ZLIB_LIBS,
ZLIB_CFLAGS are the only needed ones when this is written) to build it.
pkg-config also either needs an earlier version of itself to find glib
or you need to set GLIB_CFLAGS and GLIB_LIBS to the correct values for
where it's installed in your system.
If this requirement is too cumbersome, a bundled copy of a recent glib
stable release is included. Pass --with-internal-glib to configure to
use this copy.
If you're cross-compiling and you need to build the bundled glib, refer
to the glib documentation for cross-compiling glib. In short, this will
require setting some autoconf cache variables in cases where glib would
need to run a program to determine the correct value. See the glib
documentation:
http://developer.gnome.org/glib/stable/glib-cross-compiling.html
If you need to use the bundled glib on Mac OS X, you'll most likely need
to build for a single architecture rather than as a universal binary.
This is because glib (as of version 2.32) does not support building for
multiple architectures out of the box. The glib2 from MacPorts or
Homebrew may be available as a universal binary and usable for
pkg-config as described above. Nothing in pkg-config itself precludes
being built as a universal binary.
@@ -0,0 +1,46 @@
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.
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.
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.