]> git.ipfire.org Git - thirdparty/cups.git/blob - config-scripts/cups-common.m4
Merge changes from CUPS 1.4svn-r7582.
[thirdparty/cups.git] / config-scripts / cups-common.m4
1 dnl
2 dnl "$Id: cups-common.m4 6964 2007-09-17 21:33:57Z 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 AC_CHECK_LIB(c,mallinfo,LIBS="$LIBS"; AC_DEFINE(HAVE_MALLINFO),LIBS="$LIBS")
87 if test "$ac_cv_lib_c_mallinfo" = "no"; then
88 AC_CHECK_LIB(malloc,mallinfo,
89 LIBS="$LIBS"
90 LIBMALLOC="-lmalloc"
91 AC_DEFINE(HAVE_MALLINFO),
92 LIBS="$LIBS")
93 fi
94 fi
95
96 AC_SUBST(LIBMALLOC)
97
98 dnl Check for libpaper support...
99 AC_ARG_ENABLE(libpaper, [ --enable-libpaper turn on libpaper support, default=no])
100
101 if test x$enable_libpaper = xyes; then
102 AC_CHECK_LIB(paper,systempapername,
103 AC_DEFINE(HAVE_LIBPAPER)
104 LIBPAPER="-lpaper",
105 LIBPAPER="")
106 else
107 LIBPAPER=""
108 fi
109 AC_SUBST(LIBPAPER)
110
111 dnl Checks for header files.
112 AC_HEADER_STDC
113 AC_CHECK_HEADER(crypt.h,AC_DEFINE(HAVE_CRYPT_H))
114 AC_CHECK_HEADER(langinfo.h,AC_DEFINE(HAVE_LANGINFO_H))
115 AC_CHECK_HEADER(malloc.h,AC_DEFINE(HAVE_MALLOC_H))
116 AC_CHECK_HEADER(shadow.h,AC_DEFINE(HAVE_SHADOW_H))
117 AC_CHECK_HEADER(string.h,AC_DEFINE(HAVE_STRING_H))
118 AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
119 AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
120 AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H))
121 AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
122 AC_CHECK_HEADER(sys/param.h,AC_DEFINE(HAVE_SYS_PARAM_H))
123 AC_CHECK_HEADER(sys/ucred.h,AC_DEFINE(HAVE_SYS_UCRED_H))
124 AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H))
125
126 dnl Checks for string functions.
127 AC_CHECK_FUNCS(strdup strcasecmp strncasecmp strlcat strlcpy)
128 if test "$uname" = "HP-UX" -a "$uversion" = "1020"; then
129 echo Forcing snprintf emulation for HP-UX.
130 else
131 AC_CHECK_FUNCS(snprintf vsnprintf)
132 fi
133
134 dnl Check for random number functions...
135 AC_CHECK_FUNCS(random mrand48 lrand48)
136
137 dnl Checks for mkstemp and mkstemps functions.
138 AC_CHECK_FUNCS(mkstemp mkstemps)
139
140 dnl Check for geteuid function.
141 AC_CHECK_FUNCS(geteuid)
142
143 dnl Check for vsyslog function.
144 AC_CHECK_FUNCS(vsyslog)
145
146 dnl Checks for signal functions.
147 case "$uname" in
148 Linux | GNU)
149 # Do not use sigset on Linux or GNU HURD
150 ;;
151 *)
152 # Use sigset on other platforms, if available
153 AC_CHECK_FUNCS(sigset)
154 ;;
155 esac
156
157 AC_CHECK_FUNCS(sigaction)
158
159 dnl Checks for wait functions.
160 AC_CHECK_FUNCS(waitpid wait3)
161
162 dnl See if the tm structure has the tm_gmtoff member...
163 AC_MSG_CHECKING(for tm_gmtoff member in tm structure)
164 AC_TRY_COMPILE([#include <time.h>],[struct tm t;
165 int o = t.tm_gmtoff;],
166 AC_MSG_RESULT(yes)
167 AC_DEFINE(HAVE_TM_GMTOFF),
168 AC_MSG_RESULT(no))
169
170 dnl See if we have the removefile(3) function for securely removing files
171 AC_CHECK_FUNCS(removefile)
172
173 dnl Flags for "ar" command...
174 case $uname in
175 Darwin* | *BSD*)
176 ARFLAGS="-rcv"
177 ;;
178 *)
179 ARFLAGS="crvs"
180 ;;
181 esac
182
183 AC_SUBST(ARFLAGS)
184
185 dnl Prep libraries specifically for cupsd and backends...
186 BACKLIBS=""
187 CUPSDLIBS=""
188 AC_SUBST(BACKLIBS)
189 AC_SUBST(CUPSDLIBS)
190
191 dnl See if we have POSIX ACL support...
192 SAVELIBS="$LIBS"
193 LIBS=""
194 AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT))
195 CUPSDLIBS="$CUPSDLIBS $LIBS"
196 LIBS="$SAVELIBS"
197
198 dnl Check for DBUS support
199 if test -d /etc/dbus-1; then
200 DBUSDIR="/etc/dbus-1"
201 else
202 DBUSDIR=""
203 fi
204
205 AC_ARG_ENABLE(dbus, [ --enable-dbus enable DBUS support, default=auto])
206 AC_ARG_WITH(dbusdir, [ --with-dbusdir set DBUS configuration directory ],
207 DBUSDIR="$withval")
208
209 if test "x$enable_dbus" != xno; then
210 AC_PATH_PROG(PKGCONFIG, pkg-config)
211 if test "x$PKGCONFIG" != x; then
212 AC_MSG_CHECKING(for DBUS)
213 if $PKGCONFIG --exists dbus-1; then
214 AC_MSG_RESULT(yes)
215 AC_DEFINE(HAVE_DBUS)
216 CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1` -DDBUS_API_SUBJECT_TO_CHANGE"
217 CUPSDLIBS="$CUPSDLIBS `$PKGCONFIG --libs dbus-1`"
218 AC_CHECK_LIB(dbus-1,
219 dbus_message_iter_init_append,
220 AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND),,
221 `$PKGCONFIG --libs dbus-1`)
222 else
223 AC_MSG_RESULT(no)
224 fi
225 fi
226 fi
227
228 AC_SUBST(DBUSDIR)
229
230 dnl Extra platform-specific libraries...
231 CUPS_DEFAULT_PRINTADMIN_AUTH="@SYSTEM"
232 CUPS_SYSTEM_AUTHKEY=""
233 FONTS="fonts"
234 LEGACY_BACKENDS="parallel scsi"
235
236 case $uname in
237 Darwin*)
238 FONTS=""
239 LEGACY_BACKENDS=""
240 BACKLIBS="$BACKLIBS -framework IOKit"
241 CUPSDLIBS="$CUPSDLIBS -sectorder __TEXT __text cupsd.order -e start -framework IOKit -framework SystemConfiguration -weak_framework ApplicationServices"
242 LIBS="-framework SystemConfiguration -framework CoreFoundation $LIBS"
243
244 dnl Check for framework headers...
245 AC_CHECK_HEADER(CoreFoundation/CoreFoundation.h,AC_DEFINE(HAVE_COREFOUNDATION_H))
246 AC_CHECK_HEADER(CoreFoundation/CFPriv.h,AC_DEFINE(HAVE_CFPRIV_H))
247 AC_CHECK_HEADER(CoreFoundation/CFBundlePriv.h,AC_DEFINE(HAVE_CFBUNDLEPRIV_H))
248
249 dnl Check for the new membership functions in MacOSX 10.4...
250 AC_CHECK_HEADER(membership.h,AC_DEFINE(HAVE_MEMBERSHIP_H))
251 AC_CHECK_HEADER(membershipPriv.h,AC_DEFINE(HAVE_MEMBERSHIPPRIV_H))
252 AC_CHECK_FUNCS(mbr_uid_to_uuid)
253
254 dnl Need <dlfcn.h> header...
255 AC_CHECK_HEADER(dlfcn.h,AC_DEFINE(HAVE_DLFCN_H))
256
257 dnl Check for notify_post support
258 AC_CHECK_HEADER(notify.h,AC_DEFINE(HAVE_NOTIFY_H))
259 AC_CHECK_FUNCS(notify_post)
260
261 dnl Check for Authorization Services support
262 AC_CHECK_HEADER(Security/Authorization.h, [
263 AC_DEFINE(HAVE_AUTHORIZATION_H)
264 if grep -q system.print.operator /etc/authorization; then
265 CUPS_DEFAULT_PRINTADMIN_AUTH="@AUTHKEY(system.print.admin) @admin @lpadmin"
266 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.preferences"
267 else
268 CUPS_DEFAULT_PRINTADMIN_AUTH="@AUTHKEY(system.print.operator) @admin @lpadmin"
269 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.print.admin"
270 fi])
271 AC_CHECK_HEADER(Security/SecBasePriv.h,AC_DEFINE(HAVE_SECBASEPRIV_H))
272
273 dnl Check for sandbox/Seatbelt support
274 AC_CHECK_HEADER(sandbox.h,AC_DEFINE(HAVE_SANDBOX_H))
275 ;;
276 esac
277
278 AC_SUBST(CUPS_DEFAULT_PRINTADMIN_AUTH)
279 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTADMIN_AUTH, "$CUPS_DEFAULT_PRINTADMIN_AUTH")
280 AC_SUBST(CUPS_SYSTEM_AUTHKEY)
281 AC_SUBST(FONTS)
282 AC_SUBST(LEGACY_BACKENDS)
283
284 dnl
285 dnl End of "$Id: cups-common.m4 6964 2007-09-17 21:33:57Z mike $".
286 dnl