]> git.ipfire.org Git - thirdparty/cups.git/blame - config-scripts/cups-common.m4
Merge changes from CUPS 1.4svn-r8628.
[thirdparty/cups.git] / config-scripts / cups-common.m4
CommitLineData
ef416fc2 1dnl
b19ccc9e 2dnl "$Id: cups-common.m4 7900 2008-09-03 13:47:57Z mike $"
ef416fc2 3dnl
4dnl Common configuration stuff for the Common UNIX Printing System (CUPS).
5dnl
745129be 6dnl Copyright 2007-2009 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...
745129be 23CUPS_VERSION="1.4b3"
ecdc0628 24CUPS_REVISION=""
61cf44e2
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)
52AC_PATH_PROG(HTMLDOC,htmldoc)
bd7854cb 53AC_PATH_PROG(LD,ld)
ef416fc2 54AC_PATH_PROG(LN,ln)
55AC_PATH_PROG(MV,mv)
56AC_PATH_PROG(RM,rm)
e1d6a774 57AC_PATH_PROG(RMDIR,rmdir)
ef416fc2 58AC_PATH_PROG(SED,sed)
ee571f26
MS
59AC_PATH_PROG(XDGOPEN,xdg-open)
60if test "x$XDGOPEN" = x; then
61 CUPS_HTMLVIEW="htmlview"
62else
63 CUPS_HTMLVIEW="$XDGOPEN"
64fi
65AC_SUBST(CUPS_HTMLVIEW)
839a51c8
MS
66
67AC_MSG_CHECKING(for install-sh script)
e07d4801 68INSTALL="`pwd`/install-sh"
839a51c8
MS
69AC_SUBST(INSTALL)
70AC_MSG_RESULT(using $INSTALL)
ef416fc2 71
72if test "x$AR" = x; then
73 AC_MSG_ERROR([Unable to find required library archive command.])
74fi
75if test "x$CC" = x; then
76 AC_MSG_ERROR([Unable to find required C compiler command.])
77fi
ef416fc2 78
923edb68 79dnl Static library option...
80INSTALLSTATIC=""
bf3816c7 81AC_ARG_ENABLE(static, [ --enable-static install static libraries])
923edb68 82
d6ae789d 83if test x$enable_static = xyes; then
84 echo Installing static libraries...
923edb68 85 INSTALLSTATIC="installstatic"
86fi
87
88AC_SUBST(INSTALLSTATIC)
ef416fc2 89
90dnl Check for libraries...
91AC_SEARCH_LIBS(crypt, crypt)
92AC_SEARCH_LIBS(getspent, sec gen)
93
94LIBMALLOC=""
bf3816c7 95AC_ARG_ENABLE(mallinfo, [ --enable-mallinfo build with malloc debug logging])
ef416fc2 96
97if test x$enable_mallinfo = xyes; then
75bd9771
MS
98 SAVELIBS="$LIBS"
99 LIBS=""
100 AC_SEARCH_LIBS(mallinfo, malloc, AC_DEFINE(HAVE_MALLINFO))
101 LIBMALLOC="$LIBS"
102 LIBS="$SAVELIBS"
ef416fc2 103fi
104
105AC_SUBST(LIBMALLOC)
106
107dnl Check for libpaper support...
bf3816c7 108AC_ARG_ENABLE(libpaper, [ --enable-libpaper build with libpaper support])
ef416fc2 109
110if test x$enable_libpaper = xyes; then
111 AC_CHECK_LIB(paper,systempapername,
112 AC_DEFINE(HAVE_LIBPAPER)
113 LIBPAPER="-lpaper",
114 LIBPAPER="")
115else
116 LIBPAPER=""
117fi
118AC_SUBST(LIBPAPER)
119
120dnl Checks for header files.
121AC_HEADER_STDC
122AC_CHECK_HEADER(crypt.h,AC_DEFINE(HAVE_CRYPT_H))
123AC_CHECK_HEADER(langinfo.h,AC_DEFINE(HAVE_LANGINFO_H))
124AC_CHECK_HEADER(malloc.h,AC_DEFINE(HAVE_MALLOC_H))
125AC_CHECK_HEADER(shadow.h,AC_DEFINE(HAVE_SHADOW_H))
126AC_CHECK_HEADER(string.h,AC_DEFINE(HAVE_STRING_H))
127AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
128AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
129AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H))
130AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
db1f069b 131AC_CHECK_HEADER(sys/param.h,AC_DEFINE(HAVE_SYS_PARAM_H))
bc44d920 132AC_CHECK_HEADER(sys/ucred.h,AC_DEFINE(HAVE_SYS_UCRED_H))
2abf387c 133AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H))
ef416fc2 134
135dnl Checks for string functions.
136AC_CHECK_FUNCS(strdup strcasecmp strncasecmp strlcat strlcpy)
137if test "$uname" = "HP-UX" -a "$uversion" = "1020"; then
138 echo Forcing snprintf emulation for HP-UX.
139else
140 AC_CHECK_FUNCS(snprintf vsnprintf)
141fi
142
ac884b6a
MS
143dnl Check for random number functions...
144AC_CHECK_FUNCS(random mrand48 lrand48)
145
ef416fc2 146dnl Checks for mkstemp and mkstemps functions.
147AC_CHECK_FUNCS(mkstemp mkstemps)
148
149dnl Check for geteuid function.
150AC_CHECK_FUNCS(geteuid)
151
152dnl Check for vsyslog function.
153AC_CHECK_FUNCS(vsyslog)
154
155dnl Checks for signal functions.
156case "$uname" in
157 Linux | GNU)
158 # Do not use sigset on Linux or GNU HURD
159 ;;
160 *)
161 # Use sigset on other platforms, if available
162 AC_CHECK_FUNCS(sigset)
163 ;;
164esac
165
166AC_CHECK_FUNCS(sigaction)
167
168dnl Checks for wait functions.
cc0d019f 169AC_CHECK_FUNCS(waitpid wait3)
ef416fc2 170
171dnl See if the tm structure has the tm_gmtoff member...
172AC_MSG_CHECKING(for tm_gmtoff member in tm structure)
173AC_TRY_COMPILE([#include <time.h>],[struct tm t;
174 int o = t.tm_gmtoff;],
175 AC_MSG_RESULT(yes)
176 AC_DEFINE(HAVE_TM_GMTOFF),
177 AC_MSG_RESULT(no))
178
cc0d019f
MS
179dnl See if we have the removefile(3) function for securely removing files
180AC_CHECK_FUNCS(removefile)
181
75bd9771 182dnl See if we have libusb...
bf3816c7 183AC_ARG_ENABLE(libusb, [ --enable-libusb use libusb for USB printing])
75bd9771
MS
184
185LIBUSB=""
186AC_SUBST(LIBUSB)
187
188if test x$enable_libusb = xyes; then
189 check_libusb=yes
190elif test x$enable_libusb != xno -a $uname != Darwin; then
191 check_libusb=yes
192else
193 check_libusb=no
194fi
195
196if test $check_libusb = yes; then
197 AC_CHECK_LIB(usb, usb_init,[
198 AC_CHECK_HEADER(usb.h,
199 AC_DEFINE(HAVE_USB_H)
200 LIBUSB="-lusb")])
201fi
202
749b1e90 203dnl See if we have libwrap for TCP wrappers support...
bf3816c7 204AC_ARG_ENABLE(tcp_wrappers, [ --enable-tcp-wrappers use libwrap for TCP wrappers support])
749b1e90
MS
205
206LIBWRAP=""
207AC_SUBST(LIBWRAP)
208
209if test x$enable_tcp_wrappers = xyes; then
210 AC_CHECK_LIB(wrap, hosts_access,[
211 AC_CHECK_HEADER(tcpd.h,
212 AC_DEFINE(HAVE_TCPD_H)
213 LIBWRAP="-lwrap")])
214fi
215
ef416fc2 216dnl Flags for "ar" command...
217case $uname in
218 Darwin* | *BSD*)
219 ARFLAGS="-rcv"
220 ;;
221 *)
222 ARFLAGS="crvs"
223 ;;
224esac
225
226AC_SUBST(ARFLAGS)
227
ac884b6a 228dnl Prep libraries specifically for cupsd and backends...
bd7854cb 229BACKLIBS=""
230CUPSDLIBS=""
ac884b6a
MS
231AC_SUBST(BACKLIBS)
232AC_SUBST(CUPSDLIBS)
233
234dnl See if we have POSIX ACL support...
235SAVELIBS="$LIBS"
236LIBS=""
bf3816c7 237AC_ARG_ENABLE(acl, [ --enable-acl build with POSIX ACL support])
ee571f26
MS
238if test "x$enable_acl" != xno; then
239 AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT))
240 CUPSDLIBS="$CUPSDLIBS $LIBS"
241fi
ac884b6a
MS
242LIBS="$SAVELIBS"
243
244dnl Check for DBUS support
245if test -d /etc/dbus-1; then
246 DBUSDIR="/etc/dbus-1"
247else
248 DBUSDIR=""
249fi
bd7854cb 250
bf3816c7 251AC_ARG_ENABLE(dbus, [ --enable-dbus build with DBUS support])
ac884b6a
MS
252AC_ARG_WITH(dbusdir, [ --with-dbusdir set DBUS configuration directory ],
253 DBUSDIR="$withval")
254
c5571a1d
MS
255DBUS_NOTIFIER=""
256DBUS_NOTIFIERLIBS=""
257
ac884b6a
MS
258if test "x$enable_dbus" != xno; then
259 AC_PATH_PROG(PKGCONFIG, pkg-config)
260 if test "x$PKGCONFIG" != x; then
261 AC_MSG_CHECKING(for DBUS)
262 if $PKGCONFIG --exists dbus-1; then
263 AC_MSG_RESULT(yes)
264 AC_DEFINE(HAVE_DBUS)
265 CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1` -DDBUS_API_SUBJECT_TO_CHANGE"
266 CUPSDLIBS="$CUPSDLIBS `$PKGCONFIG --libs dbus-1`"
267 AC_CHECK_LIB(dbus-1,
c5571a1d
MS
268 dbus_message_iter_init_append,
269 AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND),,
270 `$PKGCONFIG --libs dbus-1`)
271 if $PKGCONFIG --exists glib-2.0 && $PKGCONFIG --exists dbus-glib-1; then
272 DBUS_NOTIFIER="dbus"
273 DBUS_NOTIFIERLIBS="`$PKGCONFIG --libs glib-2.0` `$PKGCONFIG --libs dbus-glib-1` `$PKGCONFIG --libs dbus-1`"
274 CFLAGS="$CFLAGS `$PKGCONFIG --cflags glib-2.0`"
275 fi
ac884b6a
MS
276 else
277 AC_MSG_RESULT(no)
278 fi
279 fi
280fi
ecdc0628 281
ac884b6a 282AC_SUBST(DBUSDIR)
c5571a1d
MS
283AC_SUBST(DBUS_NOTIFIER)
284AC_SUBST(DBUS_NOTIFIERLIBS)
ac884b6a
MS
285
286dnl Extra platform-specific libraries...
b9faaae1 287CUPS_DEFAULT_PRINTOPERATOR_AUTH="@SYSTEM"
ac884b6a 288CUPS_SYSTEM_AUTHKEY=""
09a101d6 289FONTS="fonts"
09a101d6 290LEGACY_BACKENDS="parallel scsi"
09a101d6 291
ef416fc2 292case $uname in
293 Darwin*)
58dc1933 294# FONTS=""
09a101d6 295 LEGACY_BACKENDS=""
ac884b6a 296 BACKLIBS="$BACKLIBS -framework IOKit"
64a69576 297 CUPSDLIBS="$CUPSDLIBS -sectorder __TEXT __text cupsd.order -e start -framework IOKit -framework SystemConfiguration -weak_framework ApplicationServices"
080811b1 298 LIBS="-framework SystemConfiguration -framework CoreFoundation $LIBS"
fa73b229 299
300 dnl Check for framework headers...
301 AC_CHECK_HEADER(CoreFoundation/CoreFoundation.h,AC_DEFINE(HAVE_COREFOUNDATION_H))
302 AC_CHECK_HEADER(CoreFoundation/CFPriv.h,AC_DEFINE(HAVE_CFPRIV_H))
303 AC_CHECK_HEADER(CoreFoundation/CFBundlePriv.h,AC_DEFINE(HAVE_CFBUNDLEPRIV_H))
304
7594b224 305 dnl Check for the new membership functions in MacOSX 10.4...
fa73b229 306 AC_CHECK_HEADER(membership.h,AC_DEFINE(HAVE_MEMBERSHIP_H))
7594b224 307 AC_CHECK_HEADER(membershipPriv.h,AC_DEFINE(HAVE_MEMBERSHIPPRIV_H))
fa73b229 308 AC_CHECK_FUNCS(mbr_uid_to_uuid)
309
178cb736
MS
310 dnl Check for the vproc_transaction_begin/end stuff...
311 AC_CHECK_FUNCS(vproc_transaction_begin)
312
7594b224 313 dnl Need <dlfcn.h> header...
314 AC_CHECK_HEADER(dlfcn.h,AC_DEFINE(HAVE_DLFCN_H))
315
fa73b229 316 dnl Check for notify_post support
317 AC_CHECK_HEADER(notify.h,AC_DEFINE(HAVE_NOTIFY_H))
318 AC_CHECK_FUNCS(notify_post)
f7deaa1a 319
320 dnl Check for Authorization Services support
1f0275e3
MS
321 AC_ARG_WITH(adminkey, [ --with-adminkey set the default SystemAuthKey value],
322 default_adminkey="$withval",
323 default_adminkey="default")
324 AC_ARG_WITH(operkey, [ --with-operkey set the default operator @AUTHKEY value],
325 default_operkey="$withval",
326 default_operkey="default")
327
f7deaa1a 328 AC_CHECK_HEADER(Security/Authorization.h, [
329 AC_DEFINE(HAVE_AUTHORIZATION_H)
1f0275e3
MS
330
331 if test "x$default_adminkey" != xdefault; then
332 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey $default_adminkey"
333 elif grep -q system.print.operator /etc/authorization; then
334 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.print.admin"
01ce6322 335 else
1f0275e3
MS
336 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.preferences"
337 fi
338
339 if test "x$default_operkey" != xdefault; then
b9faaae1 340 CUPS_DEFAULT_PRINTOPERATOR_AUTH="@AUTHKEY($default_operkey) @admin @lpadmin"
1f0275e3 341 elif grep -q system.print.operator /etc/authorization; then
b9faaae1 342 CUPS_DEFAULT_PRINTOPERATOR_AUTH="@AUTHKEY(system.print.operator) @admin @lpadmin"
1f0275e3 343 else
b9faaae1 344 CUPS_DEFAULT_PRINTOPERATOR_AUTH="@AUTHKEY(system.print.admin) @admin @lpadmin"
01ce6322 345 fi])
f7deaa1a 346 AC_CHECK_HEADER(Security/SecBasePriv.h,AC_DEFINE(HAVE_SECBASEPRIV_H))
a4924f6c
MS
347
348 dnl Check for sandbox/Seatbelt support
349 AC_CHECK_HEADER(sandbox.h,AC_DEFINE(HAVE_SANDBOX_H))
ef416fc2 350 ;;
ef416fc2 351esac
352
b9faaae1
MS
353AC_SUBST(CUPS_DEFAULT_PRINTOPERATOR_AUTH)
354AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTOPERATOR_AUTH, "$CUPS_DEFAULT_PRINTOPERATOR_AUTH")
f7deaa1a 355AC_SUBST(CUPS_SYSTEM_AUTHKEY)
ac884b6a
MS
356AC_SUBST(FONTS)
357AC_SUBST(LEGACY_BACKENDS)
ef416fc2 358
359dnl
b19ccc9e 360dnl End of "$Id: cups-common.m4 7900 2008-09-03 13:47:57Z mike $".
ef416fc2 361dnl