a962963
From de99bb00b0084e8a1862398270278a14e099b22b Mon Sep 17 00:00:00 2001
a962963
From: Nils Philippsen <nils@redhat.com>
a962963
Date: Wed, 5 May 2010 13:23:40 +0200
a962963
Subject: [PATCH] patch: pkgconfig
a962963
a962963
Squashed commit of the following:
a962963
a962963
commit d615848c499842c5923c3274370d2536dc650916
d3d32cf
Author: Nils Philippsen <nils@redhat.com>
a962963
Date:   Fri Feb 26 17:51:14 2010 +0100
d3d32cf
a962963
    pkgconfig file is data
a962963
    (cherry picked from commit 1f0e85c705a42c7e6ccd938eaad69f531c63f63d)
a962963
a962963
    Signed-off-by: Nils Philippsen <nils@redhat.com>
a962963
a962963
commit 119d5af1ddd82dac034d0106a1d86b6d7564f25e
a962963
Author: Nils Philippsen <nils@redhat.com>
a962963
Date:   Wed Jun 17 13:09:51 2009 +0200
a962963
a962963
    make sane-config multilib-aware on Linux
a962963
    (cherry picked from commit 52ef5f47ccc0128c78ab3ad38ac7b7918dd7ac88)
a962963
a962963
    Signed-off-by: Nils Philippsen <nils@redhat.com>
a962963
a962963
commit 7ee1cbef01d851aca95d86145ac5dda02d9e7354
a962963
Author: Nils Philippsen <nils@redhat.com>
a962963
Date:   Wed May 5 10:22:15 2010 +0200
a962963
a962963
    use pkg-config in sane-config
a962963
---
a962963
 tools/Makefile.am    |   14 ++++++++++-
a962963
 tools/sane-config.in |   66 ++++++++++++++++++++++++++++++++++++++-----------
a962963
 2 files changed, 64 insertions(+), 16 deletions(-)
d3d32cf
d3d32cf
diff --git a/tools/Makefile.am b/tools/Makefile.am
a962963
index f52a39a..ab4e1b7 100644
d3d32cf
--- a/tools/Makefile.am
d3d32cf
+++ b/tools/Makefile.am
d3d32cf
@@ -7,6 +7,10 @@
d3d32cf
 AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_builddir)/include \
d3d32cf
  -I$(top_srcdir)/include
d3d32cf
 
d3d32cf
+SUFFIXES = .pc.in .pc
d3d32cf
+
d3d32cf
+pkgconfigdir = ${libdir}/pkgconfig
d3d32cf
+
d3d32cf
 bin_PROGRAMS = sane-find-scanner gamma4scanimage
d3d32cf
 noinst_PROGRAMS = sane-desc umax_pp
d3d32cf
 
a962963
@@ -26,8 +30,14 @@ noinst_SCRIPTS = $(HOTPLUG)
d3d32cf
 BUILT_SOURCES = $(HOTPLUG_DIR)
d3d32cf
 CLEANFILES = $(bin_SCRIPTS) $(dist_noinst_SCRIPTS)
d3d32cf
 
a962963
+pkgconfig_DATA = sane-backends.pc
a962963
+
d3d32cf
+.pc.in.pc:
d3d32cf
+	cd $(top_builddir) \
d3d32cf
+		&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
d3d32cf
+
d3d32cf
 EXTRA_DIST = check-po.awk libtool-get-dll-ext mustek600iin-off.c \
a962963
-	     RenSaneDlls.cmd README xerox
a962963
+	     RenSaneDlls.cmd README xerox sane-backends.pc.in
d3d32cf
 
a962963
 sane_find_scanner_SOURCES = sane-find-scanner.c check-usb-chip.c \
a962963
 			    ../backend/sane_strstatus.c
d3d32cf
@@ -72,5 +82,7 @@ hal/libsane.fdi: $(wildcard ${top_srcdir}/doc/descriptions/*.desc) $(wildcard ${
d3d32cf
 	@./sane-desc -m hal -s ${top_srcdir}/doc/descriptions:${top_srcdir}/doc/descriptions-external \
d3d32cf
 	   -d 0 > $@
d3d32cf
 
d3d32cf
+sane-backends.pc:	$(top_builddir)/config.status
d3d32cf
+
d3d32cf
 clean-local:
d3d32cf
 	rm -f $(HOTPLUG)
d3d32cf
diff --git a/tools/sane-config.in b/tools/sane-config.in
a962963
index 22c02b5..a9ce6fb 100644
d3d32cf
--- a/tools/sane-config.in
d3d32cf
+++ b/tools/sane-config.in
a962963
@@ -19,7 +19,7 @@ pkglibdir="@pkglibdir@"
9575086
 includedir="@includedir@"
9575086
 mandir="@mandir@"
9575086
 infodir="@infodir@"
9575086
-libdir="@libdir@"
9575086
+#libdir=
9575086
 localstatedir="@localstatedir@"
9575086
 sysconfdir="@sysconfdir@"
9575086
 datarootdir="@datarootdir@"
a962963
@@ -33,6 +33,30 @@ srcdir="@srcdir@"
d3d32cf
 top_srcdir="@top_srcdir@"
d3d32cf
 cflags=
d3d32cf
 
d3d32cf
+pkgconfig_package=sane-backends
d3d32cf
+use_pkgconfig=0
9575086
+if test -x "@bindir@/pkg-config" && "@bindir@/pkg-config" --exists "$pkgconfig_package"; then
d3d32cf
+    use_pkgconfig=1
9575086
+else
9575086
+    libdir=
9575086
+    if kernel="`uname -s 2>/dev/null`"; then
9575086
+        case "$kernel" in
9575086
+            Linux)
9575086
+            if hw="`uname -i 2>/dev/null`"; then
9575086
+                case "$hw" in
9575086
+                    *64)
9575086
+                    libdir="@exec_prefix@/lib64"
9575086
+                    ;;
9575086
+                esac
9575086
+            fi
9575086
+            ;;
9575086
+        esac
9575086
+    fi
9575086
+    if test "x$libdir" = "x"; then
9575086
+        libdir="@exec_prefix@/lib"
9575086
+    fi
d3d32cf
+fi
d3d32cf
+
d3d32cf
 usage ()
d3d32cf
 {
d3d32cf
   echo "Usage: "  1>&2
a962963
@@ -60,7 +84,7 @@ if test $# -gt 0; then
a962963
       if test $# -eq 1; then
a962963
         usage
a962963
       elif test $# -eq 2; then
a962963
-        case $2 in 
a962963
+        case $2 in
a962963
           --cflags)
a962963
             echo "Usage: $0 --cflags"
a962963
             echo "  Print C compiler flags for compiling code that uses SANE."
a962963
@@ -86,26 +110,38 @@ if test $# -gt 0; then
d3d32cf
       ;;
d3d32cf
     --ldflags)
d3d32cf
 
d3d32cf
-      if test -z "$LINKER_RPATH"; then
a962963
-        echo "-L${libdir} @LDFLAGS@" 
d3d32cf
+      if test "x$use_pkgconfig" = "x0"; then
d3d32cf
+        if test -z "$LINKER_RPATH"; then
a962963
+          echo "-L${libdir} @LDFLAGS@"
d3d32cf
+        else
a962963
+          echo "-L${libdir} @LDFLAGS@ ${LINKER_RPATH}${libdir}"
d3d32cf
+        fi
d3d32cf
       else
a962963
-        echo "-L${libdir} @LDFLAGS@ ${LINKER_RPATH}${libdir}"
d3d32cf
+        pkg-config --libs-only-L "$pkgconfig_package"
d3d32cf
       fi
d3d32cf
       ;;
d3d32cf
     --libs)
d3d32cf
-      echo "-lsane ${LIBS}"
d3d32cf
+      if test "x$use_pkgconfig" = "x0"; then
d3d32cf
+        echo "-lsane ${LIBS}"
d3d32cf
+      else
d3d32cf
+        pkg-config --libs "$pkgconfig_package"
d3d32cf
+      fi
d3d32cf
       ;;
d3d32cf
     --cflags)
d3d32cf
-      unique_cflags=
d3d32cf
-      if test "${includedir}" != "/usr/include"; then
d3d32cf
-        unique_cflags="${unique_cflags} -I${includedir}"
d3d32cf
-      fi
d3d32cf
-      for i in $cflags; do
d3d32cf
-        if test "${i}" != "-I${includedir}"; then
d3d32cf
-          unique_cflags="${unique_cflags} $i"
d3d32cf
+      if test "x$use_pkgconfig" = "x0"; then
d3d32cf
+        unique_cflags=
d3d32cf
+        if test "${includedir}" != "/usr/include"; then
d3d32cf
+          unique_cflags="${unique_cflags} -I${includedir}"
d3d32cf
         fi
d3d32cf
-      done
d3d32cf
-      echo ${unique_cflags}
d3d32cf
+        for i in $cflags; do
d3d32cf
+          if test "${i}" != "-I${includedir}"; then
d3d32cf
+            unique_cflags="${unique_cflags} $i"
d3d32cf
+          fi
d3d32cf
+        done
d3d32cf
+        echo ${unique_cflags}
d3d32cf
+      else
d3d32cf
+        pkg-config --cflags "$pkgconfig_package"
d3d32cf
+      fi
d3d32cf
       ;;
d3d32cf
     --prefix)
d3d32cf
       echo ${prefix}
a962963
-- 
a962963
1.6.6.1
a962963