diff --git a/Makefile.am b/Makefile.am index 2d6d180e0..932c371ae 100644 --- a/Makefile.am +++ b/Makefile.am @@ -44,12 +44,20 @@ config.py: config.py.in Makefile -e "s|\@PACKAGE\@|$(PACKAGE)|" \ $< > $@ +if HAVE_CUPS_3 +CUPSCONF_SYSCONFDIR = +CUPSCONF_SERVERBINDIR = +else +CUPSCONF_SYSCONFDIR = $(sysconfdir) +CUPSCONF_SERVERBINDIR = $(cupsserverbindir) +endif + cupshelpers/config.py: cupshelpers/config.py.in Makefile $(mkdir_p) cupshelpers sed \ -e "s|\@prefix\@|$(prefix)|" \ - -e "s|\@sysconfdir\@|$(sysconfdir)|" \ - -e "s|\@cupsserverbindir\@|$(cupsserverbindir)|" \ + -e "s|\@sysconfdir\@|$(CUPSCONF_SYSCONFDIR)|" \ + -e "s|\@cupsserverbindir\@|$(CUPSCONF_SERVERBINDIR)|" \ $< > $@ dbus/org.fedoraproject.Config.Printing.service: dbus/org.fedoraproject.Config.Printing.service.in $(top_builddir)/config.status Makefile @@ -191,8 +199,8 @@ if UDEV_RULES udevrules_DATA=udev/70-printers.rules udev_udev_configure_printer_SOURCES=\ udev/udev-configure-printer.c -udev_udev_configure_printer_LDADD= -lcups -ludev $(libusb_LIBS) $(GLIB_LIBS) -udev_udev_configure_printer_CFLAGS= $(AM_CFLAGS) $(libusb_CFLAGS) $(GLIB_CFLAGS) +udev_udev_configure_printer_LDADD= $(CUPS_LIBS) -ludev $(libusb_LIBS) $(GLIB_LIBS) +udev_udev_configure_printer_CFLAGS= $(AM_CFLAGS) $(CUPS_CFLAGS) $(libusb_CFLAGS) $(GLIB_CFLAGS) udev_PROGRAMS=\ udev/udev-configure-printer udev_SCRIPTS=\ diff --git a/configure.ac b/configure.ac index 30d815cb3..3e5c76cee 100644 --- a/configure.ac +++ b/configure.ac @@ -35,6 +35,7 @@ AC_SUBST(DESKTOPPREFIX) PKG_PROG_PKG_CONFIG dnl Allow manual definition for CUPS SERVERBIN, if not defined, use value from pkg-config... +dnl For CUPS 3 (cups3.pc / libcups3), this is not required and may be left empty. AC_MSG_CHECKING([for CUPS SERVERBIN dir]) AC_ARG_WITH([cups_serverbin_dir], AS_HELP_STRING([--with-cups-serverbin-dir], [set CUPS SERVERBIN dir, default=value from pkg-config]), [ @@ -42,23 +43,48 @@ AC_ARG_WITH([cups_serverbin_dir], AC_MSG_RESULT([$withval]) ], [ AS_IF([test "x$PKG_CONFIG" != x], [ - AS_IF([$PKG_CONFIG --exists cups], [ - cupsserverbindir=$($PKG_CONFIG --variable=cups_serverbin cups) - AC_MSG_RESULT([$cupsserverbindir]) + dnl First try CUPS 3 (cups3.pc). CUPS 3 does not need serverbin, so we + dnl simply allow an empty value here. + AS_IF([$PKG_CONFIG --exists cups3], [ + cupsserverbindir="" + AC_MSG_RESULT([none (CUPS 3)]) ], [ - AC_MSG_ERROR([No CUPS pkgconfig file present and no CUPS SERVERBIN dir defined in configure options.]) + dnl Fall back to CUPS 2 (cups.pc) which still defines cups_serverbin. + AS_IF([$PKG_CONFIG --exists cups], [ + cupsserverbindir=$($PKG_CONFIG --variable=cups_serverbin cups) + AC_MSG_RESULT([$cupsserverbindir]) + ], [ + AC_MSG_ERROR([No CUPS pkgconfig file present (cups3.pc or cups.pc) and no CUPS SERVERBIN dir defined in configure options.]) + ]) ]) ], [ AC_MSG_ERROR([No pkg-config present and no CUPS SERVERBIN dir defined in configure options.]) ]) ]) -AS_IF([test "x$cupsserverbindir" = x], [ - AC_MSG_ERROR([No CUPS SERVERBIN dir defined in CUPS pkgconfig file or configure options.]) -]) - AC_SUBST(cupsserverbindir) +dnl Check for CUPS library (CUPS 3 via cups3.pc, else CUPS 2 via cups.pc) +AC_MSG_CHECKING([for CUPS library]) + +PKG_CHECK_MODULES([CUPS], [cups3], [ + have_cups3=yes + AC_DEFINE([HAVE_CUPS_3], [1], [Define if CUPS 3.x (libcups3) is available]) + cups_version=`$PKG_CONFIG --modversion cups3` + ], [ + have_cups3=no + PKG_CHECK_MODULES([CUPS], [cups >= 1.6], [ + cups_version=`$PKG_CONFIG --modversion cups` + ], [ + AC_MSG_ERROR([CUPS library not found. Need cups3.pc or cups.pc >= 1.6]) + ]) + ]) + +AC_MSG_RESULT([$cups_version]) +AC_SUBST([CUPS_CFLAGS]) +AC_SUBST([CUPS_LIBS]) +AM_CONDITIONAL([HAVE_CUPS_3], [test "x$have_cups3" = "xyes"]) + PKG_CHECK_MODULES(GLIB, glib-2.0, has_glib=yes, has_glib=no) AC_ARG_WITH(udev-rules,