]> err.no Git - pkg-config/commitdiff
2005-03-18 Tollef Fog Heen <tfheen@err.no>
authorArch Librarian <arch@canonical.com>
Thu, 14 Jul 2005 13:06:23 +0000 (13:06 +0000)
committerArch Librarian <arch@canonical.com>
Thu, 14 Jul 2005 13:06:23 +0000 (13:06 +0000)
Author: tfheen
Date: 2005-03-26 14:59:26 GMT
 2005-03-18  Tollef Fog Heen  <tfheen@err.no>

       * main.c (main): Use add_search_dirs for both the compile-time
       defined pc_path and the run-time defined PKG_CONFIG_PATH.

       * pkg.h: Add prototype for add_search_dirs.

       * pkg.c (add_search_dirs): Add new function which takes a
       delimiter-separated list as input and add_search_dir's it.
       (package_init): Remove knowledge about which dirs should be
       initially added.  Moved this to main.c(main)

       * ChangeLog: Add emacs variables to set the date to this
       ChangeLog's standard format

       * Makefile.am (INCLUDES): Pass PKG_CONFIG_PCPATH on to main.c

       * configure.in: Add --with-pc-path to define the default search
       path for .pc files.  (Freedesktop #119, #648)

ChangeLog
Makefile.am
configure.in
main.c
pkg.c
pkg.h

index 7e5599cf65bf13215388580dfaeece3649584d11..af4ac82a612b00d0c110a86d437fecbf446d7457 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 
        (Freedesktop #191, Debian #232719)
 
+2005-03-18  Tollef Fog Heen  <tfheen@err.no>
+
+       * main.c (main): Use add_search_dirs for both the compile-time
+       defined pc_path and the run-time defined PKG_CONFIG_PATH.
+
+       * pkg.h: Add prototype for add_search_dirs.
+
+       * pkg.c (add_search_dirs): Add new function which takes a
+       delimiter-separated list as input and add_search_dir's it.
+       (package_init): Remove knowledge about which dirs should be
+       initially added.  Moved this to main.c(main)
+
+       * ChangeLog: Add emacs variables to set the date to this
+       ChangeLog's standard format
+
+       * Makefile.am (INCLUDES): Pass PKG_CONFIG_PCPATH on to main.c
+
+       * configure.in: Add --with-pc-path to define the default search
+       path for .pc files.  (Freedesktop #119, #648)
+
 2005-03-18  Tollef Fog Heen  <tfheen@err.no>
 
        * glib-patches/pthread-config-fix.diff: Add patch to detect
        pthreads properly on some architectures.  Thanks to Michael
        Haubenwallner for reporting this bug and providing a patch.
+       (Freedesktop #1617)
 
 2005-02-21  Tollef Fog Heen  <tfheen@err.no>
 
@@ -801,3 +822,8 @@ Tue Jun  6 2000  Martijn van Beers  <martijn@earthling.net>
        * pkg-config: removed the pc_name_pkg functionality
        * pkg-config: show help and error out when there are no arguments
        * pkg-config: get the version from configure
+
+;;
+;; Local variables:
+;; add-log-time-format: add-log-iso8601-time-string
+;; End:
index 18a597e4f149715a595b2f8123c546f79a60bec3..b0eda0789223b1d26237247e1c6025ff5ac2b1c7 100644 (file)
@@ -15,7 +15,7 @@ EXTRA_DIST = $(m4_DATA) $(man_MANS) README.win32
 
 bin_PROGRAMS = pkg-config
 
-INCLUDES=-DPKGLIBDIR="\"$(pkglibdir)\"" $(included_glib_includes)
+INCLUDES=-DPKG_CONFIG_PC_PATH="\"$(pc_path)\"" $(included_glib_includes)
 
 pkg_config_SOURCES= \
        pkg.h \
index 4344d17ae4012cdb0e64e52313159c32cc0c2380..196566238f030f3c61ac711a63e091bae0f94bc3 100644 (file)
@@ -10,6 +10,20 @@ AM_PROG_LIBTOOL
 
 AC_PROG_CC
 
+AC_DEFUN([PKG_CONFIG_FIND_PC_PATH],
+[AC_ARG_WITH(pc_path,
+ [  --with-pc-path"          Override the default search path for .pc files ],
+ [ pc_path="$withval"
+   AC_MSG_CHECKING([for default search path for .pc files])
+   AC_MSG_RESULT([$pc_path])],
+ [pc_path=`echo $pkglibdir:$pkgdatadir`])
+ AC_SUBST([pc_path])
+dnl AC_DEFINE_UNQUOTED(PKG_CONFIG_PC_PATH,["$pc_path"],[Default search path for .pc files])
+
+])
+
+PKG_CONFIG_FIND_PC_PATH
+
 AC_MSG_CHECKING([for Win32])
 case "$host" in
   *-*-mingw*)
diff --git a/main.c b/main.c
index 599f775c2723aaa6f389154a325b662c7e7d3828..2ede2c4584667f7f6e88b841ad28eeda8daeef71 100644 (file)
--- a/main.c
+++ b/main.c
 #undef STRICT
 #endif
 
+#ifdef G_OS_WIN32
+/* No hardcoded paths in the binary, thanks */
+#undef PKGLIBDIR
+/* It's OK to leak this, as PKGLIBDIR is invoked only once */
+#define PKG_CONFIG_PATH g_strconcat (g_win32_get_package_installation_directory (PACKAGE, NULL), "\\lib\\pkgconfig", NULL)
+#endif
+
 static int want_debug_spew = 0;
 static int want_verbose_errors = 0;
 static int want_stdout_errors = 0;
@@ -188,6 +195,9 @@ main (int argc, char **argv)
   GSList *packages = NULL;
   char *search_path;
   char *pcbuilddir;
+  const char *pkglibdir;
+  char **search_dirs;
+  char **iter;
   gboolean need_newline;
 
   const char *pkgname;
@@ -266,26 +276,13 @@ main (int argc, char **argv)
     }
 
   search_path = getenv ("PKG_CONFIG_PATH");
-  if (search_path)
+  if (search_path) 
     {
-      char **search_dirs;
-      char **iter;
-
-      search_dirs = g_strsplit (search_path, G_SEARCHPATH_SEPARATOR_S, -1);
-
-      iter = search_dirs;
-      while (*iter)
-        {
-          debug_spew ("Adding directory '%s' from PKG_CONFIG_PATH\n",
-                      *iter);
-          add_search_dir (*iter);
-
-          ++iter;
-        }
-
-      g_strfreev (search_dirs);
+      add_search_dirs(search_path, G_SEARCHPATH_SEPARATOR_S);
     }
 
+  add_search_dirs(PKG_CONFIG_PC_PATH, G_SEARCHPATH_SEPARATOR_S);
+
 #ifdef G_OS_WIN32
   {
     /* Add search directories from the Registry */
diff --git a/pkg.c b/pkg.c
index 0a327d1fec339d5da7e8ab130ce355516770bf1d..6bcaceb17ad760ac48e411752d4afb17e2ed9a4f 100644 (file)
--- a/pkg.c
+++ b/pkg.c
 #include <stdlib.h>
 #include <ctype.h>
 
-#ifdef G_OS_WIN32
-/* No hardcoded paths in the binary, thanks */
-#undef PKGLIBDIR
-/* It's OK to leak this, as PKGLIBDIR is invoked only once */
-#define PKGLIBDIR g_strconcat (g_win32_get_package_installation_directory (PACKAGE, NULL), "\\lib\\pkgconfig", NULL)
-#endif
-
 static void verify_package (Package *pkg);
 
 static GHashTable *packages = NULL;
@@ -69,6 +62,27 @@ add_search_dir (const char *path)
   search_dirs = g_slist_append (search_dirs, g_strdup (path));
 }
 
+void
+add_search_dirs (const char *path, const char *separator)
+{
+      char **search_dirs;
+      char **iter;
+
+      search_dirs = g_strsplit (path, separator, -1);
+    
+      iter = search_dirs;
+      while (*iter)
+        {
+          debug_spew ("Adding directory '%s' from PKG_CONFIG_PATH\n",
+                      *iter);
+          add_search_dir (*iter);
+          
+          ++iter;
+        }
+      
+      g_strfreev (search_dirs);
+}
+
 #ifdef G_OS_WIN32
 /* Guard against .pc file being installed with UPPER CASE name */
 # define FOLD(x) tolower(x)
@@ -208,11 +222,6 @@ void
 package_init ()
 {
   static gboolean initted = FALSE;
-  const char *pkglibdir;
-
-  pkglibdir = g_getenv ("PKG_CONFIG_LIBDIR");
-  if (pkglibdir == NULL)
-    pkglibdir = PKGLIBDIR;
 
   if (!initted)
     {
@@ -225,7 +234,6 @@ package_init ()
       add_virtual_pkgconfig_package ();
 
       g_slist_foreach (search_dirs, (GFunc)scan_dir, NULL);
-      scan_dir (pkglibdir);
     }
 }
 
diff --git a/pkg.h b/pkg.h
index 92df2f9321e756f9a602096cd97216a97d1ce3ea..a63aa3f6addfa3748f441813e54dd4df05351459 100644 (file)
--- a/pkg.h
+++ b/pkg.h
@@ -94,6 +94,7 @@ char *   packages_get_var          (GSList     *pkgs,
 
 
 void add_search_dir (const char *path);
+void add_search_dirs (const char *path, const char *separator);
 void package_init (void);
 int compare_versions (const char * a, const char *b);
 gboolean version_test (ComparisonType comparison,