Some distros and users have unusual installation needs that don't
conform to the standard $libdir/pkgconfig and $datadir/pkgconfig
pathways. Help packagers support these users with the macros
PKG_INSTALLDIR and PKG_NOARCH_INSTALLDIR. These are simple macros that
provide the configure parameters --with-pkgconfigdir and
--with-noarch-pkgconfigdir to allow users to override the standard
locations.
Freedesktop #48743
We want to distribute the glib subdir, but we want to avoid configuring
it for the default build case where the system glib is used. Override
the standard dist target so that we can reconfigure with
--with-internal-glib if necessary. I think the target should be
compatible with the original dist.
This is pretty hacky and may need to be reverted if it breaks dist.
It's nice to say that glib is a base library and you should have it
installed to build pkg-config, but it makes bootstrapping pkg-config
really annoying since it introduces a circular dependency.
Let's be nice to our users and bundle a copy to avoid this situation.
The default is still to use the system's glib, but the internal copy
can be used by passing --with-internal-glib to configure. The latest
stable copy of glib is included and will be updated periodically with
their stable releases.
The top level autogen.sh is running recursively through glib. If this
becomes an issue, we can switch autoreconf to --no-recursive and then
descend to glib and run its autogen.sh script.
Since this is default off, its integration will probably not be tested
often. Therefore, it's forcefully turned on during distcheck to make
sure to test it out before distributing a tarball.
We just want to be able to build glib from the within the pkg-config
tree. Everything else is just extra weight and is better used from an
actual glib checkout. Unnecessary files include:
* documentation
* translations
* tests
* ChangeLogs
* non-autotools win32 build files
* various other build and/or internal files
Add a snapshot of the current stable version of glib, glib-2.32.0. Since
we only need the glib library, a lot of files are removed. See the
README and update-glib.sh files in glib-patches for details.
Grab a snapshot of a tag from a local glib checkout, remove a bunch of
files and apply some patches. The idea is to make the snapshot of glib
be repeatable.
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
It might be useful to write something like
sdkflags=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=sdkdir xorg-server`
in configure.ac macros. Unfortunately, this will be blocked because
'PKG_CONFIG_SYSROOT' is a forbidden m4 pattern.
This patch extends the list of allowed pattern by the names of
documented pkg-config environment variables.
Avoids Msys path mangling that turns *nix paths (such as /usr/include) into
DOS-style absolute paths (such as c:/mingw/msys/1.0/include).
Allows mingw-built pkg-config to pass check-cflags.
Instead of hard-coding /usr/include, we now use the environment variable
PKG_CONFIG_SYSTEM_INCLUDE_PATH, defaulting to the argument of
./configure --with-system-include-path, which in turn defaults to
/usr/include.
Similarly, PKG_CONFIG_SYSTEM_LIBRARY_PATH defaults to /usr/lib or
/usr/lib:/usr/lib64 as appropriate.
(As currently implemented, this causes a behaviour change on Win32 -
the option -I/usr/include will now be filtered out.)
The intended usage is for Debian to configure pkg-config with
--with-system-include-path=/usr/include/$(DEB_HOST_GNU_TYPE):/usr/include
and the corresponding library path, for multiarch support
(<http://bugs.debian.org/482884>).
Based on work by Colin Walters <walters@verbum.org>
--exists no longer does a full depth traversal, which means we need to
pay attention to the exit status when calling pkg-config --libs and
--cflags. If those fail, we run with --cflags and --libs to get the
error message before printing it out.
Fixes Freedesktop #36039
We used to call gnome-config, gtk-config, glib-config and so on, which
was useful in the beginning of pkg-config. This hasn't served any
practical purpose in recent years, so drop the support.
We want to use the libtool script to determine if indirect dependencies
should be listed. LT_OUTPUT forces the script to be created immediately
so that the test can be run reliably.
This is borrowed from glib's configure.in.
To ensure that pkg-config has been built and updated before running the
test suite, complete the top directory before descending to the check
directory.
There is really no reason to manually vet and run all the autotools.
That's what autoreconf is for. It has the added bonus that it will
descend to the glib subdirectory and rebuild the autotools there. The
handling of configure is also fixed as the previous --no-configure code
was completely broken.
This is basically the xorg autogen.sh, so we can be pretty confident
it'll work as advertised.
The bundled popt handled the case of Cflags or Libs with no value, but
newer popt linked through --with-installed-popt chokes parsing it into
a vector. This is arguably a popt bug in poptParseArgvString, but I
guess they expect you not to ask it to split an empty string.
In order to avoid having the COPYING file from automake included in
the distribution, add a copy of the GPLv2 for pkg-config. This matches
the source files, which all specify GPLv2+.
The COPYING file from upstream popt has also been added for the
bundled popt sources.