2 dnl "$Id: cups-common.m4 6964 2007-09-17 21:33:57Z mike $"
4 dnl Common configuration stuff for the Common UNIX Printing System (CUPS).
6 dnl Copyright 2007-2008 by Apple Inc.
7 dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
9 dnl These coded instructions, statements, and computer programs are the
10 dnl property of Apple Inc. and are protected by Federal copyright
11 dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
12 dnl which should have been included with this file. If this file is
13 dnl file is missing or damaged, see the license at "http://www.cups.org/".
16 dnl We need at least autoconf 2.60...
19 dnl Set the name of the config header file...
20 AC_CONFIG_HEADER(config.h)
22 dnl Version number information...
25 if test -z "$CUPS_REVISION" -a -d .svn; then
26 CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`"
29 AC_SUBST(CUPS_VERSION)
30 AC_SUBST(CUPS_REVISION)
31 AC_DEFINE_UNQUOTED(CUPS_SVERSION, "CUPS v$CUPS_VERSION$CUPS_REVISION")
32 AC_DEFINE_UNQUOTED(CUPS_MINIMAL, "CUPS/$CUPS_VERSION$CUPS_REVISION")
34 dnl Default compiler flags...
36 CPPFLAGS="${CPPFLAGS:=}"
37 CXXFLAGS="${CXXFLAGS:=}"
38 LDFLAGS="${LDFLAGS:=}"
40 dnl Checks for programs...
47 AC_PATH_PROG(HTMLDOC,htmldoc)
52 AC_PATH_PROG(RMDIR,rmdir)
55 AC_MSG_CHECKING(for install-sh script)
56 INSTALL="`pwd`/install-sh -c"
58 AC_MSG_RESULT(using $INSTALL)
60 if test "x$AR" = x; then
61 AC_MSG_ERROR([Unable to find required library archive command.])
63 if test "x$CC" = x; then
64 AC_MSG_ERROR([Unable to find required C compiler command.])
67 dnl Static library option...
69 AC_ARG_ENABLE(static, [ --enable-static install static libraries, default=no])
71 if test x$enable_static = xyes; then
72 echo Installing static libraries...
73 INSTALLSTATIC="installstatic"
76 AC_SUBST(INSTALLSTATIC)
78 dnl Check for libraries...
79 AC_SEARCH_LIBS(crypt, crypt)
80 AC_SEARCH_LIBS(getspent, sec gen)
83 AC_ARG_ENABLE(mallinfo, [ --enable-mallinfo turn on malloc debug information, default=no])
85 if test x$enable_mallinfo = xyes; then
86 AC_CHECK_LIB(c,mallinfo,LIBS="$LIBS"; AC_DEFINE(HAVE_MALLINFO),LIBS="$LIBS")
87 if test "$ac_cv_lib_c_mallinfo" = "no"; then
88 AC_CHECK_LIB(malloc,mallinfo,
91 AC_DEFINE(HAVE_MALLINFO),
98 dnl Check for libpaper support...
99 AC_ARG_ENABLE(libpaper, [ --enable-libpaper turn on libpaper support, default=no])
101 if test x$enable_libpaper = xyes; then
102 AC_CHECK_LIB(paper,systempapername,
103 AC_DEFINE(HAVE_LIBPAPER)
111 dnl Checks for header files.
113 AC_CHECK_HEADER(crypt.h,AC_DEFINE(HAVE_CRYPT_H))
114 AC_CHECK_HEADER(langinfo.h,AC_DEFINE(HAVE_LANGINFO_H))
115 AC_CHECK_HEADER(malloc.h,AC_DEFINE(HAVE_MALLOC_H))
116 AC_CHECK_HEADER(shadow.h,AC_DEFINE(HAVE_SHADOW_H))
117 AC_CHECK_HEADER(string.h,AC_DEFINE(HAVE_STRING_H))
118 AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
119 AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
120 AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H))
121 AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
122 AC_CHECK_HEADER(sys/param.h,AC_DEFINE(HAVE_SYS_PARAM_H))
123 AC_CHECK_HEADER(sys/ucred.h,AC_DEFINE(HAVE_SYS_UCRED_H))
124 AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H))
126 dnl Checks for string functions.
127 AC_CHECK_FUNCS(strdup strcasecmp strncasecmp strlcat strlcpy)
128 if test "$uname" = "HP-UX" -a "$uversion" = "1020"; then
129 echo Forcing snprintf emulation for HP-UX.
131 AC_CHECK_FUNCS(snprintf vsnprintf)
134 dnl Check for random number functions...
135 AC_CHECK_FUNCS(random mrand48 lrand48)
137 dnl Checks for mkstemp and mkstemps functions.
138 AC_CHECK_FUNCS(mkstemp mkstemps)
140 dnl Check for geteuid function.
141 AC_CHECK_FUNCS(geteuid)
143 dnl Check for vsyslog function.
144 AC_CHECK_FUNCS(vsyslog)
146 dnl Checks for signal functions.
149 # Do not use sigset on Linux or GNU HURD
152 # Use sigset on other platforms, if available
153 AC_CHECK_FUNCS(sigset)
157 AC_CHECK_FUNCS(sigaction)
159 dnl Checks for wait functions.
160 AC_CHECK_FUNCS(waitpid wait3)
162 dnl See if the tm structure has the tm_gmtoff member...
163 AC_MSG_CHECKING(for tm_gmtoff member in tm structure)
164 AC_TRY_COMPILE([#include <time.h>],[struct tm t;
165 int o = t.tm_gmtoff;],
167 AC_DEFINE(HAVE_TM_GMTOFF),
170 dnl See if we have the removefile(3) function for securely removing files
171 AC_CHECK_FUNCS(removefile)
173 dnl Flags for "ar" command...
185 dnl Prep libraries specifically for cupsd and backends...
191 dnl See if we have POSIX ACL support...
194 AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT))
195 CUPSDLIBS="$CUPSDLIBS $LIBS"
198 dnl Check for DBUS support
199 if test -d /etc/dbus-1; then
200 DBUSDIR="/etc/dbus-1"
205 AC_ARG_ENABLE(dbus, [ --enable-dbus enable DBUS support, default=auto])
206 AC_ARG_WITH(dbusdir, [ --with-dbusdir set DBUS configuration directory ],
209 if test "x$enable_dbus" != xno; then
210 AC_PATH_PROG(PKGCONFIG, pkg-config)
211 if test "x$PKGCONFIG" != x; then
212 AC_MSG_CHECKING(for DBUS)
213 if $PKGCONFIG --exists dbus-1; then
216 CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1` -DDBUS_API_SUBJECT_TO_CHANGE"
217 CUPSDLIBS="$CUPSDLIBS `$PKGCONFIG --libs dbus-1`"
219 dbus_message_iter_init_append,
220 AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND),,
221 `$PKGCONFIG --libs dbus-1`)
230 dnl Extra platform-specific libraries...
231 CUPS_DEFAULT_PRINTADMIN_AUTH="@SYSTEM"
232 CUPS_SYSTEM_AUTHKEY=""
234 LEGACY_BACKENDS="parallel scsi"
240 BACKLIBS="$BACKLIBS -framework IOKit"
241 CUPSDLIBS="$CUPSDLIBS -sectorder __TEXT __text cupsd.order -e start -framework IOKit -framework SystemConfiguration -weak_framework ApplicationServices"
242 LIBS="-framework SystemConfiguration -framework CoreFoundation $LIBS"
244 dnl Check for framework headers...
245 AC_CHECK_HEADER(CoreFoundation/CoreFoundation.h,AC_DEFINE(HAVE_COREFOUNDATION_H))
246 AC_CHECK_HEADER(CoreFoundation/CFPriv.h,AC_DEFINE(HAVE_CFPRIV_H))
247 AC_CHECK_HEADER(CoreFoundation/CFBundlePriv.h,AC_DEFINE(HAVE_CFBUNDLEPRIV_H))
249 dnl Check for the new membership functions in MacOSX 10.4...
250 AC_CHECK_HEADER(membership.h,AC_DEFINE(HAVE_MEMBERSHIP_H))
251 AC_CHECK_HEADER(membershipPriv.h,AC_DEFINE(HAVE_MEMBERSHIPPRIV_H))
252 AC_CHECK_FUNCS(mbr_uid_to_uuid)
254 dnl Need <dlfcn.h> header...
255 AC_CHECK_HEADER(dlfcn.h,AC_DEFINE(HAVE_DLFCN_H))
257 dnl Check for notify_post support
258 AC_CHECK_HEADER(notify.h,AC_DEFINE(HAVE_NOTIFY_H))
259 AC_CHECK_FUNCS(notify_post)
261 dnl Check for Authorization Services support
262 AC_CHECK_HEADER(Security/Authorization.h, [
263 AC_DEFINE(HAVE_AUTHORIZATION_H)
264 if grep -q system.print.operator /etc/authorization; then
265 CUPS_DEFAULT_PRINTADMIN_AUTH="@AUTHKEY(system.print.admin) @admin @lpadmin"
266 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.preferences"
268 CUPS_DEFAULT_PRINTADMIN_AUTH="@AUTHKEY(system.print.operator) @admin @lpadmin"
269 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.print.admin"
271 AC_CHECK_HEADER(Security/SecBasePriv.h,AC_DEFINE(HAVE_SECBASEPRIV_H))
273 dnl Check for sandbox/Seatbelt support
274 AC_CHECK_HEADER(sandbox.h,AC_DEFINE(HAVE_SANDBOX_H))
278 AC_SUBST(CUPS_DEFAULT_PRINTADMIN_AUTH)
279 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTADMIN_AUTH, "$CUPS_DEFAULT_PRINTADMIN_AUTH")
280 AC_SUBST(CUPS_SYSTEM_AUTHKEY)
282 AC_SUBST(LEGACY_BACKENDS)
285 dnl End of "$Id: cups-common.m4 6964 2007-09-17 21:33:57Z mike $".