ports/devel/pkg-config/files/patch-pkg.c
Ade Lovett 77c7e24bc9 On -stable anyway, there is a problem getting "other" libs and cflags from
dependency packages (for example, from gthread-2.0).  This prevents ports
like ORbit2 from compiling.  It seems to be a pretty serious oversight on the
pkgconfig folks, so I'm going to submit this patch to them.

Basically, this patch adds recursive scanning capabilities to the
other_cflags and other_libs functions.

PR:		35831
Submitted by:	Joe Clarke <marcus@marcuscom.com>
2002-03-12 22:37:52 +00:00

74 lines
1.7 KiB
C

--- pkg.c.orig Thu Feb 7 14:32:13 2002
+++ pkg.c Tue Mar 12 16:54:50 2002
@@ -93,7 +93,7 @@
* locations, ignoring duplicates
*/
static void
-scan_dir (const char *dirname)
+scan_dir (const char *dirname, void *quiet)
{
DIR *dir;
struct dirent *dent;
@@ -113,7 +113,8 @@
free (dirname_copy);
if (!dir)
{
- debug_spew ("Cannot open directory '%s' in package search path: %s\n",
+ if (!quiet)
+ debug_spew ("Cannot open directory '%s' in package search path: %s\n",
dirname, g_strerror (errno));
return;
}
@@ -177,7 +178,9 @@
path_positions = g_hash_table_new (g_str_hash, g_str_equal);
g_slist_foreach (search_dirs, (GFunc)scan_dir, NULL);
- scan_dir (PKGLIBDIR);
+ scan_dir (PKGLIBDIR, (void *)0);
+ scan_dir (XPKGLIBDIR, (void *)1);
+ scan_dir (LPKGLIBDIR, (void *)1);
}
}
@@ -901,6 +904,13 @@
while (tmp != NULL)
{
Package *pkg = tmp->data;
+ GSList *reqs = pkg->requires;
+
+ if (reqs)
+ {
+ g_string_append (str, packages_get_other_libs(reqs));
+ g_string_append (str, " ");
+ }
if (pkg->other_libs)
{
@@ -924,10 +934,13 @@
char *L_libs;
char *other_libs;
GString *str;
+ GSList *tmp;
char *retval;
str = g_string_new ("");
+ tmp = pkgs;
+
other_libs = packages_get_other_libs (pkgs);
L_libs = packages_get_L_libs (pkgs);
l_libs = packages_get_l_libs (pkgs);
@@ -986,6 +999,13 @@
while (tmp != NULL)
{
Package *pkg = tmp->data;
+ GSList *reqs = pkg->requires;
+
+ if (reqs)
+ {
+ g_string_append (str, packages_get_other_cflags(reqs));
+ g_string_append (str, " ");
+ }
if (pkg->other_cflags)
{