]> git.ipfire.org Git - thirdparty/cups.git/blame_incremental - config-scripts/cups-common.m4
Update ipp documentation to reflect the behavior of configuring WiFi on IPP USB printers.
[thirdparty/cups.git] / config-scripts / cups-common.m4
... / ...
CommitLineData
1dnl
2dnl Common configuration stuff for CUPS.
3dnl
4dnl Copyright © 2007-2019 by Apple Inc.
5dnl Copyright © 1997-2007 by Easy Software Products, all rights reserved.
6dnl
7dnl Licensed under Apache License v2.0. See the file "LICENSE" for more
8dnl information.
9dnl
10
11dnl Set the name of the config header file...
12AC_CONFIG_HEADER(config.h)
13
14dnl Version number information...
15CUPS_VERSION="AC_PACKAGE_VERSION"
16CUPS_REVISION=""
17CUPS_BUILD="cups-$CUPS_VERSION"
18
19AC_ARG_WITH(cups_build, [ --with-cups-build set "cups-config --build" string ],
20 CUPS_BUILD="$withval")
21
22AC_SUBST(CUPS_VERSION)
23AC_SUBST(CUPS_REVISION)
24AC_SUBST(CUPS_BUILD)
25AC_DEFINE_UNQUOTED(CUPS_SVERSION, "AC_PACKAGE_NAME v$CUPS_VERSION$CUPS_REVISION")
26AC_DEFINE_UNQUOTED(CUPS_MINIMAL, "AC_PACKAGE_NAME/$CUPS_VERSION$CUPS_REVISION")
27
28dnl Default compiler flags...
29CFLAGS="${CFLAGS:=}"
30CPPFLAGS="${CPPFLAGS:=}"
31CXXFLAGS="${CXXFLAGS:=}"
32LDFLAGS="${LDFLAGS:=}"
33
34dnl Checks for programs...
35AC_PROG_AWK
36AC_PROG_CC(clang cc gcc)
37AC_PROG_CPP
38AC_PROG_CXX(clang++ c++ g++)
39AC_PROG_RANLIB
40AC_PATH_PROG(AR,ar)
41AC_PATH_PROG(CHMOD,chmod)
42AC_PATH_PROG(GZIPPROG,gzip)
43AC_MSG_CHECKING(for install-sh script)
44INSTALL="`pwd`/install-sh"
45AC_SUBST(INSTALL)
46AC_MSG_RESULT(using $INSTALL)
47AC_PATH_PROG(LD,ld)
48AC_PATH_PROG(LN,ln)
49AC_PATH_PROG(MKDIR,mkdir)
50AC_PATH_PROG(MV,mv)
51AC_PATH_PROG(RM,rm)
52AC_PATH_PROG(RMDIR,rmdir)
53AC_PATH_PROG(SED,sed)
54AC_PATH_PROG(XDGOPEN,xdg-open)
55
56if test "x$XDGOPEN" = x; then
57 CUPS_HTMLVIEW="htmlview"
58else
59 CUPS_HTMLVIEW="$XDGOPEN"
60fi
61AC_SUBST(CUPS_HTMLVIEW)
62
63if test "x$AR" = x; then
64 AC_MSG_ERROR([Unable to find required library archive command.])
65fi
66if test "x$CC" = x; then
67 AC_MSG_ERROR([Unable to find required C compiler command.])
68fi
69
70dnl Static library option...
71INSTALLSTATIC=""
72AC_ARG_ENABLE(static, [ --enable-static install static libraries])
73
74if test x$enable_static = xyes; then
75 echo Installing static libraries...
76 INSTALLSTATIC="installstatic"
77fi
78
79AC_SUBST(INSTALLSTATIC)
80
81dnl Check for pkg-config, which is used for some other tests later on...
82AC_PATH_TOOL(PKGCONFIG, pkg-config)
83
84dnl Check for libraries...
85AC_SEARCH_LIBS(abs, m, AC_DEFINE(HAVE_ABS))
86AC_SEARCH_LIBS(crypt, crypt)
87AC_SEARCH_LIBS(fmod, m)
88AC_SEARCH_LIBS(getspent, sec gen)
89
90LIBMALLOC=""
91AC_ARG_ENABLE(mallinfo, [ --enable-mallinfo build with malloc debug logging])
92
93if test x$enable_mallinfo = xyes; then
94 SAVELIBS="$LIBS"
95 LIBS=""
96 AC_SEARCH_LIBS(mallinfo, malloc, AC_DEFINE(HAVE_MALLINFO))
97 LIBMALLOC="$LIBS"
98 LIBS="$SAVELIBS"
99fi
100
101AC_SUBST(LIBMALLOC)
102
103dnl Check for libpaper support...
104AC_ARG_ENABLE(libpaper, [ --enable-libpaper build with libpaper support])
105
106if test x$enable_libpaper = xyes; then
107 AC_CHECK_LIB(paper,systempapername,
108 AC_DEFINE(HAVE_LIBPAPER)
109 LIBPAPER="-lpaper",
110 LIBPAPER="")
111else
112 LIBPAPER=""
113fi
114AC_SUBST(LIBPAPER)
115
116dnl Checks for header files.
117AC_HEADER_STDC
118AC_CHECK_HEADER(stdlib.h,AC_DEFINE(HAVE_STDLIB_H))
119AC_CHECK_HEADER(crypt.h,AC_DEFINE(HAVE_CRYPT_H))
120AC_CHECK_HEADER(langinfo.h,AC_DEFINE(HAVE_LANGINFO_H))
121AC_CHECK_HEADER(malloc.h,AC_DEFINE(HAVE_MALLOC_H))
122AC_CHECK_HEADER(shadow.h,AC_DEFINE(HAVE_SHADOW_H))
123AC_CHECK_HEADER(stdint.h,AC_DEFINE(HAVE_STDINT_H))
124AC_CHECK_HEADER(string.h,AC_DEFINE(HAVE_STRING_H))
125AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
126AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
127AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
128AC_CHECK_HEADER(sys/param.h,AC_DEFINE(HAVE_SYS_PARAM_H))
129AC_CHECK_HEADER(sys/ucred.h,AC_DEFINE(HAVE_SYS_UCRED_H))
130
131dnl Checks for iconv.h and iconv_open
132AC_CHECK_HEADER(iconv.h,
133 SAVELIBS="$LIBS"
134 LIBS=""
135 AC_SEARCH_LIBS(iconv_open,iconv,
136 AC_DEFINE(HAVE_ICONV_H)
137 SAVELIBS="$SAVELIBS $LIBS")
138 AC_SEARCH_LIBS(libiconv_open,iconv,
139 AC_DEFINE(HAVE_ICONV_H)
140 SAVELIBS="$SAVELIBS $LIBS")
141 LIBS="$SAVELIBS")
142
143dnl Checks for statfs and its many headers...
144AC_CHECK_HEADER(sys/mount.h,AC_DEFINE(HAVE_SYS_MOUNT_H))
145AC_CHECK_HEADER(sys/statfs.h,AC_DEFINE(HAVE_SYS_STATFS_H))
146AC_CHECK_HEADER(sys/statvfs.h,AC_DEFINE(HAVE_SYS_STATVFS_H))
147AC_CHECK_HEADER(sys/vfs.h,AC_DEFINE(HAVE_SYS_VFS_H))
148AC_CHECK_FUNCS(statfs statvfs)
149
150dnl Checks for string functions.
151AC_CHECK_FUNCS(strdup strlcat strlcpy)
152if test "$host_os_name" = "hp-ux" -a "$host_os_version" = "1020"; then
153 echo Forcing snprintf emulation for HP-UX.
154else
155 AC_CHECK_FUNCS(snprintf vsnprintf)
156fi
157
158dnl Check for random number functions...
159AC_CHECK_FUNCS(random lrand48 arc4random)
160
161dnl Check for geteuid function.
162AC_CHECK_FUNCS(geteuid)
163
164dnl Check for setpgid function.
165AC_CHECK_FUNCS(setpgid)
166
167dnl Check for vsyslog function.
168AC_CHECK_FUNCS(vsyslog)
169
170dnl Checks for signal functions.
171case "$host_os_name" in
172 linux* | gnu*)
173 # Do not use sigset on Linux or GNU HURD
174 ;;
175 *)
176 # Use sigset on other platforms, if available
177 AC_CHECK_FUNCS(sigset)
178 ;;
179esac
180
181AC_CHECK_FUNCS(sigaction)
182
183dnl Checks for wait functions.
184AC_CHECK_FUNCS(waitpid wait3)
185
186dnl Check for posix_spawn
187AC_CHECK_FUNCS(posix_spawn)
188
189dnl Check for getgrouplist
190AC_CHECK_FUNCS(getgrouplist)
191
192dnl See if the tm structure has the tm_gmtoff member...
193AC_MSG_CHECKING(for tm_gmtoff member in tm structure)
194AC_TRY_COMPILE([#include <time.h>],[struct tm t;
195 int o = t.tm_gmtoff;],
196 AC_MSG_RESULT(yes)
197 AC_DEFINE(HAVE_TM_GMTOFF),
198 AC_MSG_RESULT(no))
199
200dnl See if the stat structure has the st_gen member...
201AC_MSG_CHECKING(for st_gen member in stat structure)
202AC_TRY_COMPILE([#include <sys/stat.h>],[struct stat t;
203 int o = t.st_gen;],
204 AC_MSG_RESULT(yes)
205 AC_DEFINE(HAVE_ST_GEN),
206 AC_MSG_RESULT(no))
207
208dnl See if we have the removefile(3) function for securely removing files
209AC_CHECK_FUNCS(removefile)
210
211dnl See if we have libusb...
212AC_ARG_ENABLE(libusb, [ --enable-libusb use libusb for USB printing])
213
214LIBUSB=""
215USBQUIRKS=""
216AC_SUBST(LIBUSB)
217AC_SUBST(USBQUIRKS)
218
219if test "x$PKGCONFIG" != x; then
220 if test x$enable_libusb != xno -a $host_os_name != darwin; then
221 AC_MSG_CHECKING(for libusb-1.0)
222 if $PKGCONFIG --exists libusb-1.0; then
223 AC_MSG_RESULT(yes)
224 AC_DEFINE(HAVE_LIBUSB)
225 CFLAGS="$CFLAGS `$PKGCONFIG --cflags libusb-1.0`"
226 LIBUSB="`$PKGCONFIG --libs libusb-1.0`"
227 USBQUIRKS="\$(DATADIR)/usb"
228 else
229 AC_MSG_RESULT(no)
230 if test x$enable_libusb = xyes; then
231 AC_MSG_ERROR(libusb required for --enable-libusb.)
232 fi
233 fi
234 fi
235elif test x$enable_libusb = xyes; then
236 AC_MSG_ERROR(Need pkg-config to enable libusb support.)
237fi
238
239dnl See if we have libwrap for TCP wrappers support...
240AC_ARG_ENABLE(tcp_wrappers, [ --enable-tcp-wrappers use libwrap for TCP wrappers support])
241
242LIBWRAP=""
243AC_SUBST(LIBWRAP)
244
245if test x$enable_tcp_wrappers = xyes; then
246 AC_CHECK_LIB(wrap, hosts_access,[
247 AC_CHECK_HEADER(tcpd.h,
248 AC_DEFINE(HAVE_TCPD_H)
249 LIBWRAP="-lwrap")])
250fi
251
252dnl ZLIB
253INSTALL_GZIP=""
254LIBZ=""
255AC_CHECK_HEADER(zlib.h,
256 AC_CHECK_LIB(z, gzgets,[
257 AC_DEFINE(HAVE_LIBZ)
258 LIBZ="-lz"
259 LIBS="$LIBS -lz"
260 AC_CHECK_LIB(z, inflateCopy, AC_DEFINE(HAVE_INFLATECOPY))
261 if test "x$GZIPPROG" != x; then
262 INSTALL_GZIP="-z"
263 fi]))
264AC_SUBST(INSTALL_GZIP)
265AC_SUBST(LIBZ)
266
267dnl Flags for "ar" command...
268case $host_os_name in
269 darwin* | *bsd*)
270 ARFLAGS="-rcv"
271 ;;
272 *)
273 ARFLAGS="crvs"
274 ;;
275esac
276
277AC_SUBST(ARFLAGS)
278
279dnl Prep libraries specifically for cupsd and backends...
280BACKLIBS=""
281SERVERLIBS=""
282AC_SUBST(BACKLIBS)
283AC_SUBST(SERVERLIBS)
284
285dnl See if we have POSIX ACL support...
286SAVELIBS="$LIBS"
287LIBS=""
288AC_ARG_ENABLE(acl, [ --enable-acl build with POSIX ACL support])
289if test "x$enable_acl" != xno; then
290 AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT))
291 SERVERLIBS="$SERVERLIBS $LIBS"
292fi
293LIBS="$SAVELIBS"
294
295dnl Check for DBUS support
296DBUSDIR=""
297DBUS_NOTIFIER=""
298DBUS_NOTIFIERLIBS=""
299
300AC_ARG_ENABLE(dbus, [ --disable-dbus build without DBUS support])
301AC_ARG_WITH(dbusdir, [ --with-dbusdir set DBUS configuration directory ],
302 DBUSDIR="$withval")
303
304if test "x$enable_dbus" != xno -a "x$PKGCONFIG" != x -a "x$host_os_name" != xdarwin; then
305 AC_MSG_CHECKING(for DBUS)
306 if $PKGCONFIG --exists dbus-1; then
307 AC_MSG_RESULT(yes)
308 AC_DEFINE(HAVE_DBUS)
309 CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1` -DDBUS_API_SUBJECT_TO_CHANGE"
310 SERVERLIBS="$SERVERLIBS `$PKGCONFIG --libs dbus-1`"
311 DBUS_NOTIFIER="dbus"
312 DBUS_NOTIFIERLIBS="`$PKGCONFIG --libs dbus-1`"
313 SAVELIBS="$LIBS"
314 LIBS="$LIBS $DBUS_NOTIFIERLIBS"
315 AC_CHECK_FUNC(dbus_message_iter_init_append,
316 AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND))
317 AC_CHECK_FUNC(dbus_threads_init,
318 AC_DEFINE(HAVE_DBUS_THREADS_INIT))
319 LIBS="$SAVELIBS"
320 if test -d /etc/dbus-1 -a "x$DBUSDIR" = x; then
321 DBUSDIR="/etc/dbus-1"
322 fi
323 else
324 AC_MSG_RESULT(no)
325 fi
326fi
327
328AC_SUBST(DBUSDIR)
329AC_SUBST(DBUS_NOTIFIER)
330AC_SUBST(DBUS_NOTIFIERLIBS)
331
332dnl Extra platform-specific libraries...
333CUPS_DEFAULT_PRINTOPERATOR_AUTH="@SYSTEM"
334CUPS_DEFAULT_SYSTEM_AUTHKEY=""
335CUPS_SYSTEM_AUTHKEY=""
336INSTALLXPC=""
337
338case $host_os_name in
339 darwin*)
340 BACKLIBS="$BACKLIBS -framework IOKit"
341 SERVERLIBS="$SERVERLIBS -framework IOKit -weak_framework ApplicationServices"
342 LIBS="-framework CoreFoundation -framework Security $LIBS"
343
344 dnl Check for framework headers...
345 AC_CHECK_HEADER(ApplicationServices/ApplicationServices.h,AC_DEFINE(HAVE_APPLICATIONSERVICES_H))
346 AC_CHECK_HEADER(CoreFoundation/CoreFoundation.h,AC_DEFINE(HAVE_COREFOUNDATION_H))
347
348 dnl Check for dynamic store function...
349 SAVELIBS="$LIBS"
350 LIBS="-framework SystemConfiguration $LIBS"
351 AC_CHECK_FUNCS(SCDynamicStoreCopyComputerName,[
352 AC_DEFINE(HAVE_SCDYNAMICSTORECOPYCOMPUTERNAME)],[
353 LIBS="$SAVELIBS"])
354
355 dnl Check for the new membership functions in MacOSX 10.4...
356 AC_CHECK_HEADER(membership.h,AC_DEFINE(HAVE_MEMBERSHIP_H))
357 AC_CHECK_FUNCS(mbr_uid_to_uuid)
358
359 dnl Need <dlfcn.h> header...
360 AC_CHECK_HEADER(dlfcn.h,AC_DEFINE(HAVE_DLFCN_H))
361
362 dnl Check for notify_post support
363 AC_CHECK_HEADER(notify.h,AC_DEFINE(HAVE_NOTIFY_H))
364 AC_CHECK_FUNCS(notify_post)
365
366 dnl Check for Authorization Services support
367 AC_ARG_WITH(adminkey, [ --with-adminkey set the default SystemAuthKey value],
368 default_adminkey="$withval",
369 default_adminkey="default")
370 AC_ARG_WITH(operkey, [ --with-operkey set the default operator @AUTHKEY value],
371 default_operkey="$withval",
372 default_operkey="default")
373
374 AC_CHECK_HEADER(Security/Authorization.h, [
375 AC_DEFINE(HAVE_AUTHORIZATION_H)
376
377 if test "x$default_adminkey" != xdefault; then
378 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey $default_adminkey"
379 CUPS_DEFAULT_SYSTEM_AUTHKEY="$default_adminkey"
380 else
381 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.print.admin"
382 CUPS_DEFAULT_SYSTEM_AUTHKEY="system.print.admin"
383 fi
384
385 if test "x$default_operkey" != xdefault; then
386 CUPS_DEFAULT_PRINTOPERATOR_AUTH="@AUTHKEY($default_operkey) @admin @lpadmin"
387 else
388 CUPS_DEFAULT_PRINTOPERATOR_AUTH="@AUTHKEY(system.print.operator) @admin @lpadmin"
389 fi])
390
391 dnl Check for sandbox/Seatbelt support
392 if test $host_os_version -ge 100; then
393 AC_CHECK_HEADER(sandbox.h,AC_DEFINE(HAVE_SANDBOX_H))
394 fi
395 if test $host_os_version -ge 110 -a $host_os_version -lt 120; then
396 # Broken public headers in 10.7.x...
397 AC_MSG_CHECKING(for sandbox/private.h presence)
398 if test -f /usr/local/include/sandbox/private.h; then
399 AC_MSG_RESULT(yes)
400 else
401 AC_MSG_RESULT(no)
402 AC_MSG_ERROR(Run 'sudo mkdir -p /usr/local/include/sandbox' and 'sudo touch /usr/local/include/sandbox/private.h' to build CUPS.)
403 fi
404 fi
405
406 dnl Check for XPC support
407 AC_CHECK_HEADER(xpc/xpc.h,
408 AC_DEFINE(HAVE_XPC)
409 INSTALLXPC="install-xpc")
410 ;;
411esac
412
413AC_SUBST(CUPS_DEFAULT_PRINTOPERATOR_AUTH)
414AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTOPERATOR_AUTH, "$CUPS_DEFAULT_PRINTOPERATOR_AUTH")
415AC_DEFINE_UNQUOTED(CUPS_DEFAULT_SYSTEM_AUTHKEY, "$CUPS_DEFAULT_SYSTEM_AUTHKEY")
416AC_SUBST(CUPS_SYSTEM_AUTHKEY)
417AC_SUBST(INSTALLXPC)
418
419dnl Check for build components
420COMPONENTS="all"
421
422AC_ARG_WITH(components, [ --with-components set components to build:
423 - "all" (default) builds everything
424 - "core" builds libcups and ipptool
425 - "libcups" builds just libcups
426 - "libcupslite" builds just libcups without driver support],
427 COMPONENTS="$withval")
428
429cupsimagebase="cupsimage"
430IPPEVECOMMANDS="ippevepcl ippeveps"
431LIBCUPSOBJS="\$(COREOBJS) \$(DRIVEROBJS)"
432LIBHEADERS="\$(COREHEADERS) \$(DRIVERHEADERS)"
433LIBHEADERSPRIV="\$(COREHEADERSPRIV) \$(DRIVERHEADERSPRIV)"
434
435case "$COMPONENTS" in
436 all)
437 BUILDDIRS="tools filter backend berkeley cgi-bin monitor notifier ppdc scheduler systemv conf data desktop locale man doc examples templates"
438 ;;
439
440 core)
441 BUILDDIRS="tools examples locale"
442 ;;
443
444 corelite)
445 AC_DEFINE(CUPS_LITE)
446 BUILDDIRS="tools examples locale"
447 cupsimagebase=""
448 LIBCUPSOBJS="\$(COREOBJS)"
449 LIBHEADERS="\$(COREHEADERS)"
450 LIBHEADERSPRIV="\$(COREHEADERSPRIV)"
451 ;;
452
453 libcups)
454 BUILDDIRS="locale"
455 cupsimagebase=""
456 ;;
457
458 libcupslite)
459 AC_DEFINE(CUPS_LITE)
460 BUILDDIRS="locale"
461 cupsimagebase=""
462 LIBCUPSOBJS="\$(COREOBJS)"
463 LIBHEADERS="\$(COREHEADERS)"
464 LIBHEADERSPRIV="\$(COREHEADERSPRIV)"
465 ;;
466
467 *)
468 AC_MSG_ERROR([Bad build component "$COMPONENT" specified!])
469 ;;
470esac
471
472AC_SUBST(BUILDDIRS)
473AC_SUBST(IPPEVECOMMANDS)
474AC_SUBST(LIBCUPSOBJS)
475AC_SUBST(LIBHEADERS)
476AC_SUBST(LIBHEADERSPRIV)