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