X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=config-scripts%2Fcups-common.m4;h=a9eae2709073303c87a61af7b9ca30b3520086f8;hb=ee571f261ae1551ae79bde94fa913835bf8462da;hp=18d0bfff127c61e03e5efa3cbbea35fee0ad0ac5;hpb=09ec001812911f8890dad0f164ab9098e22208cf;p=thirdparty%2Fcups.git diff --git a/config-scripts/cups-common.m4 b/config-scripts/cups-common.m4 index 18d0bfff1..a9eae2709 100644 --- a/config-scripts/cups-common.m4 +++ b/config-scripts/cups-common.m4 @@ -1,38 +1,35 @@ dnl -dnl "$Id: cups-common.m4 5007 2006-01-27 18:25:42Z mike $" +dnl "$Id: cups-common.m4 7695 2008-06-26 00:46:24Z mike $" dnl dnl Common configuration stuff for the Common UNIX Printing System (CUPS). dnl -dnl Copyright 1997-2005 by Easy Software Products, all rights reserved. +dnl Copyright 2007-2008 by Apple Inc. +dnl Copyright 1997-2007 by Easy Software Products, all rights reserved. dnl dnl These coded instructions, statements, and computer programs are the -dnl property of Easy Software Products and are protected by Federal -dnl copyright law. Distribution and use rights are outlined in the file -dnl "LICENSE.txt" which should have been included with this file. If this -dnl file is missing or damaged please contact Easy Software Products -dnl at: -dnl -dnl Attn: CUPS Licensing Information -dnl Easy Software Products -dnl 44141 Airport View Drive, Suite 204 -dnl Hollywood, Maryland 20636 USA -dnl -dnl Voice: (301) 373-9600 -dnl EMail: cups-info@cups.org -dnl WWW: http://www.cups.org +dnl property of Apple Inc. and are protected by Federal copyright +dnl law. Distribution and use rights are outlined in the file "LICENSE.txt" +dnl which should have been included with this file. If this file is +dnl file is missing or damaged, see the license at "http://www.cups.org/". dnl -dnl We need at least autoconf 2.50... -AC_PREREQ(2.50) +dnl We need at least autoconf 2.60... +AC_PREREQ(2.60) dnl Set the name of the config header file... AC_CONFIG_HEADER(config.h) -dnl Versio number information... -CUPS_VERSION="1.2svn" +dnl Version number information... +CUPS_VERSION="1.4svn" +CUPS_REVISION="" +if test -z "$CUPS_REVISION" -a -d .svn; then + CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`" +fi + AC_SUBST(CUPS_VERSION) -AC_DEFINE_UNQUOTED(CUPS_SVERSION, "CUPS v$CUPS_VERSION") -AC_DEFINE_UNQUOTED(CUPS_MINIMAL, "CUPS/$CUPS_VERSION") +AC_SUBST(CUPS_REVISION) +AC_DEFINE_UNQUOTED(CUPS_SVERSION, "CUPS v$CUPS_VERSION$CUPS_REVISION") +AC_DEFINE_UNQUOTED(CUPS_MINIMAL, "CUPS/$CUPS_VERSION$CUPS_REVISION") dnl Default compiler flags... CFLAGS="${CFLAGS:=}" @@ -43,21 +40,29 @@ LDFLAGS="${LDFLAGS:=}" dnl Checks for programs... AC_PROG_AWK AC_PROG_CC -AC_PROG_CXX AC_PROG_CPP -AC_PROG_INSTALL -if test "$INSTALL" = "$ac_install_sh"; then - # Use full path to install-sh script... - INSTALL="`pwd`/install-sh -c" -fi +AC_PROG_CXX AC_PROG_RANLIB AC_PATH_PROG(AR,ar) AC_PATH_PROG(HTMLDOC,htmldoc) +AC_PATH_PROG(LD,ld) AC_PATH_PROG(LN,ln) AC_PATH_PROG(MV,mv) AC_PATH_PROG(RM,rm) +AC_PATH_PROG(RMDIR,rmdir) AC_PATH_PROG(SED,sed) -AC_PATH_PROG(STRIP,strip) +AC_PATH_PROG(XDGOPEN,xdg-open) +if test "x$XDGOPEN" = x; then + CUPS_HTMLVIEW="htmlview" +else + CUPS_HTMLVIEW="$XDGOPEN" +fi +AC_SUBST(CUPS_HTMLVIEW) + +AC_MSG_CHECKING(for install-sh script) +INSTALL="`pwd`/install-sh -c" +AC_SUBST(INSTALL) +AC_MSG_RESULT(using $INSTALL) if test "x$AR" = x; then AC_MSG_ERROR([Unable to find required library archive command.]) @@ -65,15 +70,13 @@ fi if test "x$CC" = x; then AC_MSG_ERROR([Unable to find required C compiler command.]) fi -if test "x$CXX" = x; then - AC_MSG_ERROR([Unable to find required C++ compiler command.]) -fi dnl Static library option... INSTALLSTATIC="" -AC_ARG_ENABLE(install_static, [ --enable-static install static libraries, default=no]) +AC_ARG_ENABLE(static, [ --enable-static install static libraries, default=no]) -if test x$enable_install_static = xyes; then +if test x$enable_static = xyes; then + echo Installing static libraries... INSTALLSTATIC="installstatic" fi @@ -87,14 +90,11 @@ LIBMALLOC="" AC_ARG_ENABLE(mallinfo, [ --enable-mallinfo turn on malloc debug information, default=no]) if test x$enable_mallinfo = xyes; then - AC_CHECK_LIB(c,mallinfo,LIBS="$LIBS"; AC_DEFINE(HAVE_MALLINFO),LIBS="$LIBS") - if test "$ac_cv_lib_c_mallinfo" = "no"; then - AC_CHECK_LIB(malloc,mallinfo, - LIBS="$LIBS" - LIBMALLOC="-lmalloc" - AC_DEFINE(HAVE_MALLINFO), - LIBS="$LIBS") - fi + SAVELIBS="$LIBS" + LIBS="" + AC_SEARCH_LIBS(mallinfo, malloc, AC_DEFINE(HAVE_MALLINFO)) + LIBMALLOC="$LIBS" + LIBS="$SAVELIBS" fi AC_SUBST(LIBMALLOC) @@ -123,6 +123,9 @@ AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H)) AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H)) AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H)) AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H)) +AC_CHECK_HEADER(sys/param.h,AC_DEFINE(HAVE_SYS_PARAM_H)) +AC_CHECK_HEADER(sys/ucred.h,AC_DEFINE(HAVE_SYS_UCRED_H)) +AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H)) dnl Checks for string functions. AC_CHECK_FUNCS(strdup strcasecmp strncasecmp strlcat strlcpy) @@ -132,6 +135,9 @@ else AC_CHECK_FUNCS(snprintf vsnprintf) fi +dnl Check for random number functions... +AC_CHECK_FUNCS(random mrand48 lrand48) + dnl Checks for mkstemp and mkstemps functions. AC_CHECK_FUNCS(mkstemp mkstemps) @@ -155,8 +161,7 @@ esac AC_CHECK_FUNCS(sigaction) dnl Checks for wait functions. -AC_CHECK_FUNCS(waitpid) -AC_CHECK_FUNCS(wait3) +AC_CHECK_FUNCS(waitpid wait3) dnl See if the tm structure has the tm_gmtoff member... AC_MSG_CHECKING(for tm_gmtoff member in tm structure) @@ -166,10 +171,42 @@ AC_TRY_COMPILE([#include ],[struct tm t; AC_DEFINE(HAVE_TM_GMTOFF), AC_MSG_RESULT(no)) -dnl See if we have POSIX ACL support... -dnl TODO: Linux/Solaris/IRIX/etc. version +dnl See if we have the removefile(3) function for securely removing files +AC_CHECK_FUNCS(removefile) -AC_CHECK_FUNCS(acl_init) +dnl See if we have libusb... +AC_ARG_ENABLE(libusb, [ --enable-libusb use libusb for USB printing, default=auto]) + +LIBUSB="" +AC_SUBST(LIBUSB) + +if test x$enable_libusb = xyes; then + check_libusb=yes +elif test x$enable_libusb != xno -a $uname != Darwin; then + check_libusb=yes +else + check_libusb=no +fi + +if test $check_libusb = yes; then + AC_CHECK_LIB(usb, usb_init,[ + AC_CHECK_HEADER(usb.h, + AC_DEFINE(HAVE_USB_H) + LIBUSB="-lusb")]) +fi + +dnl See if we have libwrap for TCP wrappers support... +AC_ARG_ENABLE(tcp_wrappers, [ --enable-tcp-wrappers use libwrap for TCP wrappers support, default=no]) + +LIBWRAP="" +AC_SUBST(LIBWRAP) + +if test x$enable_tcp_wrappers = xyes; then + AC_CHECK_LIB(wrap, hosts_access,[ + AC_CHECK_HEADER(tcpd.h, + AC_DEFINE(HAVE_TCPD_H) + LIBWRAP="-lwrap")]) +fi dnl Flags for "ar" command... case $uname in @@ -183,53 +220,124 @@ esac AC_SUBST(ARFLAGS) -dnl Extra platform-specific libraries... -case $uname in - Darwin*) - BACKLIBS="-framework IOKit" - CUPSDLIBS="-framework IOKit -framework SystemConfiguration" - LIBS="-framework CoreFoundation $LIBS" - - dnl Check for CFLocaleCreateCanonicalLocaleIdentifierFromString... - AC_MSG_CHECKING(for CFLocaleCreateCanonicalLocaleIdentifierFromString) - if test "$uname" = "Darwin" -a $uversion -ge 70; then - AC_DEFINE(HAVE_CF_LOCALE_ID) +dnl Prep libraries specifically for cupsd and backends... +BACKLIBS="" +CUPSDLIBS="" +AC_SUBST(BACKLIBS) +AC_SUBST(CUPSDLIBS) + +dnl See if we have POSIX ACL support... +SAVELIBS="$LIBS" +LIBS="" +AC_ARG_ENABLE(acl, [ --enable-acl enable POSIX ACL support, default=auto]) +if test "x$enable_acl" != xno; then + AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT)) + CUPSDLIBS="$CUPSDLIBS $LIBS" +fi +LIBS="$SAVELIBS" + +dnl Check for DBUS support +if test -d /etc/dbus-1; then + DBUSDIR="/etc/dbus-1" +else + DBUSDIR="" +fi + +AC_ARG_ENABLE(dbus, [ --enable-dbus enable DBUS support, default=auto]) +AC_ARG_WITH(dbusdir, [ --with-dbusdir set DBUS configuration directory ], + DBUSDIR="$withval") + +if test "x$enable_dbus" != xno; then + AC_PATH_PROG(PKGCONFIG, pkg-config) + if test "x$PKGCONFIG" != x; then + AC_MSG_CHECKING(for DBUS) + if $PKGCONFIG --exists dbus-1; then AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_DBUS) + CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1` -DDBUS_API_SUBJECT_TO_CHANGE" + CUPSDLIBS="$CUPSDLIBS `$PKGCONFIG --libs dbus-1`" + AC_CHECK_LIB(dbus-1, + dbus_message_iter_init_append, + AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND),, + `$PKGCONFIG --libs dbus-1`) else AC_MSG_RESULT(no) fi + fi +fi + +AC_SUBST(DBUSDIR) + +dnl Extra platform-specific libraries... +CUPS_DEFAULT_PRINTADMIN_AUTH="@SYSTEM" +CUPS_SYSTEM_AUTHKEY="" +FONTS="fonts" +LEGACY_BACKENDS="parallel scsi" + +case $uname in + Darwin*) + FONTS="" + LEGACY_BACKENDS="" + BACKLIBS="$BACKLIBS -framework IOKit" + CUPSDLIBS="$CUPSDLIBS -sectorder __TEXT __text cupsd.order -e start -framework IOKit -framework SystemConfiguration -weak_framework ApplicationServices" + LIBS="-framework SystemConfiguration -framework CoreFoundation $LIBS" dnl Check for framework headers... AC_CHECK_HEADER(CoreFoundation/CoreFoundation.h,AC_DEFINE(HAVE_COREFOUNDATION_H)) AC_CHECK_HEADER(CoreFoundation/CFPriv.h,AC_DEFINE(HAVE_CFPRIV_H)) AC_CHECK_HEADER(CoreFoundation/CFBundlePriv.h,AC_DEFINE(HAVE_CFBUNDLEPRIV_H)) - dnl Check for the new membership functions in MacOSX 10.4 (Tiger)... + dnl Check for the new membership functions in MacOSX 10.4... AC_CHECK_HEADER(membership.h,AC_DEFINE(HAVE_MEMBERSHIP_H)) AC_CHECK_HEADER(membershipPriv.h,AC_DEFINE(HAVE_MEMBERSHIPPRIV_H)) AC_CHECK_FUNCS(mbr_uid_to_uuid) + dnl Need header... + AC_CHECK_HEADER(dlfcn.h,AC_DEFINE(HAVE_DLFCN_H)) + dnl Check for notify_post support AC_CHECK_HEADER(notify.h,AC_DEFINE(HAVE_NOTIFY_H)) AC_CHECK_FUNCS(notify_post) - ;; - *) - BACKLIBS="" - CUPSDLIBS="" + + dnl Check for Authorization Services support + AC_ARG_WITH(adminkey, [ --with-adminkey set the default SystemAuthKey value], + default_adminkey="$withval", + default_adminkey="default") + AC_ARG_WITH(operkey, [ --with-operkey set the default operator @AUTHKEY value], + default_operkey="$withval", + default_operkey="default") + + AC_CHECK_HEADER(Security/Authorization.h, [ + AC_DEFINE(HAVE_AUTHORIZATION_H) + + if test "x$default_adminkey" != xdefault; then + CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey $default_adminkey" + elif grep -q system.print.operator /etc/authorization; then + CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.print.admin" + else + CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.preferences" + fi + + if test "x$default_operkey" != xdefault; then + CUPS_DEFAULT_PRINTADMIN_AUTH="@AUTHKEY($default_operkey) @admin @lpadmin" + elif grep -q system.print.operator /etc/authorization; then + CUPS_DEFAULT_PRINTADMIN_AUTH="@AUTHKEY(system.print.operator) @admin @lpadmin" + else + CUPS_DEFAULT_PRINTADMIN_AUTH="@AUTHKEY(system.print.admin) @admin @lpadmin" + fi]) + AC_CHECK_HEADER(Security/SecBasePriv.h,AC_DEFINE(HAVE_SECBASEPRIV_H)) + + dnl Check for sandbox/Seatbelt support + AC_CHECK_HEADER(sandbox.h,AC_DEFINE(HAVE_SANDBOX_H)) ;; esac -AC_SUBST(BACKLIBS) -AC_SUBST(CUPSDLIBS) - -dnl New default port definition for IPP... -AC_ARG_WITH(ipp-port, [ --with-ipp-port set default port number for IPP ], - DEFAULT_IPP_PORT="$withval", - DEFAULT_IPP_PORT="631") - -AC_SUBST(DEFAULT_IPP_PORT) -AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT) +AC_SUBST(CUPS_DEFAULT_PRINTADMIN_AUTH) +AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTADMIN_AUTH, "$CUPS_DEFAULT_PRINTADMIN_AUTH") +AC_SUBST(CUPS_SYSTEM_AUTHKEY) +AC_SUBST(FONTS) +AC_SUBST(LEGACY_BACKENDS) dnl -dnl End of "$Id: cups-common.m4 5007 2006-01-27 18:25:42Z mike $". +dnl End of "$Id: cups-common.m4 7695 2008-06-26 00:46:24Z mike $". dnl