]> git.ipfire.org Git - thirdparty/cups.git/blame - config-scripts/cups-common.m4
Merge changes from CUPS 1.5.1-r9875.
[thirdparty/cups.git] / config-scripts / cups-common.m4
CommitLineData
ef416fc2 1dnl
18ecb428 2dnl "$Id: cups-common.m4 8781 2009-08-28 17:34:54Z mike $"
ef416fc2 3dnl
6d2f911b 4dnl Common configuration stuff for CUPS.
ef416fc2 5dnl
0268488e 6dnl Copyright 2007-2011 by Apple Inc.
f7deaa1a 7dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
ef416fc2 8dnl
9dnl These coded instructions, statements, and computer programs are the
bc44d920 10dnl property of Apple Inc. and are protected by Federal copyright
11dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
12dnl which should have been included with this file. If this file is
13dnl file is missing or damaged, see the license at "http://www.cups.org/".
ef416fc2 14dnl
15
c277e2f8
MS
16dnl We need at least autoconf 2.60...
17AC_PREREQ(2.60)
ef416fc2 18
19dnl Set the name of the config header file...
20AC_CONFIG_HEADER(config.h)
21
ac884b6a 22dnl Version number information...
771bd8cb 23CUPS_VERSION="1.5.1"
ecdc0628 24CUPS_REVISION=""
321d8d57
MS
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'`"
27#fi
e4572d57
MS
28CUPS_BUILD="cups-$CUPS_VERSION"
29
30AC_ARG_WITH(cups_build, [ --with-cups-build set "cups-config --build" string ],
31 CUPS_BUILD="$withval")
ecdc0628 32
ef416fc2 33AC_SUBST(CUPS_VERSION)
ecdc0628 34AC_SUBST(CUPS_REVISION)
e4572d57 35AC_SUBST(CUPS_BUILD)
ecdc0628 36AC_DEFINE_UNQUOTED(CUPS_SVERSION, "CUPS v$CUPS_VERSION$CUPS_REVISION")
37AC_DEFINE_UNQUOTED(CUPS_MINIMAL, "CUPS/$CUPS_VERSION$CUPS_REVISION")
ef416fc2 38
39dnl Default compiler flags...
40CFLAGS="${CFLAGS:=}"
41CPPFLAGS="${CPPFLAGS:=}"
ac884b6a 42CXXFLAGS="${CXXFLAGS:=}"
ef416fc2 43LDFLAGS="${LDFLAGS:=}"
44
45dnl Checks for programs...
46AC_PROG_AWK
47AC_PROG_CC
ef416fc2 48AC_PROG_CPP
ac884b6a 49AC_PROG_CXX
ef416fc2 50AC_PROG_RANLIB
51AC_PATH_PROG(AR,ar)
97c9a8d7 52AC_PATH_PROG(CHMOD,chmod)
ef416fc2 53AC_PATH_PROG(HTMLDOC,htmldoc)
bd7854cb 54AC_PATH_PROG(LD,ld)
ef416fc2 55AC_PATH_PROG(LN,ln)
56AC_PATH_PROG(MV,mv)
57AC_PATH_PROG(RM,rm)
e1d6a774 58AC_PATH_PROG(RMDIR,rmdir)
ef416fc2 59AC_PATH_PROG(SED,sed)
ee571f26
MS
60AC_PATH_PROG(XDGOPEN,xdg-open)
61if test "x$XDGOPEN" = x; then
62 CUPS_HTMLVIEW="htmlview"
63else
64 CUPS_HTMLVIEW="$XDGOPEN"
65fi
66AC_SUBST(CUPS_HTMLVIEW)
839a51c8
MS
67
68AC_MSG_CHECKING(for install-sh script)
e07d4801 69INSTALL="`pwd`/install-sh"
839a51c8
MS
70AC_SUBST(INSTALL)
71AC_MSG_RESULT(using $INSTALL)
ef416fc2 72
73if test "x$AR" = x; then
74 AC_MSG_ERROR([Unable to find required library archive command.])
75fi
76if test "x$CC" = x; then
77 AC_MSG_ERROR([Unable to find required C compiler command.])
78fi
ef416fc2 79
923edb68 80dnl Static library option...
81INSTALLSTATIC=""
bf3816c7 82AC_ARG_ENABLE(static, [ --enable-static install static libraries])
923edb68 83
d6ae789d 84if test x$enable_static = xyes; then
85 echo Installing static libraries...
923edb68 86 INSTALLSTATIC="installstatic"
87fi
88
89AC_SUBST(INSTALLSTATIC)
ef416fc2 90
0268488e
MS
91dnl Check for pkg-config, which is used for some other tests later on...
92AC_PATH_PROG(PKGCONFIG, pkg-config)
93
ef416fc2 94dnl Check for libraries...
95AC_SEARCH_LIBS(crypt, crypt)
96AC_SEARCH_LIBS(getspent, sec gen)
97
98LIBMALLOC=""
bf3816c7 99AC_ARG_ENABLE(mallinfo, [ --enable-mallinfo build with malloc debug logging])
ef416fc2 100
101if test x$enable_mallinfo = xyes; then
75bd9771
MS
102 SAVELIBS="$LIBS"
103 LIBS=""
104 AC_SEARCH_LIBS(mallinfo, malloc, AC_DEFINE(HAVE_MALLINFO))
105 LIBMALLOC="$LIBS"
106 LIBS="$SAVELIBS"
ef416fc2 107fi
108
109AC_SUBST(LIBMALLOC)
110
111dnl Check for libpaper support...
bf3816c7 112AC_ARG_ENABLE(libpaper, [ --enable-libpaper build with libpaper support])
ef416fc2 113
114if test x$enable_libpaper = xyes; then
115 AC_CHECK_LIB(paper,systempapername,
116 AC_DEFINE(HAVE_LIBPAPER)
117 LIBPAPER="-lpaper",
118 LIBPAPER="")
119else
120 LIBPAPER=""
121fi
122AC_SUBST(LIBPAPER)
123
124dnl Checks for header files.
125AC_HEADER_STDC
126AC_CHECK_HEADER(crypt.h,AC_DEFINE(HAVE_CRYPT_H))
127AC_CHECK_HEADER(langinfo.h,AC_DEFINE(HAVE_LANGINFO_H))
128AC_CHECK_HEADER(malloc.h,AC_DEFINE(HAVE_MALLOC_H))
129AC_CHECK_HEADER(shadow.h,AC_DEFINE(HAVE_SHADOW_H))
130AC_CHECK_HEADER(string.h,AC_DEFINE(HAVE_STRING_H))
131AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
132AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
133AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H))
134AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
db1f069b 135AC_CHECK_HEADER(sys/param.h,AC_DEFINE(HAVE_SYS_PARAM_H))
bc44d920 136AC_CHECK_HEADER(sys/ucred.h,AC_DEFINE(HAVE_SYS_UCRED_H))
2abf387c 137AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H))
ef416fc2 138
cc754834
MS
139dnl Checks for iconv.h and iconv_open
140AC_CHECK_HEADER(iconv.h,
141 SAVELIBS="$LIBS"
142 LIBS=""
143 AC_SEARCH_LIBS(iconv_open,iconv,
144 AC_DEFINE(HAVE_ICONV_H)
145 SAVELIBS="$SAVELIBS $LIBS")
146 LIBS="$SAVELIBS")
147
7cf5915e
MS
148dnl Checks for statfs and its many headers...
149AC_CHECK_HEADER(sys/mount.h,AC_DEFINE(HAVE_SYS_MOUNT_H))
150AC_CHECK_HEADER(sys/statfs.h,AC_DEFINE(HAVE_SYS_STATFS_H))
151AC_CHECK_HEADER(sys/statvfs.h,AC_DEFINE(HAVE_SYS_STATVFS_H))
152AC_CHECK_HEADER(sys/vfs.h,AC_DEFINE(HAVE_SYS_VFS_H))
153AC_CHECK_FUNCS(statfs statvfs)
154
ef416fc2 155dnl Checks for string functions.
88f9aafc 156AC_CHECK_FUNCS(strdup strlcat strlcpy)
ef416fc2 157if test "$uname" = "HP-UX" -a "$uversion" = "1020"; then
158 echo Forcing snprintf emulation for HP-UX.
159else
160 AC_CHECK_FUNCS(snprintf vsnprintf)
161fi
162
ac884b6a 163dnl Check for random number functions...
41681883 164AC_CHECK_FUNCS(random lrand48 arc4random)
ac884b6a 165
ef416fc2 166dnl Check for geteuid function.
167AC_CHECK_FUNCS(geteuid)
168
88f9aafc
MS
169dnl Check for setpgid function.
170AC_CHECK_FUNCS(setpgid)
171
ef416fc2 172dnl Check for vsyslog function.
173AC_CHECK_FUNCS(vsyslog)
174
175dnl Checks for signal functions.
176case "$uname" in
177 Linux | GNU)
178 # Do not use sigset on Linux or GNU HURD
179 ;;
180 *)
181 # Use sigset on other platforms, if available
182 AC_CHECK_FUNCS(sigset)
183 ;;
184esac
185
186AC_CHECK_FUNCS(sigaction)
187
188dnl Checks for wait functions.
cc0d019f 189AC_CHECK_FUNCS(waitpid wait3)
ef416fc2 190
191dnl See if the tm structure has the tm_gmtoff member...
192AC_MSG_CHECKING(for tm_gmtoff member in tm structure)
193AC_TRY_COMPILE([#include <time.h>],[struct tm t;
194 int o = t.tm_gmtoff;],
195 AC_MSG_RESULT(yes)
196 AC_DEFINE(HAVE_TM_GMTOFF),
197 AC_MSG_RESULT(no))
198
c7017ecc
MS
199dnl See if the stat structure has the st_gen member...
200AC_MSG_CHECKING(for st_gen member in stat structure)
201AC_TRY_COMPILE([#include <sys/stat.h>],[struct stat t;
202 int o = t.st_gen;],
203 AC_MSG_RESULT(yes)
204 AC_DEFINE(HAVE_ST_GEN),
205 AC_MSG_RESULT(no))
206
cc0d019f
MS
207dnl See if we have the removefile(3) function for securely removing files
208AC_CHECK_FUNCS(removefile)
209
75bd9771 210dnl See if we have libusb...
bf3816c7 211AC_ARG_ENABLE(libusb, [ --enable-libusb use libusb for USB printing])
75bd9771
MS
212
213LIBUSB=""
214AC_SUBST(LIBUSB)
215
216if test x$enable_libusb = xyes; then
217 check_libusb=yes
218elif test x$enable_libusb != xno -a $uname != Darwin; then
219 check_libusb=yes
220else
221 check_libusb=no
222fi
223
224if test $check_libusb = yes; then
0268488e 225 AC_CHECK_LIB(usb, usb_get_string_simple,[
75bd9771
MS
226 AC_CHECK_HEADER(usb.h,
227 AC_DEFINE(HAVE_USB_H)
228 LIBUSB="-lusb")])
229fi
230
749b1e90 231dnl See if we have libwrap for TCP wrappers support...
bf3816c7 232AC_ARG_ENABLE(tcp_wrappers, [ --enable-tcp-wrappers use libwrap for TCP wrappers support])
749b1e90
MS
233
234LIBWRAP=""
235AC_SUBST(LIBWRAP)
236
237if test x$enable_tcp_wrappers = xyes; then
238 AC_CHECK_LIB(wrap, hosts_access,[
239 AC_CHECK_HEADER(tcpd.h,
240 AC_DEFINE(HAVE_TCPD_H)
241 LIBWRAP="-lwrap")])
242fi
243
ef416fc2 244dnl Flags for "ar" command...
245case $uname in
246 Darwin* | *BSD*)
247 ARFLAGS="-rcv"
248 ;;
249 *)
250 ARFLAGS="crvs"
251 ;;
252esac
253
254AC_SUBST(ARFLAGS)
255
ac884b6a 256dnl Prep libraries specifically for cupsd and backends...
bd7854cb 257BACKLIBS=""
cc754834 258SERVERLIBS=""
ac884b6a 259AC_SUBST(BACKLIBS)
cc754834 260AC_SUBST(SERVERLIBS)
ac884b6a
MS
261
262dnl See if we have POSIX ACL support...
263SAVELIBS="$LIBS"
264LIBS=""
bf3816c7 265AC_ARG_ENABLE(acl, [ --enable-acl build with POSIX ACL support])
ee571f26
MS
266if test "x$enable_acl" != xno; then
267 AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT))
cc754834 268 SERVERLIBS="$SERVERLIBS $LIBS"
ee571f26 269fi
ac884b6a
MS
270LIBS="$SAVELIBS"
271
272dnl Check for DBUS support
273if test -d /etc/dbus-1; then
274 DBUSDIR="/etc/dbus-1"
275else
276 DBUSDIR=""
277fi
bd7854cb 278
bf3816c7 279AC_ARG_ENABLE(dbus, [ --enable-dbus build with DBUS support])
ac884b6a
MS
280AC_ARG_WITH(dbusdir, [ --with-dbusdir set DBUS configuration directory ],
281 DBUSDIR="$withval")
282
c5571a1d
MS
283DBUS_NOTIFIER=""
284DBUS_NOTIFIERLIBS=""
285
0268488e
MS
286if test "x$enable_dbus" != xno -a "x$PKGCONFIG" != x; then
287 AC_MSG_CHECKING(for DBUS)
288 if $PKGCONFIG --exists dbus-1; then
289 AC_MSG_RESULT(yes)
290 AC_DEFINE(HAVE_DBUS)
291 CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1` -DDBUS_API_SUBJECT_TO_CHANGE"
292 SERVERLIBS="$SERVERLIBS `$PKGCONFIG --libs dbus-1`"
293 DBUS_NOTIFIER="dbus"
294 DBUS_NOTIFIERLIBS="`$PKGCONFIG --libs dbus-1`"
295 SAVELIBS="$LIBS"
296 LIBS="$LIBS $DBUS_NOTIFIERLIBS"
297 AC_CHECK_FUNC(dbus_message_iter_init_append,
298 AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND))
299 LIBS="$SAVELIBS"
300 else
301 AC_MSG_RESULT(no)
ac884b6a
MS
302 fi
303fi
ecdc0628 304
ac884b6a 305AC_SUBST(DBUSDIR)
c5571a1d
MS
306AC_SUBST(DBUS_NOTIFIER)
307AC_SUBST(DBUS_NOTIFIERLIBS)
ac884b6a
MS
308
309dnl Extra platform-specific libraries...
b9faaae1 310CUPS_DEFAULT_PRINTOPERATOR_AUTH="@SYSTEM"
ac884b6a 311CUPS_SYSTEM_AUTHKEY=""
eac3a0a0 312INSTALLXPC=""
f8b3a85b 313LEGACY_BACKENDS="parallel"
09a101d6 314
ef416fc2 315case $uname in
316 Darwin*)
09a101d6 317 LEGACY_BACKENDS=""
ac884b6a 318 BACKLIBS="$BACKLIBS -framework IOKit"
cc754834 319 SERVERLIBS="$SERVERLIBS -framework IOKit -weak_framework ApplicationServices"
f8b3a85b 320 LIBS="-framework SystemConfiguration -framework CoreFoundation -framework Security $LIBS"
fa73b229 321
322 dnl Check for framework headers...
6d2f911b 323 AC_CHECK_HEADER(ApplicationServices/ApplicationServices.h,AC_DEFINE(HAVE_APPLICATIONSERVICES_H))
fa73b229 324 AC_CHECK_HEADER(CoreFoundation/CoreFoundation.h,AC_DEFINE(HAVE_COREFOUNDATION_H))
325 AC_CHECK_HEADER(CoreFoundation/CFPriv.h,AC_DEFINE(HAVE_CFPRIV_H))
326 AC_CHECK_HEADER(CoreFoundation/CFBundlePriv.h,AC_DEFINE(HAVE_CFBUNDLEPRIV_H))
84315f46 327 AC_CHECK_HEADER(IOKit/pwr_mgt/IOPMLibPrivate.h,AC_DEFINE(HAVE_IOKIT_PWR_MGT_IOPMLIBPRIVATE_H))
fa73b229 328
6d2f911b
MS
329 dnl Check for dynamic store function...
330 AC_CHECK_FUNCS(SCDynamicStoreCopyComputerName)
331
229681c1
MS
332 dnl Check for new ColorSync APIs...
333 SAVELIBS="$LIBS"
334 LIBS="$LIBS -framework ApplicationServices"
335 AC_CHECK_FUNCS(ColorSyncRegisterDevice)
336 LIBS="$SAVELIBS"
337
7594b224 338 dnl Check for the new membership functions in MacOSX 10.4...
fa73b229 339 AC_CHECK_HEADER(membership.h,AC_DEFINE(HAVE_MEMBERSHIP_H))
7594b224 340 AC_CHECK_HEADER(membershipPriv.h,AC_DEFINE(HAVE_MEMBERSHIPPRIV_H))
fa73b229 341 AC_CHECK_FUNCS(mbr_uid_to_uuid)
342
178cb736
MS
343 dnl Check for the vproc_transaction_begin/end stuff...
344 AC_CHECK_FUNCS(vproc_transaction_begin)
345
7594b224 346 dnl Need <dlfcn.h> header...
347 AC_CHECK_HEADER(dlfcn.h,AC_DEFINE(HAVE_DLFCN_H))
348
fa73b229 349 dnl Check for notify_post support
350 AC_CHECK_HEADER(notify.h,AC_DEFINE(HAVE_NOTIFY_H))
351 AC_CHECK_FUNCS(notify_post)
f7deaa1a 352
353 dnl Check for Authorization Services support
1f0275e3
MS
354 AC_ARG_WITH(adminkey, [ --with-adminkey set the default SystemAuthKey value],
355 default_adminkey="$withval",
356 default_adminkey="default")
357 AC_ARG_WITH(operkey, [ --with-operkey set the default operator @AUTHKEY value],
358 default_operkey="$withval",
359 default_operkey="default")
eac3a0a0 360
f7deaa1a 361 AC_CHECK_HEADER(Security/Authorization.h, [
362 AC_DEFINE(HAVE_AUTHORIZATION_H)
1f0275e3
MS
363
364 if test "x$default_adminkey" != xdefault; then
365 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey $default_adminkey"
366 elif grep -q system.print.operator /etc/authorization; then
367 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.print.admin"
01ce6322 368 else
1f0275e3
MS
369 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.preferences"
370 fi
371
372 if test "x$default_operkey" != xdefault; then
b9faaae1 373 CUPS_DEFAULT_PRINTOPERATOR_AUTH="@AUTHKEY($default_operkey) @admin @lpadmin"
1f0275e3 374 elif grep -q system.print.operator /etc/authorization; then
b9faaae1 375 CUPS_DEFAULT_PRINTOPERATOR_AUTH="@AUTHKEY(system.print.operator) @admin @lpadmin"
1f0275e3 376 else
b9faaae1 377 CUPS_DEFAULT_PRINTOPERATOR_AUTH="@AUTHKEY(system.print.admin) @admin @lpadmin"
01ce6322 378 fi])
f7deaa1a 379 AC_CHECK_HEADER(Security/SecBasePriv.h,AC_DEFINE(HAVE_SECBASEPRIV_H))
a4924f6c
MS
380
381 dnl Check for sandbox/Seatbelt support
82f97232
MS
382 if test $uversion -ge 100; then
383 AC_CHECK_HEADER(sandbox.h,AC_DEFINE(HAVE_SANDBOX_H))
384 fi
eac3a0a0
MS
385
386 dnl Check for XPC support
387 AC_CHECK_HEADER(xpc/xpc.h,
388 AC_DEFINE(HAVE_XPC)
389 INSTALLXPC="install-xpc")
ef416fc2 390 ;;
ef416fc2 391esac
392
b9faaae1
MS
393AC_SUBST(CUPS_DEFAULT_PRINTOPERATOR_AUTH)
394AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTOPERATOR_AUTH, "$CUPS_DEFAULT_PRINTOPERATOR_AUTH")
f7deaa1a 395AC_SUBST(CUPS_SYSTEM_AUTHKEY)
eac3a0a0 396AC_SUBST(INSTALLXPC)
ac884b6a 397AC_SUBST(LEGACY_BACKENDS)
ef416fc2 398
6d2f911b
MS
399dnl Check for build components
400COMPONENTS="all"
401
402AC_ARG_WITH(components, [ --with-components set components to build:
403 - "all" (default) builds everything
404 - "core" builds libcups and ipptool],
405 COMPONENTS="$withval")
406
407case "$COMPONENTS" in
408 all)
f99f3698 409 BUILDDIRS="filter backend berkeley cgi-bin driver monitor notifier ppdc scheduler systemv conf data desktop locale man doc examples templates"
6d2f911b
MS
410 ;;
411
412 core)
413 BUILDDIRS="data locale"
414 ;;
415
416 *)
417 AC_MSG_ERROR([Bad build component "$COMPONENT" specified!])
418 ;;
419esac
420
421AC_SUBST(BUILDDIRS)
422
ef416fc2 423dnl
18ecb428 424dnl End of "$Id: cups-common.m4 8781 2009-08-28 17:34:54Z mike $".
ef416fc2 425dnl