diff options
Diffstat (limited to 'config-scripts/cups-common.m4')
-rw-r--r-- | config-scripts/cups-common.m4 | 438 |
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 |