summaryrefslogtreecommitdiff
path: root/config-scripts/cups-common.m4
diff options
context:
space:
mode:
Diffstat (limited to 'config-scripts/cups-common.m4')
-rw-r--r--config-scripts/cups-common.m4438
1 files changed, 438 insertions, 0 deletions
diff --git a/config-scripts/cups-common.m4 b/config-scripts/cups-common.m4
new file mode 100644
index 0000000..a5de94f
--- /dev/null
+++ b/config-scripts/cups-common.m4
@@ -0,0 +1,438 @@
+dnl
+dnl "$Id: cups-common.m4 10317 2012-03-01 00:05:55Z mike $"
+dnl
+dnl Common configuration stuff for CUPS.
+dnl
+dnl Copyright 2007-2012 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 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.60...
+AC_PREREQ(2.60)
+
+dnl Set the name of the config header file...
+AC_CONFIG_HEADER(config.h)
+
+dnl Version number information...
+CUPS_VERSION=1.5.3
+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
+CUPS_BUILD="cups-$CUPS_VERSION"
+
+AC_ARG_WITH(cups_build, [ --with-cups-build set "cups-config --build" string ],
+ CUPS_BUILD="$withval")
+
+AC_SUBST(CUPS_VERSION)
+AC_SUBST(CUPS_REVISION)
+AC_SUBST(CUPS_BUILD)
+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:=}"
+CPPFLAGS="${CPPFLAGS:=}"
+CXXFLAGS="${CXXFLAGS:=}"
+LDFLAGS="${LDFLAGS:=}"
+
+dnl Checks for programs...
+AC_PROG_AWK
+AC_PROG_CC
+AC_PROG_CPP
+AC_PROG_CXX
+AC_PROG_RANLIB
+AC_PATH_PROG(AR,ar)
+AC_PATH_PROG(CHMOD,chmod)
+AC_PATH_PROG(GZIP,gzip)
+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(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"
+AC_SUBST(INSTALL)
+AC_MSG_RESULT(using $INSTALL)
+
+if test "x$AR" = x; then
+ AC_MSG_ERROR([Unable to find required library archive command.])
+fi
+if test "x$CC" = x; then
+ AC_MSG_ERROR([Unable to find required C compiler command.])
+fi
+
+dnl Static library option...
+INSTALLSTATIC=""
+AC_ARG_ENABLE(static, [ --enable-static install static libraries])
+
+if test x$enable_static = xyes; then
+ echo Installing static libraries...
+ INSTALLSTATIC="installstatic"
+fi
+
+AC_SUBST(INSTALLSTATIC)
+
+dnl Check for pkg-config, which is used for some other tests later on...
+AC_PATH_PROG(PKGCONFIG, pkg-config)
+
+dnl Check for libraries...
+AC_SEARCH_LIBS(fmod, m)
+AC_SEARCH_LIBS(crypt, crypt)
+AC_SEARCH_LIBS(getspent, sec gen)
+
+LIBMALLOC=""
+AC_ARG_ENABLE(mallinfo, [ --enable-mallinfo build with malloc debug logging])
+
+if test x$enable_mallinfo = xyes; then
+ SAVELIBS="$LIBS"
+ LIBS=""
+ AC_SEARCH_LIBS(mallinfo, malloc, AC_DEFINE(HAVE_MALLINFO))
+ LIBMALLOC="$LIBS"
+ LIBS="$SAVELIBS"
+fi
+
+AC_SUBST(LIBMALLOC)
+
+dnl Check for libpaper support...
+AC_ARG_ENABLE(libpaper, [ --enable-libpaper build with libpaper support])
+
+if test x$enable_libpaper = xyes; then
+ AC_CHECK_LIB(paper,systempapername,
+ AC_DEFINE(HAVE_LIBPAPER)
+ LIBPAPER="-lpaper",
+ LIBPAPER="")
+else
+ LIBPAPER=""
+fi
+AC_SUBST(LIBPAPER)
+
+dnl Checks for header files.
+AC_HEADER_STDC
+AC_CHECK_HEADER(crypt.h,AC_DEFINE(HAVE_CRYPT_H))
+AC_CHECK_HEADER(langinfo.h,AC_DEFINE(HAVE_LANGINFO_H))
+AC_CHECK_HEADER(malloc.h,AC_DEFINE(HAVE_MALLOC_H))
+AC_CHECK_HEADER(shadow.h,AC_DEFINE(HAVE_SHADOW_H))
+AC_CHECK_HEADER(string.h,AC_DEFINE(HAVE_STRING_H))
+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 iconv.h and iconv_open
+AC_CHECK_HEADER(iconv.h,
+ SAVELIBS="$LIBS"
+ LIBS=""
+ AC_SEARCH_LIBS(iconv_open,iconv,
+ AC_DEFINE(HAVE_ICONV_H)
+ SAVELIBS="$SAVELIBS $LIBS")
+ LIBS="$SAVELIBS")
+
+dnl Checks for statfs and its many headers...
+AC_CHECK_HEADER(sys/mount.h,AC_DEFINE(HAVE_SYS_MOUNT_H))
+AC_CHECK_HEADER(sys/statfs.h,AC_DEFINE(HAVE_SYS_STATFS_H))
+AC_CHECK_HEADER(sys/statvfs.h,AC_DEFINE(HAVE_SYS_STATVFS_H))
+AC_CHECK_HEADER(sys/vfs.h,AC_DEFINE(HAVE_SYS_VFS_H))
+AC_CHECK_FUNCS(statfs statvfs)
+
+dnl Checks for string functions.
+AC_CHECK_FUNCS(strdup strlcat strlcpy)
+if test "$uname" = "HP-UX" -a "$uversion" = "1020"; then
+ echo Forcing snprintf emulation for HP-UX.
+else
+ AC_CHECK_FUNCS(snprintf vsnprintf)
+fi
+
+dnl Check for random number functions...
+AC_CHECK_FUNCS(random lrand48 arc4random)
+
+dnl Check for geteuid function.
+AC_CHECK_FUNCS(geteuid)
+
+dnl Check for setpgid function.
+AC_CHECK_FUNCS(setpgid)
+
+dnl Check for vsyslog function.
+AC_CHECK_FUNCS(vsyslog)
+
+dnl Checks for signal functions.
+case "$uname" in
+ Linux | GNU)
+ # Do not use sigset on Linux or GNU HURD
+ ;;
+ *)
+ # Use sigset on other platforms, if available
+ AC_CHECK_FUNCS(sigset)
+ ;;
+esac
+
+AC_CHECK_FUNCS(sigaction)
+
+dnl Checks for wait functions.
+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)
+AC_TRY_COMPILE([#include <time.h>],[struct tm t;
+ int o = t.tm_gmtoff;],
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_TM_GMTOFF),
+ AC_MSG_RESULT(no))
+
+dnl See if the stat structure has the st_gen member...
+AC_MSG_CHECKING(for st_gen member in stat structure)
+AC_TRY_COMPILE([#include <sys/stat.h>],[struct stat t;
+ int o = t.st_gen;],
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_ST_GEN),
+ AC_MSG_RESULT(no))
+
+dnl See if we have the removefile(3) function for securely removing files
+AC_CHECK_FUNCS(removefile)
+
+dnl See if we have libusb...
+AC_ARG_ENABLE(libusb, [ --enable-libusb use libusb for USB printing])
+
+LIBUSB=""
+AC_SUBST(LIBUSB)
+
+if test "x$PKGCONFIG" != x; then
+ if test x$enable_libusb = xyes -o $uname != Darwin; then
+ AC_MSG_CHECKING(for libusb-1.0)
+ if $PKGCONFIG --exists libusb-1.0; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_LIBUSB)
+ CFLAGS="$CFLAGS `$PKGCONFIG --cflags libusb-1.0`"
+ LIBUSB="`$PKGCONFIG --libs libusb-1.0`"
+ else
+ AC_MSG_RESULT(no)
+ fi
+ fi
+elif test x$enable_libusb = xyes; then
+ AC_MSG_ERROR(Need pkg-config to enable libusb support.)
+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])
+
+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
+ Darwin* | *BSD*)
+ ARFLAGS="-rcv"
+ ;;
+ *)
+ ARFLAGS="crvs"
+ ;;
+esac
+
+AC_SUBST(ARFLAGS)
+
+dnl Prep libraries specifically for cupsd and backends...
+BACKLIBS=""
+SERVERLIBS=""
+AC_SUBST(BACKLIBS)
+AC_SUBST(SERVERLIBS)
+
+dnl See if we have POSIX ACL support...
+SAVELIBS="$LIBS"
+LIBS=""
+AC_ARG_ENABLE(acl, [ --enable-acl build with POSIX ACL support])
+if test "x$enable_acl" != xno; then
+ AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT))
+ SERVERLIBS="$SERVERLIBS $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 build with DBUS support])
+AC_ARG_WITH(dbusdir, [ --with-dbusdir set DBUS configuration directory ],
+ DBUSDIR="$withval")
+
+DBUS_NOTIFIER=""
+DBUS_NOTIFIERLIBS=""
+
+if test "x$enable_dbus" != xno -a "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"
+ SERVERLIBS="$SERVERLIBS `$PKGCONFIG --libs dbus-1`"
+ DBUS_NOTIFIER="dbus"
+ DBUS_NOTIFIERLIBS="`$PKGCONFIG --libs dbus-1`"
+ SAVELIBS="$LIBS"
+ LIBS="$LIBS $DBUS_NOTIFIERLIBS"
+ AC_CHECK_FUNC(dbus_message_iter_init_append,
+ AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND))
+ LIBS="$SAVELIBS"
+ else
+ AC_MSG_RESULT(no)
+ fi
+fi
+
+AC_SUBST(DBUSDIR)
+AC_SUBST(DBUS_NOTIFIER)
+AC_SUBST(DBUS_NOTIFIERLIBS)
+
+dnl Extra platform-specific libraries...
+CUPS_DEFAULT_PRINTOPERATOR_AUTH="@SYSTEM"
+CUPS_SYSTEM_AUTHKEY=""
+INSTALLXPC=""
+LEGACY_BACKENDS="parallel"
+
+case $uname in
+ Darwin*)
+ LEGACY_BACKENDS=""
+ BACKLIBS="$BACKLIBS -framework IOKit"
+ SERVERLIBS="$SERVERLIBS -framework IOKit -weak_framework ApplicationServices"
+ LIBS="-framework SystemConfiguration -framework CoreFoundation -framework Security $LIBS"
+
+ dnl Check for framework headers...
+ AC_CHECK_HEADER(ApplicationServices/ApplicationServices.h,AC_DEFINE(HAVE_APPLICATIONSERVICES_H))
+ 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))
+ AC_CHECK_HEADER(IOKit/pwr_mgt/IOPMLibPrivate.h,AC_DEFINE(HAVE_IOKIT_PWR_MGT_IOPMLIBPRIVATE_H))
+
+ dnl Check for dynamic store function...
+ AC_CHECK_FUNCS(SCDynamicStoreCopyComputerName)
+
+ dnl Check for new ColorSync APIs...
+ SAVELIBS="$LIBS"
+ LIBS="$LIBS -framework ApplicationServices"
+ AC_CHECK_FUNCS(ColorSyncRegisterDevice)
+ LIBS="$SAVELIBS"
+
+ 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 Check for the vproc_transaction_begin/end stuff...
+ AC_CHECK_FUNCS(vproc_transaction_begin)
+
+ dnl Need <dlfcn.h> 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)
+
+ 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_PRINTOPERATOR_AUTH="@AUTHKEY($default_operkey) @admin @lpadmin"
+ elif grep -q system.print.operator /etc/authorization; then
+ CUPS_DEFAULT_PRINTOPERATOR_AUTH="@AUTHKEY(system.print.operator) @admin @lpadmin"
+ else
+ CUPS_DEFAULT_PRINTOPERATOR_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
+ if test $uversion -ge 100; then
+ AC_CHECK_HEADER(sandbox.h,AC_DEFINE(HAVE_SANDBOX_H))
+ fi
+ if test $uversion -ge 110; then
+ # Broken public headers in 10.7...
+ AC_MSG_CHECKING(for sandbox/private.h presence)
+ if test -f /usr/local/include/sandbox/private.h; then
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ AC_MSG_ERROR(Run 'sudo mkdir -p /usr/local/include/sandbox' and 'sudo touch /usr/local/include/sandbox/private.h' to build CUPS.)
+ fi
+ fi
+
+ dnl Check for XPC support
+ AC_CHECK_HEADER(xpc/xpc.h,
+ AC_DEFINE(HAVE_XPC)
+ INSTALLXPC="install-xpc")
+ ;;
+esac
+
+AC_SUBST(CUPS_DEFAULT_PRINTOPERATOR_AUTH)
+AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTOPERATOR_AUTH, "$CUPS_DEFAULT_PRINTOPERATOR_AUTH")
+AC_SUBST(CUPS_SYSTEM_AUTHKEY)
+AC_SUBST(INSTALLXPC)
+AC_SUBST(LEGACY_BACKENDS)
+
+dnl Check for build components
+COMPONENTS="all"
+
+AC_ARG_WITH(components, [ --with-components set components to build:
+ - "all" (default) builds everything
+ - "core" builds libcups and ipptool],
+ COMPONENTS="$withval")
+
+case "$COMPONENTS" in
+ all)
+ BUILDDIRS="filter backend berkeley cgi-bin driver monitor notifier ppdc scheduler systemv conf data desktop locale man doc examples templates"
+ ;;
+
+ core)
+ BUILDDIRS="data locale"
+ ;;
+
+ *)
+ AC_MSG_ERROR([Bad build component "$COMPONENT" specified!])
+ ;;
+esac
+
+AC_SUBST(BUILDDIRS)
+
+dnl
+dnl End of "$Id: cups-common.m4 10317 2012-03-01 00:05:55Z mike $".
+dnl