eec8f5d
diff -U0 sane-backends-20080206/ChangeLog.pkgconfig sane-backends-20080206/ChangeLog
eec8f5d
--- sane-backends-20080206/ChangeLog.pkgconfig	2008-02-04 02:20:01.000000000 +0100
eec8f5d
+++ sane-backends-20080206/ChangeLog	2008-02-06 11:49:41.000000000 +0100
eec8f5d
@@ -0,0 +1,7 @@
eec8f5d
+2006-05-16  Nils Philippsen <nphilipp@redhat.com>
eec8f5d
+
eec8f5d
+	* acinclude.m4 configure.in tools/sane-config.in
eec8f5d
+	tools/sane-backends.pc.in tools/Makefile.in: add pkg-config support,
eec8f5d
+	re-write sane-config to use pkg-config to avoid multilib problems with
eec8f5d
+	conflicting sane-config scripts
eec8f5d
+
eec8f5d
diff -up sane-backends-20080206/acinclude.m4.pkgconfig sane-backends-20080206/acinclude.m4
eec8f5d
--- sane-backends-20080206/acinclude.m4.pkgconfig	2007-11-10 08:12:54.000000000 +0100
eec8f5d
+++ sane-backends-20080206/acinclude.m4	2008-02-06 11:49:41.000000000 +0100
eec8f5d
@@ -194,6 +194,7 @@ unset param
eec8f5d
 # Checks for ieee1284 library, needed for canon_pp backend.
eec8f5d
 AC_DEFUN([SANE_CHECK_IEEE1284],
eec8f5d
 [
eec8f5d
+  AC_SUBST(IEEE1284_LIBS)
eec8f5d
   AC_CHECK_HEADER(ieee1284.h, [
eec8f5d
     AC_CACHE_CHECK([for libieee1284 >= 0.1.5], sane_cv_use_libieee1284, [
eec8f5d
       AC_TRY_COMPILE([#include <ieee1284.h>], [
eec8f5d
@@ -206,6 +207,7 @@ AC_DEFUN([SANE_CHECK_IEEE1284],
eec8f5d
   ],)
eec8f5d
   if test "$sane_cv_use_libieee1284" = "yes" ; then
eec8f5d
     AC_DEFINE(HAVE_LIBIEEE1284,1,[Define to 1 if you have the `ieee1284' library (-lcam).])
eec8f5d
+    AC_SUBST(IEEE1284_LIBS, "-lieee1284")
eec8f5d
   fi
eec8f5d
 ])
eec8f5d
 
eec8f5d
@@ -213,6 +215,7 @@ AC_DEFUN([SANE_CHECK_IEEE1284],
eec8f5d
 # Checks for pthread support
eec8f5d
 AC_DEFUN([SANE_CHECK_PTHREAD],
eec8f5d
 [
eec8f5d
+  AC_SUBST(PTHREAD_LIBS)
eec8f5d
 
eec8f5d
   case "${host_os}" in
eec8f5d
   darwin*) # currently only enabled on MacOS X
eec8f5d
@@ -246,6 +249,7 @@ AC_DEFUN([SANE_CHECK_PTHREAD],
eec8f5d
                    [Define if pthreads should be used instead of forked processes.])
eec8f5d
   fi
eec8f5d
   if test "$have_pthread" = "yes" ; then
eec8f5d
+    AC_SUBST(PTHREAD_LIBS, "-lpthread")
eec8f5d
     CPPFLAGS="${CPPFLAGS} -D_REENTRANT"
eec8f5d
   fi
eec8f5d
   AC_MSG_CHECKING([whether to enable pthread support])
eec8f5d
@@ -259,6 +263,7 @@ AC_DEFUN([SANE_CHECK_PTHREAD],
eec8f5d
 # GPHOTO2 and dell1600n_net backends.
eec8f5d
 AC_DEFUN([SANE_CHECK_JPEG],
eec8f5d
 [
eec8f5d
+  AC_SUBST(JPEG_LIBS)
eec8f5d
   AC_CHECK_LIB(jpeg,jpeg_start_decompress, 
eec8f5d
   [
eec8f5d
     AC_CHECK_HEADER(jconfig.h, 
eec8f5d
@@ -271,7 +276,7 @@ AC_DEFUN([SANE_CHECK_JPEG],
eec8f5d
           sane_correct_jpeg_lib_version_found
eec8f5d
         #endif
eec8f5d
       ],[sane_cv_use_libjpeg="yes"; LIBS="${LIBS} -ljpeg"; 
eec8f5d
-      AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
eec8f5d
+      AC_SUBST(JPEG_LIBS, "-ljpeg") AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
eec8f5d
     ],)
eec8f5d
   ],)
eec8f5d
 ])
eec8f5d
@@ -425,6 +430,7 @@ AC_CHECK_TYPE(u_long, unsigned long)
eec8f5d
 # Checks for gphoto2 libs, needed by gphoto2 backend
eec8f5d
 AC_DEFUN([SANE_CHECK_GPHOTO2],
eec8f5d
 [
eec8f5d
+    AC_SUBST(PC_REQS)
eec8f5d
 	AC_ARG_WITH(gphoto2,
eec8f5d
 	  AC_HELP_STRING([--with-gphoto2],
eec8f5d
                          [include the gphoto2 backend @<:@default=yes@:>@]),
eec8f5d
@@ -454,6 +460,7 @@ AC_DEFUN([SANE_CHECK_GPHOTO2],
eec8f5d
 				LDFLAGS="$LDFLAGS $GPHOTO2_LDFLAGS"
eec8f5d
 
eec8f5d
 				AC_SUBST(GPHOTO2_LDFLAGS)
eec8f5d
+                AC_SUBST(PC_REQS, "libgphoto2 $PC_REQS")
eec8f5d
 
eec8f5d
 			 	saved_LIBS="${LIBS}"
eec8f5d
 				LIBS="${LIBS} ${GPHOTO2_LIBS}"
eec8f5d
diff -up /dev/null sane-backends-20080206/tools/sane-backends.pc.in
eec8f5d
--- /dev/null	2008-02-01 17:10:39.395027948 +0100
eec8f5d
+++ sane-backends-20080206/tools/sane-backends.pc.in	2008-02-06 11:49:41.000000000 +0100
eec8f5d
@@ -0,0 +1,14 @@
eec8f5d
+prefix=@prefix@
eec8f5d
+exec_prefix=@exec_prefix@
eec8f5d
+libdir=@libdir@
eec8f5d
+includedir=@includedir@
eec8f5d
+
eec8f5d
+pc_libs=@RESMGR_LIBS@ @DL_LIB@ @IEEE1284_LIBS@ @PTHREAD_LIBS@ @JPEG_LIBS@ @PC_LIBS@
eec8f5d
+pc_reqs=@PC_REQS@
eec8f5d
+
eec8f5d
+Name: SANE Backends
eec8f5d
+Description: Backends for SANE, the universal scanner interface
eec8f5d
+Version: @VERSION@
eec8f5d
+Requires: ${pc_reqs}
eec8f5d
+Libs: -L${libdir} -lsane ${pc_libs}
eec8f5d
+Cflags:
eec8f5d
diff -up sane-backends-20080206/tools/sane-config.in.pkgconfig sane-backends-20080206/tools/sane-config.in
eec8f5d
--- sane-backends-20080206/tools/sane-config.in.pkgconfig	2008-02-06 11:49:41.000000000 +0100
eec8f5d
+++ sane-backends-20080206/tools/sane-config.in	2008-02-06 11:52:03.000000000 +0100
eec8f5d
@@ -7,31 +7,9 @@
184035e
 PACKAGE="@PACKAGE@"
184035e
 scriptname="sane-config"
184035e
 
184035e
-LINKER_RPATH=""
eec8f5d
-
184035e
 prefix="@prefix@"
184035e
 exec_prefix="@exec_prefix@"
184035e
 
184035e
-LIBS="@LIBS@ @DL_LIB@"
184035e
-pkgincludedir="@pkgincludedir@"
184035e
-pkglibdir="@pkglibdir@"
184035e
-includedir="@includedir@"
184035e
-mandir="@mandir@"
184035e
-infodir="@infodir@"
184035e
-libdir="@libdir@"
184035e
-localstatedir="@localstatedir@"
184035e
-sysconfdir="@sysconfdir@"
eec8f5d
-datarootdir="@datarootdir@"
184035e
-datadir="@datadir@"
184035e
-libexecdir="@libexecdir@"
184035e
-sbindir="@sbindir@"
184035e
-bindir="@bindir@"
184035e
-#${prefix}
184035e
-#exec_prefix_set=no
184035e
-srcdir="@srcdir@"
184035e
-top_srcdir="@top_srcdir@"
184035e
-cflags=
184035e
-
184035e
 usage ()
184035e
 {
184035e
   echo "Usage: "  1>&2
eec8f5d
@@ -84,27 +62,13 @@ if test $# -gt 0; then
184035e
       exit 1
184035e
       ;;
184035e
     --ldflags)
184035e
-
184035e
-      if test -z "$LINKER_RPATH"; then
184035e
-        echo "-L${libdir} @GPHOTO2_LDFLAGS@"
184035e
-      else
184035e
-        echo "-L${libdir} @GPHOTO2_LDFLAGS@ ${LINKER_RPATH}${libdir}"
184035e
-      fi
184035e
+      pkg-config --libs-only-L sane-backends
184035e
       ;;
184035e
     --libs)
184035e
-      echo "-lsane ${LIBS}"
184035e
+      pkg-config --libs sane-backends
184035e
       ;;
184035e
     --cflags)
184035e
-      unique_cflags=
184035e
-      if test "${includedir}" != "/usr/include"; then
184035e
-        unique_cflags="${unique_cflags} -I${includedir}"
184035e
-      fi
184035e
-      for i in $cflags; do
184035e
-        if test "${i}" != "-I${includedir}"; then
184035e
-          unique_cflags="${unique_cflags} $i"
184035e
-        fi
184035e
-      done
184035e
-      echo ${unique_cflags}
184035e
+      pkg-config --cflags sane-backends
184035e
       ;;
184035e
     --prefix)
184035e
       echo ${prefix}
eec8f5d
diff -up sane-backends-20080206/tools/Makefile.in.pkgconfig sane-backends-20080206/tools/Makefile.in
eec8f5d
--- sane-backends-20080206/tools/Makefile.in.pkgconfig	2008-02-03 07:59:36.000000000 +0100
eec8f5d
+++ sane-backends-20080206/tools/Makefile.in	2008-02-06 11:49:41.000000000 +0100
eec8f5d
@@ -26,6 +26,7 @@ mandir = @mandir@
184035e
 includedir = @includedir@
184035e
 oldincludedir = /usr/include
184035e
 configdir = ${sysconfdir}/sane.d
184035e
+pkgconfigdir = ${libdir}/pkgconfig
184035e
 
184035e
 MKDIR = $(top_srcdir)/mkinstalldirs
184035e
 INSTALL = @INSTALL@
eec8f5d
@@ -74,7 +75,8 @@ LIBLIB = ../lib/liblib.a
184035e
 
184035e
 DISTFILES = Makefile.in RenSaneDlls.cmd README libtool-get-dll-ext     \
184035e
 	mustek600iin-off.c sane-config.in sane-desc.c check-usb-chip.c \
184035e
-	sane-find-scanner.c umax_pp.c xerox gamma4scanimage.c check-po.awk
184035e
+	sane-find-scanner.c umax_pp.c xerox gamma4scanimage.c check-po.awk \
184035e
+	sane-backends.pc.in
184035e
 
eec8f5d
 SUBDIRS = hotplug hotplug-ng udev hal
184035e
 
eec8f5d
@@ -88,18 +90,24 @@ SUBDIRS = hotplug hotplug-ng udev hal
184035e
 
184035e
 all:	$(DESTINATIONS)
184035e
 
184035e
-install: sane-config sane-find-scanner gamma4scanimage
184035e
+install: sane-config sane-backends.pc sane-find-scanner gamma4scanimage
184035e
+	$(MKDIR) $(DESTDIR)$(bindir) $(DESTDIR)$(pkgconfigdir)
184035e
+	$(INSTALL_DATA) sane-backends.pc $(DESTDIR)$(pkgconfigdir)/sane-backends.pc
184035e
 	$(INSTALL_SCRIPT) sane-config $(DESTDIR)$(bindir)/sane-config
184035e
 	$(INSTALL_PROGRAM) sane-find-scanner $(DESTDIR)$(bindir)/sane-find-scanner
184035e
 	$(INSTALL_PROGRAM) gamma4scanimage $(DESTDIR)$(bindir)/gamma4scanimage
184035e
 
184035e
 uninstall: 
184035e
-	rm -f $(bindir)/sane-config $(bindir)/sane-find-scanner $(bindir)/gamma4scanimage
184035e
+	rm -f $(bindir)/sane-config $(bindir)/sane-find-scanner $(bindir)/gamma4scanimage $(pkgconfigdir)/sane-backends.pc
184035e
 
184035e
 sane-config: sane-config.in $(top_builddir)/config.status 
184035e
 	cd $(top_builddir) \
184035e
           && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
184035e
 
184035e
+sane-backends.pc: sane-backends.pc.in $(top_builddir)/config.status 
184035e
+	cd $(top_builddir) \
184035e
+          && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
184035e
+
184035e
 sane-find-scanner: sane-find-scanner.o check-usb-chip.o ../backend/sane_strstatus.lo \
184035e
 	../sanei/sanei_scsi.lo ../sanei/sanei_usb.lo ../sanei/sanei_init_debug.lo \
184035e
 	../sanei/sanei_config.lo
eec8f5d
diff -up sane-backends-20080206/configure.in.pkgconfig sane-backends-20080206/configure.in
eec8f5d
--- sane-backends-20080206/configure.in.pkgconfig	2008-02-02 13:20:45.000000000 +0100
eec8f5d
+++ sane-backends-20080206/configure.in	2008-02-06 11:49:41.000000000 +0100
eec8f5d
@@ -52,6 +52,7 @@ AC_PROG_INSTALL
20e2dab
 AC_PROG_MAKE_SET
20e2dab
 AC_PROG_CPP
20e2dab
 AC_PROG_GCC_TRADITIONAL
20e2dab
+PKG_PROG_PKG_CONFIG
20e2dab
 AC_PATH_PROG(SANE_CONFIG_PATH, sane-config, no)
20e2dab
 AC_PATH_PROG(MSGFMT, msgfmt$EXEEXT, no)
20e2dab
 AC_PATH_PROG(XGETTEXT, xgettext$EXEEXT, no)
eec8f5d
@@ -99,6 +100,8 @@ dnl Checks for libraries
20e2dab
 dnl ***********************************************************************
20e2dab
 SANE_CHECK_DLL_LIB
20e2dab
 dnl Checks for Backend libraries.
20e2dab
+_pc_libs_save="$LIBS"
20e2dab
+LIBS=""
20e2dab
 AC_CHECK_LIB(m,sqrt)
20e2dab
 AC_CHECK_LIB(scsi, scsireq_enter)	# FreeBSD needs this
20e2dab
 AC_CHECK_LIB(cam, cam_open_device)      # FreeBSD 3+ needs this
eec8f5d
@@ -109,6 +112,8 @@ if test "`uname`" != "IRIX" -a "`uname`"
20e2dab
     AC_SEARCH_LIBS(socket, socket)
20e2dab
     AC_SEARCH_LIBS(syslog, syslog be)            # OS/2 needs -lsyslog, BeOS needs -lbe
20e2dab
 fi
20e2dab
+AC_SUBST(PC_LIBS, "$LIBS")
20e2dab
+LIBS="$LIBS $_pc_libs_save"
20e2dab
 SANE_CHECK_JPEG
eec8f5d
 SANE_CHECK_TIFF
20e2dab
 SANE_CHECK_IEEE1284
eec8f5d
@@ -139,19 +144,23 @@ AC_CHECK_HEADERS([io/cam/cam.h],,,[#incl
20e2dab
 
20e2dab
 SANE_CHECK_MISSING_HEADERS
20e2dab
 
20e2dab
+AC_SUBST(RESMGR_LIBS)
20e2dab
 AC_CHECK_HEADER(resmgr.h,[
20e2dab
 	AC_CHECK_LIB(
20e2dab
 		resmgr,
20e2dab
 		rsm_open_device,[
20e2dab
 			AC_DEFINE(HAVE_RESMGR,1,[define if you have the resmgr library])
20e2dab
 			LIBS="$LIBS -lresmgr"
20e2dab
+            AC_SUBST(RESMGR_LIBS, "-lresmgr")
20e2dab
 		]
20e2dab
 	)
20e2dab
 ])
20e2dab
 
20e2dab
+AC_SUBST(USBCALLS_LIBS)
20e2dab
 AC_CHECK_HEADER(usbcalls.h,[
20e2dab
 			AC_DEFINE(HAVE_USBCALLS,1,[define if you have the usbcalls library])
20e2dab
 			LIBS="$LIBS -lusbcalls"
20e2dab
+            AC_SUBST(USBCALLS_LIBS, "-lusbcalls")
20e2dab
 		],,[
20e2dab
 #include <usb.h> 
20e2dab
 #include <os2.h>])
eec8f5d
@@ -279,6 +288,7 @@ if test -c /dev/urandom ; then
20e2dab
 fi
20e2dab
 
20e2dab
 dnl libusb on enabled by default (if found)
20e2dab
+AC_SUBST(PC_REQS)
20e2dab
 USE_LIBUSB=yes
20e2dab
 AC_ARG_ENABLE(libusb,
20e2dab
   AC_HELP_STRING([--disable-libusb],
eec8f5d
@@ -294,6 +304,10 @@ if test "${ac_cv_header_usb_h}" = "yes" 
20e2dab
   AC_CHECK_LIB(usb, usb_interrupt_read)
20e2dab
   if test "${ac_cv_lib_usb_usb_interrupt_read}" = "yes" ; then
20e2dab
     HAVE_LIBUSB="yes"
20e2dab
+    PKG_CHECK_MODULES(LIBUSB, libusb)
20e2dab
+    if test "${LIBUSB_LIBS}"; then
20e2dab
+      AC_SUBST(PC_REQS, "libusb $PC_REQS")
20e2dab
+    fi
20e2dab
   fi
20e2dab
 fi
20e2dab
 
eec8f5d
@@ -560,6 +574,7 @@ AC_CONFIG_FILES([Makefile lib/Makefile s
20e2dab
   japi/Makefile backend/Makefile include/Makefile doc/Makefile \
20e2dab
   po/Makefile testsuite/Makefile tools/Makefile doc/doxygen-sanei.conf])
20e2dab
 AC_CONFIG_FILES([tools/sane-config], [chmod a+x tools/sane-config])
20e2dab
+AC_CONFIG_FILES([tools/sane-backends.pc])
20e2dab
 AC_OUTPUT
20e2dab
 
20e2dab
 dnl ***********************************************************************