2 dnl "$Id: cups-common.m4 8781 2009-08-28 17:34:54Z mike $"
4 dnl Common configuration stuff for CUPS.
6 dnl Copyright 2007-2010 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'`"
28 CUPS_BUILD="cups-$CUPS_VERSION"
30 AC_ARG_WITH(cups_build, [ --with-cups-build set "cups-config --build" string ],
31 CUPS_BUILD="$withval")
33 AC_SUBST(CUPS_VERSION)
34 AC_SUBST(CUPS_REVISION)
36 AC_DEFINE_UNQUOTED(CUPS_SVERSION, "CUPS v$CUPS_VERSION$CUPS_REVISION")
37 AC_DEFINE_UNQUOTED(CUPS_MINIMAL, "CUPS/$CUPS_VERSION$CUPS_REVISION")
39 dnl Default compiler flags...
41 CPPFLAGS="${CPPFLAGS:=}"
42 CXXFLAGS="${CXXFLAGS:=}"
43 LDFLAGS="${LDFLAGS:=}"
45 dnl Checks for programs...
52 AC_PATH_PROG(CHMOD,chmod)
53 AC_PATH_PROG(HTMLDOC,htmldoc)
58 AC_PATH_PROG(RMDIR,rmdir)
60 AC_PATH_PROG(XDGOPEN,xdg-open)
61 if test "x$XDGOPEN" = x; then
62 CUPS_HTMLVIEW="htmlview"
64 CUPS_HTMLVIEW="$XDGOPEN"
66 AC_SUBST(CUPS_HTMLVIEW)
68 AC_MSG_CHECKING(for install-sh script)
69 INSTALL="`pwd`/install-sh"
71 AC_MSG_RESULT(using $INSTALL)
73 if test "x$AR" = x; then
74 AC_MSG_ERROR([Unable to find required library archive command.])
76 if test "x$CC" = x; then
77 AC_MSG_ERROR([Unable to find required C compiler command.])
80 dnl Static library option...
82 AC_ARG_ENABLE(static, [ --enable-static install static libraries])
84 if test x$enable_static = xyes; then
85 echo Installing static libraries...
86 INSTALLSTATIC="installstatic"
89 AC_SUBST(INSTALLSTATIC)
91 dnl Check for libraries...
92 AC_SEARCH_LIBS(crypt, crypt)
93 AC_SEARCH_LIBS(getspent, sec gen)
96 AC_ARG_ENABLE(mallinfo, [ --enable-mallinfo build with malloc debug logging])
98 if test x$enable_mallinfo = xyes; then
101 AC_SEARCH_LIBS(mallinfo, malloc, AC_DEFINE(HAVE_MALLINFO))
108 dnl Check for libpaper support...
109 AC_ARG_ENABLE(libpaper, [ --enable-libpaper build with libpaper support])
111 if test x$enable_libpaper = xyes; then
112 AC_CHECK_LIB(paper,systempapername,
113 AC_DEFINE(HAVE_LIBPAPER)
121 dnl Checks for header files.
123 AC_CHECK_HEADER(crypt.h,AC_DEFINE(HAVE_CRYPT_H))
124 AC_CHECK_HEADER(langinfo.h,AC_DEFINE(HAVE_LANGINFO_H))
125 AC_CHECK_HEADER(malloc.h,AC_DEFINE(HAVE_MALLOC_H))
126 AC_CHECK_HEADER(shadow.h,AC_DEFINE(HAVE_SHADOW_H))
127 AC_CHECK_HEADER(string.h,AC_DEFINE(HAVE_STRING_H))
128 AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
129 AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
130 AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H))
131 AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
132 AC_CHECK_HEADER(sys/param.h,AC_DEFINE(HAVE_SYS_PARAM_H))
133 AC_CHECK_HEADER(sys/ucred.h,AC_DEFINE(HAVE_SYS_UCRED_H))
134 AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H))
136 dnl Checks for iconv.h and iconv_open
137 AC_CHECK_HEADER(iconv.h,
140 AC_SEARCH_LIBS(iconv_open,iconv,
141 AC_DEFINE(HAVE_ICONV_H)
142 SAVELIBS="$SAVELIBS $LIBS")
145 dnl Checks for string functions.
146 AC_CHECK_FUNCS(strdup strcasecmp strncasecmp strlcat strlcpy)
147 if test "$uname" = "HP-UX" -a "$uversion" = "1020"; then
148 echo Forcing snprintf emulation for HP-UX.
150 AC_CHECK_FUNCS(snprintf vsnprintf)
153 dnl Check for random number functions...
154 AC_CHECK_FUNCS(random lrand48 arc4random)
156 dnl Check for geteuid function.
157 AC_CHECK_FUNCS(geteuid)
159 dnl Check for vsyslog function.
160 AC_CHECK_FUNCS(vsyslog)
162 dnl Checks for signal functions.
165 # Do not use sigset on Linux or GNU HURD
168 # Use sigset on other platforms, if available
169 AC_CHECK_FUNCS(sigset)
173 AC_CHECK_FUNCS(sigaction)
175 dnl Checks for wait functions.
176 AC_CHECK_FUNCS(waitpid wait3)
178 dnl See if the tm structure has the tm_gmtoff member...
179 AC_MSG_CHECKING(for tm_gmtoff member in tm structure)
180 AC_TRY_COMPILE([#include <time.h>],[struct tm t;
181 int o = t.tm_gmtoff;],
183 AC_DEFINE(HAVE_TM_GMTOFF),
186 dnl See if we have the removefile(3) function for securely removing files
187 AC_CHECK_FUNCS(removefile)
189 dnl See if we have libusb...
190 AC_ARG_ENABLE(libusb, [ --enable-libusb use libusb for USB printing])
195 if test x$enable_libusb = xyes; then
197 elif test x$enable_libusb != xno -a $uname != Darwin; then
203 if test $check_libusb = yes; then
204 AC_CHECK_LIB(usb, usb_init,[
205 AC_CHECK_HEADER(usb.h,
206 AC_DEFINE(HAVE_USB_H)
210 dnl See if we have libwrap for TCP wrappers support...
211 AC_ARG_ENABLE(tcp_wrappers, [ --enable-tcp-wrappers use libwrap for TCP wrappers support])
216 if test x$enable_tcp_wrappers = xyes; then
217 AC_CHECK_LIB(wrap, hosts_access,[
218 AC_CHECK_HEADER(tcpd.h,
219 AC_DEFINE(HAVE_TCPD_H)
223 dnl Flags for "ar" command...
235 dnl Prep libraries specifically for cupsd and backends...
241 dnl See if we have POSIX ACL support...
244 AC_ARG_ENABLE(acl, [ --enable-acl build with POSIX ACL support])
245 if test "x$enable_acl" != xno; then
246 AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT))
247 SERVERLIBS="$SERVERLIBS $LIBS"
251 dnl Check for DBUS support
252 if test -d /etc/dbus-1; then
253 DBUSDIR="/etc/dbus-1"
258 AC_ARG_ENABLE(dbus, [ --enable-dbus build with DBUS support])
259 AC_ARG_WITH(dbusdir, [ --with-dbusdir set DBUS configuration directory ],
265 if test "x$enable_dbus" != xno; then
266 AC_PATH_PROG(PKGCONFIG, pkg-config)
267 if test "x$PKGCONFIG" != x; then
268 AC_MSG_CHECKING(for DBUS)
269 if $PKGCONFIG --exists dbus-1; then
272 CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1` -DDBUS_API_SUBJECT_TO_CHANGE"
273 SERVERLIBS="$SERVERLIBS `$PKGCONFIG --libs dbus-1`"
275 DBUS_NOTIFIERLIBS="`$PKGCONFIG --libs dbus-1`"
277 dbus_message_iter_init_append,
278 AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND),,
279 `$PKGCONFIG --libs dbus-1`)
287 AC_SUBST(DBUS_NOTIFIER)
288 AC_SUBST(DBUS_NOTIFIERLIBS)
290 dnl Extra platform-specific libraries...
291 CUPS_DEFAULT_PRINTOPERATOR_AUTH="@SYSTEM"
292 CUPS_SYSTEM_AUTHKEY=""
293 LEGACY_BACKENDS="parallel"
298 BACKLIBS="$BACKLIBS -framework IOKit"
299 SERVERLIBS="$SERVERLIBS -framework IOKit -weak_framework ApplicationServices"
300 LIBS="-framework SystemConfiguration -framework CoreFoundation -framework Security $LIBS"
302 dnl Check for framework headers...
303 AC_CHECK_HEADER(ApplicationServices/ApplicationServices.h,AC_DEFINE(HAVE_APPLICATIONSERVICES_H))
304 AC_CHECK_HEADER(CoreFoundation/CoreFoundation.h,AC_DEFINE(HAVE_COREFOUNDATION_H))
305 AC_CHECK_HEADER(CoreFoundation/CFPriv.h,AC_DEFINE(HAVE_CFPRIV_H))
306 AC_CHECK_HEADER(CoreFoundation/CFBundlePriv.h,AC_DEFINE(HAVE_CFBUNDLEPRIV_H))
308 dnl Check for dynamic store function...
309 AC_CHECK_FUNCS(SCDynamicStoreCopyComputerName)
311 dnl Check for the new membership functions in MacOSX 10.4...
312 AC_CHECK_HEADER(membership.h,AC_DEFINE(HAVE_MEMBERSHIP_H))
313 AC_CHECK_HEADER(membershipPriv.h,AC_DEFINE(HAVE_MEMBERSHIPPRIV_H))
314 AC_CHECK_FUNCS(mbr_uid_to_uuid)
316 dnl Check for the vproc_transaction_begin/end stuff...
317 AC_CHECK_FUNCS(vproc_transaction_begin)
319 dnl Need <dlfcn.h> header...
320 AC_CHECK_HEADER(dlfcn.h,AC_DEFINE(HAVE_DLFCN_H))
322 dnl Check for notify_post support
323 AC_CHECK_HEADER(notify.h,AC_DEFINE(HAVE_NOTIFY_H))
324 AC_CHECK_FUNCS(notify_post)
326 dnl Check for Authorization Services support
327 AC_ARG_WITH(adminkey, [ --with-adminkey set the default SystemAuthKey value],
328 default_adminkey="$withval",
329 default_adminkey="default")
330 AC_ARG_WITH(operkey, [ --with-operkey set the default operator @AUTHKEY value],
331 default_operkey="$withval",
332 default_operkey="default")
334 AC_CHECK_HEADER(Security/Authorization.h, [
335 AC_DEFINE(HAVE_AUTHORIZATION_H)
337 if test "x$default_adminkey" != xdefault; then
338 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey $default_adminkey"
339 elif grep -q system.print.operator /etc/authorization; then
340 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.print.admin"
342 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.preferences"
345 if test "x$default_operkey" != xdefault; then
346 CUPS_DEFAULT_PRINTOPERATOR_AUTH="@AUTHKEY($default_operkey) @admin @lpadmin"
347 elif grep -q system.print.operator /etc/authorization; then
348 CUPS_DEFAULT_PRINTOPERATOR_AUTH="@AUTHKEY(system.print.operator) @admin @lpadmin"
350 CUPS_DEFAULT_PRINTOPERATOR_AUTH="@AUTHKEY(system.print.admin) @admin @lpadmin"
352 AC_CHECK_HEADER(Security/SecBasePriv.h,AC_DEFINE(HAVE_SECBASEPRIV_H))
354 dnl Check for sandbox/Seatbelt support
355 AC_CHECK_HEADER(sandbox.h,AC_DEFINE(HAVE_SANDBOX_H))
359 AC_SUBST(CUPS_DEFAULT_PRINTOPERATOR_AUTH)
360 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTOPERATOR_AUTH, "$CUPS_DEFAULT_PRINTOPERATOR_AUTH")
361 AC_SUBST(CUPS_SYSTEM_AUTHKEY)
362 AC_SUBST(LEGACY_BACKENDS)
364 dnl Check for build components
367 AC_ARG_WITH(components, [ --with-components set components to build:
368 - "all" (default) builds everything
369 - "core" builds libcups and ipptool],
370 COMPONENTS="$withval")
372 case "$COMPONENTS" in
374 BUILDDIRS="filter backend berkeley cgi-bin driver monitor notifier ppdc scheduler systemv conf data locale man doc examples templates"
378 BUILDDIRS="data locale"
382 AC_MSG_ERROR([Bad build component "$COMPONENT" specified!])
389 dnl End of "$Id: cups-common.m4 8781 2009-08-28 17:34:54Z mike $".