]>
Commit | Line | Data |
---|---|---|
ef416fc2 | 1 | dnl |
75bd9771 | 2 | dnl "$Id: cups-common.m4 7695 2008-06-26 00:46:24Z 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... |
2e4ff8af | 23 | CUPS_VERSION="1.4svn" |
ecdc0628 | 24 | CUPS_REVISION="" |
2e4ff8af 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) |
839a51c8 MS |
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) | |
ef416fc2 | 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 | |
ef416fc2 | 66 | |
923edb68 | 67 | dnl Static library option... |
68 | INSTALLSTATIC="" | |
d6ae789d | 69 | AC_ARG_ENABLE(static, [ --enable-static install static libraries, default=no]) |
923edb68 | 70 | |
d6ae789d | 71 | if test x$enable_static = xyes; then |
72 | echo Installing static libraries... | |
923edb68 | 73 | INSTALLSTATIC="installstatic" |
74 | fi | |
75 | ||
76 | AC_SUBST(INSTALLSTATIC) | |
ef416fc2 | 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 | |
75bd9771 MS |
86 | SAVELIBS="$LIBS" |
87 | LIBS="" | |
88 | AC_SEARCH_LIBS(mallinfo, malloc, AC_DEFINE(HAVE_MALLINFO)) | |
89 | LIBMALLOC="$LIBS" | |
90 | LIBS="$SAVELIBS" | |
ef416fc2 | 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)) | |
db1f069b | 119 | AC_CHECK_HEADER(sys/param.h,AC_DEFINE(HAVE_SYS_PARAM_H)) |
bc44d920 | 120 | AC_CHECK_HEADER(sys/ucred.h,AC_DEFINE(HAVE_SYS_UCRED_H)) |
2abf387c | 121 | AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H)) |
ef416fc2 | 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 | ||
ac884b6a MS |
131 | dnl Check for random number functions... |
132 | AC_CHECK_FUNCS(random mrand48 lrand48) | |
133 | ||
ef416fc2 | 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. | |
cc0d019f | 157 | AC_CHECK_FUNCS(waitpid wait3) |
ef416fc2 | 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 | ||
cc0d019f MS |
167 | dnl See if we have the removefile(3) function for securely removing files |
168 | AC_CHECK_FUNCS(removefile) | |
169 | ||
75bd9771 MS |
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 | ||
ef416fc2 | 191 | dnl Flags for "ar" command... |
192 | case $uname in | |
193 | Darwin* | *BSD*) | |
194 | ARFLAGS="-rcv" | |
195 | ;; | |
196 | *) | |
197 | ARFLAGS="crvs" | |
198 | ;; | |
199 | esac | |
200 | ||
201 | AC_SUBST(ARFLAGS) | |
202 | ||
ac884b6a | 203 | dnl Prep libraries specifically for cupsd and backends... |
bd7854cb | 204 | BACKLIBS="" |
205 | CUPSDLIBS="" | |
ac884b6a MS |
206 | AC_SUBST(BACKLIBS) |
207 | AC_SUBST(CUPSDLIBS) | |
208 | ||
209 | dnl See if we have POSIX ACL support... | |
210 | SAVELIBS="$LIBS" | |
211 | LIBS="" | |
212 | AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT)) | |
213 | CUPSDLIBS="$CUPSDLIBS $LIBS" | |
214 | LIBS="$SAVELIBS" | |
215 | ||
216 | dnl Check for DBUS support | |
217 | if test -d /etc/dbus-1; then | |
218 | DBUSDIR="/etc/dbus-1" | |
219 | else | |
220 | DBUSDIR="" | |
221 | fi | |
bd7854cb | 222 | |
ecdc0628 | 223 | AC_ARG_ENABLE(dbus, [ --enable-dbus enable DBUS support, default=auto]) |
ac884b6a MS |
224 | AC_ARG_WITH(dbusdir, [ --with-dbusdir set DBUS configuration directory ], |
225 | DBUSDIR="$withval") | |
226 | ||
227 | if test "x$enable_dbus" != xno; then | |
228 | AC_PATH_PROG(PKGCONFIG, pkg-config) | |
229 | if test "x$PKGCONFIG" != x; then | |
230 | AC_MSG_CHECKING(for DBUS) | |
231 | if $PKGCONFIG --exists dbus-1; then | |
232 | AC_MSG_RESULT(yes) | |
233 | AC_DEFINE(HAVE_DBUS) | |
234 | CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1` -DDBUS_API_SUBJECT_TO_CHANGE" | |
235 | CUPSDLIBS="$CUPSDLIBS `$PKGCONFIG --libs dbus-1`" | |
236 | AC_CHECK_LIB(dbus-1, | |
237 | dbus_message_iter_init_append, | |
568fa3fa MS |
238 | AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND),, |
239 | `$PKGCONFIG --libs dbus-1`) | |
ac884b6a MS |
240 | else |
241 | AC_MSG_RESULT(no) | |
242 | fi | |
243 | fi | |
244 | fi | |
ecdc0628 | 245 | |
ac884b6a MS |
246 | AC_SUBST(DBUSDIR) |
247 | ||
248 | dnl Extra platform-specific libraries... | |
249 | CUPS_DEFAULT_PRINTADMIN_AUTH="@SYSTEM" | |
250 | CUPS_SYSTEM_AUTHKEY="" | |
09a101d6 | 251 | FONTS="fonts" |
09a101d6 | 252 | LEGACY_BACKENDS="parallel scsi" |
09a101d6 | 253 | |
ef416fc2 | 254 | case $uname in |
255 | Darwin*) | |
09a101d6 | 256 | FONTS="" |
257 | LEGACY_BACKENDS="" | |
ac884b6a | 258 | BACKLIBS="$BACKLIBS -framework IOKit" |
64a69576 | 259 | CUPSDLIBS="$CUPSDLIBS -sectorder __TEXT __text cupsd.order -e start -framework IOKit -framework SystemConfiguration -weak_framework ApplicationServices" |
080811b1 | 260 | LIBS="-framework SystemConfiguration -framework CoreFoundation $LIBS" |
fa73b229 | 261 | |
262 | dnl Check for framework headers... | |
263 | AC_CHECK_HEADER(CoreFoundation/CoreFoundation.h,AC_DEFINE(HAVE_COREFOUNDATION_H)) | |
264 | AC_CHECK_HEADER(CoreFoundation/CFPriv.h,AC_DEFINE(HAVE_CFPRIV_H)) | |
265 | AC_CHECK_HEADER(CoreFoundation/CFBundlePriv.h,AC_DEFINE(HAVE_CFBUNDLEPRIV_H)) | |
266 | ||
7594b224 | 267 | dnl Check for the new membership functions in MacOSX 10.4... |
fa73b229 | 268 | AC_CHECK_HEADER(membership.h,AC_DEFINE(HAVE_MEMBERSHIP_H)) |
7594b224 | 269 | AC_CHECK_HEADER(membershipPriv.h,AC_DEFINE(HAVE_MEMBERSHIPPRIV_H)) |
fa73b229 | 270 | AC_CHECK_FUNCS(mbr_uid_to_uuid) |
271 | ||
7594b224 | 272 | dnl Need <dlfcn.h> header... |
273 | AC_CHECK_HEADER(dlfcn.h,AC_DEFINE(HAVE_DLFCN_H)) | |
274 | ||
fa73b229 | 275 | dnl Check for notify_post support |
276 | AC_CHECK_HEADER(notify.h,AC_DEFINE(HAVE_NOTIFY_H)) | |
277 | AC_CHECK_FUNCS(notify_post) | |
f7deaa1a | 278 | |
279 | dnl Check for Authorization Services support | |
280 | AC_CHECK_HEADER(Security/Authorization.h, [ | |
281 | AC_DEFINE(HAVE_AUTHORIZATION_H) | |
01ce6322 MS |
282 | if grep -q system.print.operator /etc/authorization; then |
283 | CUPS_DEFAULT_PRINTADMIN_AUTH="@AUTHKEY(system.print.admin) @admin @lpadmin" | |
284 | CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.preferences" | |
285 | else | |
286 | CUPS_DEFAULT_PRINTADMIN_AUTH="@AUTHKEY(system.print.operator) @admin @lpadmin" | |
287 | CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.print.admin" | |
288 | fi]) | |
f7deaa1a | 289 | AC_CHECK_HEADER(Security/SecBasePriv.h,AC_DEFINE(HAVE_SECBASEPRIV_H)) |
a4924f6c MS |
290 | |
291 | dnl Check for sandbox/Seatbelt support | |
292 | AC_CHECK_HEADER(sandbox.h,AC_DEFINE(HAVE_SANDBOX_H)) | |
ef416fc2 | 293 | ;; |
ef416fc2 | 294 | esac |
295 | ||
355e94dc MS |
296 | AC_SUBST(CUPS_DEFAULT_PRINTADMIN_AUTH) |
297 | AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTADMIN_AUTH, "$CUPS_DEFAULT_PRINTADMIN_AUTH") | |
f7deaa1a | 298 | AC_SUBST(CUPS_SYSTEM_AUTHKEY) |
ac884b6a MS |
299 | AC_SUBST(FONTS) |
300 | AC_SUBST(LEGACY_BACKENDS) | |
ef416fc2 | 301 | |
302 | dnl | |
75bd9771 | 303 | dnl End of "$Id: cups-common.m4 7695 2008-06-26 00:46:24Z mike $". |
ef416fc2 | 304 | dnl |