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