]> git.ipfire.org Git - thirdparty/cups.git/blame - config-scripts/cups-common.m4
Merge changes from CUPS 1.4svn-r8067 (tentative CUPS 1.4b1)
[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
5bd77a73 6dnl Copyright 2007-2008 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...
61cf44e2 23CUPS_VERSION="1.4b1"
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
ecdc0628 28
ef416fc2 29AC_SUBST(CUPS_VERSION)
ecdc0628 30AC_SUBST(CUPS_REVISION)
31AC_DEFINE_UNQUOTED(CUPS_SVERSION, "CUPS v$CUPS_VERSION$CUPS_REVISION")
32AC_DEFINE_UNQUOTED(CUPS_MINIMAL, "CUPS/$CUPS_VERSION$CUPS_REVISION")
ef416fc2 33
34dnl Default compiler flags...
35CFLAGS="${CFLAGS:=}"
36CPPFLAGS="${CPPFLAGS:=}"
ac884b6a 37CXXFLAGS="${CXXFLAGS:=}"
ef416fc2 38LDFLAGS="${LDFLAGS:=}"
39
40dnl Checks for programs...
41AC_PROG_AWK
42AC_PROG_CC
ef416fc2 43AC_PROG_CPP
ac884b6a 44AC_PROG_CXX
ef416fc2 45AC_PROG_RANLIB
46AC_PATH_PROG(AR,ar)
47AC_PATH_PROG(HTMLDOC,htmldoc)
bd7854cb 48AC_PATH_PROG(LD,ld)
ef416fc2 49AC_PATH_PROG(LN,ln)
50AC_PATH_PROG(MV,mv)
51AC_PATH_PROG(RM,rm)
e1d6a774 52AC_PATH_PROG(RMDIR,rmdir)
ef416fc2 53AC_PATH_PROG(SED,sed)
ee571f26
MS
54AC_PATH_PROG(XDGOPEN,xdg-open)
55if test "x$XDGOPEN" = x; then
56 CUPS_HTMLVIEW="htmlview"
57else
58 CUPS_HTMLVIEW="$XDGOPEN"
59fi
60AC_SUBST(CUPS_HTMLVIEW)
839a51c8
MS
61
62AC_MSG_CHECKING(for install-sh script)
63INSTALL="`pwd`/install-sh -c"
64AC_SUBST(INSTALL)
65AC_MSG_RESULT(using $INSTALL)
ef416fc2 66
67if test "x$AR" = x; then
68 AC_MSG_ERROR([Unable to find required library archive command.])
69fi
70if test "x$CC" = x; then
71 AC_MSG_ERROR([Unable to find required C compiler command.])
72fi
ef416fc2 73
923edb68 74dnl Static library option...
75INSTALLSTATIC=""
d6ae789d 76AC_ARG_ENABLE(static, [ --enable-static install static libraries, default=no])
923edb68 77
d6ae789d 78if test x$enable_static = xyes; then
79 echo Installing static libraries...
923edb68 80 INSTALLSTATIC="installstatic"
81fi
82
83AC_SUBST(INSTALLSTATIC)
ef416fc2 84
85dnl Check for libraries...
86AC_SEARCH_LIBS(crypt, crypt)
87AC_SEARCH_LIBS(getspent, sec gen)
88
89LIBMALLOC=""
90AC_ARG_ENABLE(mallinfo, [ --enable-mallinfo turn on malloc debug information, default=no])
91
92if 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 98fi
99
100AC_SUBST(LIBMALLOC)
101
102dnl Check for libpaper support...
103AC_ARG_ENABLE(libpaper, [ --enable-libpaper turn on libpaper support, default=no])
104
105if test x$enable_libpaper = xyes; then
106 AC_CHECK_LIB(paper,systempapername,
107 AC_DEFINE(HAVE_LIBPAPER)
108 LIBPAPER="-lpaper",
109 LIBPAPER="")
110else
111 LIBPAPER=""
112fi
113AC_SUBST(LIBPAPER)
114
115dnl Checks for header files.
116AC_HEADER_STDC
117AC_CHECK_HEADER(crypt.h,AC_DEFINE(HAVE_CRYPT_H))
118AC_CHECK_HEADER(langinfo.h,AC_DEFINE(HAVE_LANGINFO_H))
119AC_CHECK_HEADER(malloc.h,AC_DEFINE(HAVE_MALLOC_H))
120AC_CHECK_HEADER(shadow.h,AC_DEFINE(HAVE_SHADOW_H))
121AC_CHECK_HEADER(string.h,AC_DEFINE(HAVE_STRING_H))
122AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
123AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
124AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H))
125AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
db1f069b 126AC_CHECK_HEADER(sys/param.h,AC_DEFINE(HAVE_SYS_PARAM_H))
bc44d920 127AC_CHECK_HEADER(sys/ucred.h,AC_DEFINE(HAVE_SYS_UCRED_H))
2abf387c 128AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H))
ef416fc2 129
130dnl Checks for string functions.
131AC_CHECK_FUNCS(strdup strcasecmp strncasecmp strlcat strlcpy)
132if test "$uname" = "HP-UX" -a "$uversion" = "1020"; then
133 echo Forcing snprintf emulation for HP-UX.
134else
135 AC_CHECK_FUNCS(snprintf vsnprintf)
136fi
137
ac884b6a
MS
138dnl Check for random number functions...
139AC_CHECK_FUNCS(random mrand48 lrand48)
140
ef416fc2 141dnl Checks for mkstemp and mkstemps functions.
142AC_CHECK_FUNCS(mkstemp mkstemps)
143
144dnl Check for geteuid function.
145AC_CHECK_FUNCS(geteuid)
146
147dnl Check for vsyslog function.
148AC_CHECK_FUNCS(vsyslog)
149
150dnl Checks for signal functions.
151case "$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 ;;
159esac
160
161AC_CHECK_FUNCS(sigaction)
162
163dnl Checks for wait functions.
cc0d019f 164AC_CHECK_FUNCS(waitpid wait3)
ef416fc2 165
166dnl See if the tm structure has the tm_gmtoff member...
167AC_MSG_CHECKING(for tm_gmtoff member in tm structure)
168AC_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
174dnl See if we have the removefile(3) function for securely removing files
175AC_CHECK_FUNCS(removefile)
176
75bd9771
MS
177dnl See if we have libusb...
178AC_ARG_ENABLE(libusb, [ --enable-libusb use libusb for USB printing, default=auto])
179
180LIBUSB=""
181AC_SUBST(LIBUSB)
182
183if test x$enable_libusb = xyes; then
184 check_libusb=yes
185elif test x$enable_libusb != xno -a $uname != Darwin; then
186 check_libusb=yes
187else
188 check_libusb=no
189fi
190
191if 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")])
196fi
197
749b1e90
MS
198dnl See if we have libwrap for TCP wrappers support...
199AC_ARG_ENABLE(tcp_wrappers, [ --enable-tcp-wrappers use libwrap for TCP wrappers support, default=no])
200
201LIBWRAP=""
202AC_SUBST(LIBWRAP)
203
204if 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")])
209fi
210
ef416fc2 211dnl Flags for "ar" command...
212case $uname in
213 Darwin* | *BSD*)
214 ARFLAGS="-rcv"
215 ;;
216 *)
217 ARFLAGS="crvs"
218 ;;
219esac
220
221AC_SUBST(ARFLAGS)
222
ac884b6a 223dnl Prep libraries specifically for cupsd and backends...
bd7854cb 224BACKLIBS=""
225CUPSDLIBS=""
ac884b6a
MS
226AC_SUBST(BACKLIBS)
227AC_SUBST(CUPSDLIBS)
228
229dnl See if we have POSIX ACL support...
230SAVELIBS="$LIBS"
231LIBS=""
ee571f26
MS
232AC_ARG_ENABLE(acl, [ --enable-acl enable POSIX ACL support, default=auto])
233if test "x$enable_acl" != xno; then
234 AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT))
235 CUPSDLIBS="$CUPSDLIBS $LIBS"
236fi
ac884b6a
MS
237LIBS="$SAVELIBS"
238
239dnl Check for DBUS support
240if test -d /etc/dbus-1; then
241 DBUSDIR="/etc/dbus-1"
242else
243 DBUSDIR=""
244fi
bd7854cb 245
ecdc0628 246AC_ARG_ENABLE(dbus, [ --enable-dbus enable DBUS support, default=auto])
ac884b6a
MS
247AC_ARG_WITH(dbusdir, [ --with-dbusdir set DBUS configuration directory ],
248 DBUSDIR="$withval")
249
c5571a1d
MS
250DBUS_NOTIFIER=""
251DBUS_NOTIFIERLIBS=""
252
ac884b6a
MS
253if 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
275fi
ecdc0628 276
ac884b6a 277AC_SUBST(DBUSDIR)
c5571a1d
MS
278AC_SUBST(DBUS_NOTIFIER)
279AC_SUBST(DBUS_NOTIFIERLIBS)
ac884b6a
MS
280
281dnl Extra platform-specific libraries...
282CUPS_DEFAULT_PRINTADMIN_AUTH="@SYSTEM"
283CUPS_SYSTEM_AUTHKEY=""
09a101d6 284FONTS="fonts"
09a101d6 285LEGACY_BACKENDS="parallel scsi"
09a101d6 286
ef416fc2 287case $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 343esac
344
355e94dc
MS
345AC_SUBST(CUPS_DEFAULT_PRINTADMIN_AUTH)
346AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTADMIN_AUTH, "$CUPS_DEFAULT_PRINTADMIN_AUTH")
f7deaa1a 347AC_SUBST(CUPS_SYSTEM_AUTHKEY)
ac884b6a
MS
348AC_SUBST(FONTS)
349AC_SUBST(LEGACY_BACKENDS)
ef416fc2 350
351dnl
b19ccc9e 352dnl End of "$Id: cups-common.m4 7900 2008-09-03 13:47:57Z mike $".
ef416fc2 353dnl