aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am3
-rwxr-xr-xfind-provides.in4
-rwxr-xr-xfind-requires.in4
-rwxr-xr-xpkgconfigdeps.sh47
4 files changed, 53 insertions, 5 deletions
diff --git a/Makefile.am b/Makefile.am
index b09bc4c..3a4270b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -25,7 +25,8 @@ pkg_scripts = \
perl.prov \
perl.req \
php.prov \
- php.req
+ php.req \
+ pkgconfigdeps.sh
pkg_gscripts = \
find-provides \
diff --git a/find-provides.in b/find-provides.in
index 0bb9dc4..38270b6 100755
--- a/find-provides.in
+++ b/find-provides.in
@@ -65,8 +65,8 @@ done | sort -u
#
# --- Pkgconfig deps
-[ -x @RPMLIBDIR@/pkgconfigdeps.sh ] &&
- echo "$filelist" | tr '[:blank:]' \\n | @RPMLIBDIR@/pkgconfigdeps.sh -P | sort -u
+[ -x @RPMVENDORDIR@/pkgconfigdeps.sh ] &&
+ echo "$filelist" | tr '[:blank:]' \\n | @RPMVENDORDIR@/pkgconfigdeps.sh -P | sort -u
if [ -n "$LIBTOOLDEP" ]; then
#
diff --git a/find-requires.in b/find-requires.in
index 2c3bc28..8739cc9 100755
--- a/find-requires.in
+++ b/find-requires.in
@@ -198,8 +198,8 @@ fi
if [ -n "$NOTYET" ]; then
#
# --- Pkgconfig deps
-[ -x @RPMLIBDIR@/pkgconfigdeps.sh ] &&
- echo "$filelist" | tr '[:blank:]' \\n | @RPMLIBDIR@/pkgconfigdeps.sh -R | sort -u
+[ -x @RPMVENDORDIR@/pkgconfigdeps.sh ] &&
+ echo "$filelist" | tr '[:blank:]' \\n | @RPMVENDORDIR@/pkgconfigdeps.sh -R | sort -u
fi
diff --git a/pkgconfigdeps.sh b/pkgconfigdeps.sh
new file mode 100755
index 0000000..dc93c80
--- /dev/null
+++ b/pkgconfigdeps.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+pkgconfig=/usr/bin/pkg-config
+test -x $pkgconfig || {
+ cat > /dev/null
+ exit 0
+}
+
+[ $# -ge 1 ] || {
+ cat > /dev/null
+ exit 0
+}
+
+case $1 in
+-P|--provides)
+ while read filename ; do
+ case "${filename}" in
+ *.pc)
+ # Assume that this file doesn't contain useful information.
+ needs_pkgconfig=false
+ # Query the dependencies of the package.
+ $pkgconfig --print-provides "$filename" 2> /dev/null | while read n r v ; do
+ # We have a dependency. Make a note that we need the pkgconfig
+ # tool for this package.
+ echo "pkgconfig($n)" "$r" "$v"
+ needs_pkgconfig=true
+ done
+ # The dependency on the pkgconfig package itself.
+ if $needs_pkgconfig ; then
+ echo pkgconfig
+ fi
+ ;;
+ esac
+ done
+ ;;
+-R|--requires)
+ while read filename ; do
+ case "${filename}" in
+ *.pc)
+ $pkgconfig --print-requires "$filename" 2> /dev/null | while read n r v ; do
+ echo "pkgconfig($n)" "$r" "$v"
+ done
+ esac
+ done
+ ;;
+esac
+exit 0