]> git.ipfire.org Git - thirdparty/cups.git/blame - config-scripts/cups-common.m4
Merge changes from CUPS 1.4svn-r7582.
[thirdparty/cups.git] / config-scripts / cups-common.m4
CommitLineData
ef416fc2 1dnl
2e4ff8af 2dnl "$Id: cups-common.m4 6964 2007-09-17 21:33: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...
2e4ff8af 23CUPS_VERSION="1.4svn"
ecdc0628 24CUPS_REVISION=""
2e4ff8af
MS
25if 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'`"
27fi
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)
839a51c8
MS
54
55AC_MSG_CHECKING(for install-sh script)
56INSTALL="`pwd`/install-sh -c"
57AC_SUBST(INSTALL)
58AC_MSG_RESULT(using $INSTALL)
ef416fc2 59
60if test "x$AR" = x; then
61 AC_MSG_ERROR([Unable to find required library archive command.])
62fi
63if test "x$CC" = x; then
64 AC_MSG_ERROR([Unable to find required C compiler command.])
65fi
ef416fc2 66
923edb68 67dnl Static library option...
68INSTALLSTATIC=""
d6ae789d 69AC_ARG_ENABLE(static, [ --enable-static install static libraries, default=no])
923edb68 70
d6ae789d 71if test x$enable_static = xyes; then
72 echo Installing static libraries...
923edb68 73 INSTALLSTATIC="installstatic"
74fi
75
76AC_SUBST(INSTALLSTATIC)
ef416fc2 77
78dnl Check for libraries...
79AC_SEARCH_LIBS(crypt, crypt)
80AC_SEARCH_LIBS(getspent, sec gen)
81
82LIBMALLOC=""
83AC_ARG_ENABLE(mallinfo, [ --enable-mallinfo turn on malloc debug information, default=no])
84
85if 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
94fi
95
96AC_SUBST(LIBMALLOC)
97
98dnl Check for libpaper support...
99AC_ARG_ENABLE(libpaper, [ --enable-libpaper turn on libpaper support, default=no])
100
101if test x$enable_libpaper = xyes; then
102 AC_CHECK_LIB(paper,systempapername,
103 AC_DEFINE(HAVE_LIBPAPER)
104 LIBPAPER="-lpaper",
105 LIBPAPER="")
106else
107 LIBPAPER=""
108fi
109AC_SUBST(LIBPAPER)
110
111dnl Checks for header files.
112AC_HEADER_STDC
113AC_CHECK_HEADER(crypt.h,AC_DEFINE(HAVE_CRYPT_H))
114AC_CHECK_HEADER(langinfo.h,AC_DEFINE(HAVE_LANGINFO_H))
115AC_CHECK_HEADER(malloc.h,AC_DEFINE(HAVE_MALLOC_H))
116AC_CHECK_HEADER(shadow.h,AC_DEFINE(HAVE_SHADOW_H))
117AC_CHECK_HEADER(string.h,AC_DEFINE(HAVE_STRING_H))
118AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
119AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
120AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H))
121AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
db1f069b 122AC_CHECK_HEADER(sys/param.h,AC_DEFINE(HAVE_SYS_PARAM_H))
bc44d920 123AC_CHECK_HEADER(sys/ucred.h,AC_DEFINE(HAVE_SYS_UCRED_H))
2abf387c 124AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H))
ef416fc2 125
126dnl Checks for string functions.
127AC_CHECK_FUNCS(strdup strcasecmp strncasecmp strlcat strlcpy)
128if test "$uname" = "HP-UX" -a "$uversion" = "1020"; then
129 echo Forcing snprintf emulation for HP-UX.
130else
131 AC_CHECK_FUNCS(snprintf vsnprintf)
132fi
133
ac884b6a
MS
134dnl Check for random number functions...
135AC_CHECK_FUNCS(random mrand48 lrand48)
136
ef416fc2 137dnl Checks for mkstemp and mkstemps functions.
138AC_CHECK_FUNCS(mkstemp mkstemps)
139
140dnl Check for geteuid function.
141AC_CHECK_FUNCS(geteuid)
142
143dnl Check for vsyslog function.
144AC_CHECK_FUNCS(vsyslog)
145
146dnl Checks for signal functions.
147case "$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 ;;
155esac
156
157AC_CHECK_FUNCS(sigaction)
158
159dnl Checks for wait functions.
cc0d019f 160AC_CHECK_FUNCS(waitpid wait3)
ef416fc2 161
162dnl See if the tm structure has the tm_gmtoff member...
163AC_MSG_CHECKING(for tm_gmtoff member in tm structure)
164AC_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
cc0d019f
MS
170dnl See if we have the removefile(3) function for securely removing files
171AC_CHECK_FUNCS(removefile)
172
ef416fc2 173dnl Flags for "ar" command...
174case $uname in
175 Darwin* | *BSD*)
176 ARFLAGS="-rcv"
177 ;;
178 *)
179 ARFLAGS="crvs"
180 ;;
181esac
182
183AC_SUBST(ARFLAGS)
184
ac884b6a 185dnl Prep libraries specifically for cupsd and backends...
bd7854cb 186BACKLIBS=""
187CUPSDLIBS=""
ac884b6a
MS
188AC_SUBST(BACKLIBS)
189AC_SUBST(CUPSDLIBS)
190
191dnl See if we have POSIX ACL support...
192SAVELIBS="$LIBS"
193LIBS=""
194AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT))
195CUPSDLIBS="$CUPSDLIBS $LIBS"
196LIBS="$SAVELIBS"
197
198dnl Check for DBUS support
199if test -d /etc/dbus-1; then
200 DBUSDIR="/etc/dbus-1"
201else
202 DBUSDIR=""
203fi
bd7854cb 204
ecdc0628 205AC_ARG_ENABLE(dbus, [ --enable-dbus enable DBUS support, default=auto])
ac884b6a
MS
206AC_ARG_WITH(dbusdir, [ --with-dbusdir set DBUS configuration directory ],
207 DBUSDIR="$withval")
208
209if 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,
568fa3fa
MS
220 AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND),,
221 `$PKGCONFIG --libs dbus-1`)
ac884b6a
MS
222 else
223 AC_MSG_RESULT(no)
224 fi
225 fi
226fi
ecdc0628 227
ac884b6a
MS
228AC_SUBST(DBUSDIR)
229
230dnl Extra platform-specific libraries...
231CUPS_DEFAULT_PRINTADMIN_AUTH="@SYSTEM"
232CUPS_SYSTEM_AUTHKEY=""
09a101d6 233FONTS="fonts"
09a101d6 234LEGACY_BACKENDS="parallel scsi"
09a101d6 235
ef416fc2 236case $uname in
237 Darwin*)
09a101d6 238 FONTS=""
239 LEGACY_BACKENDS=""
ac884b6a 240 BACKLIBS="$BACKLIBS -framework IOKit"
64a69576 241 CUPSDLIBS="$CUPSDLIBS -sectorder __TEXT __text cupsd.order -e start -framework IOKit -framework SystemConfiguration -weak_framework ApplicationServices"
080811b1 242 LIBS="-framework SystemConfiguration -framework CoreFoundation $LIBS"
fa73b229 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
7594b224 249 dnl Check for the new membership functions in MacOSX 10.4...
fa73b229 250 AC_CHECK_HEADER(membership.h,AC_DEFINE(HAVE_MEMBERSHIP_H))
7594b224 251 AC_CHECK_HEADER(membershipPriv.h,AC_DEFINE(HAVE_MEMBERSHIPPRIV_H))
fa73b229 252 AC_CHECK_FUNCS(mbr_uid_to_uuid)
253
7594b224 254 dnl Need <dlfcn.h> header...
255 AC_CHECK_HEADER(dlfcn.h,AC_DEFINE(HAVE_DLFCN_H))
256
fa73b229 257 dnl Check for notify_post support
258 AC_CHECK_HEADER(notify.h,AC_DEFINE(HAVE_NOTIFY_H))
259 AC_CHECK_FUNCS(notify_post)
f7deaa1a 260
261 dnl Check for Authorization Services support
262 AC_CHECK_HEADER(Security/Authorization.h, [
263 AC_DEFINE(HAVE_AUTHORIZATION_H)
01ce6322
MS
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])
f7deaa1a 271 AC_CHECK_HEADER(Security/SecBasePriv.h,AC_DEFINE(HAVE_SECBASEPRIV_H))
a4924f6c
MS
272
273 dnl Check for sandbox/Seatbelt support
274 AC_CHECK_HEADER(sandbox.h,AC_DEFINE(HAVE_SANDBOX_H))
ef416fc2 275 ;;
ef416fc2 276esac
277
355e94dc
MS
278AC_SUBST(CUPS_DEFAULT_PRINTADMIN_AUTH)
279AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTADMIN_AUTH, "$CUPS_DEFAULT_PRINTADMIN_AUTH")
f7deaa1a 280AC_SUBST(CUPS_SYSTEM_AUTHKEY)
ac884b6a
MS
281AC_SUBST(FONTS)
282AC_SUBST(LEGACY_BACKENDS)
ef416fc2 283
284dnl
2e4ff8af 285dnl End of "$Id: cups-common.m4 6964 2007-09-17 21:33:57Z mike $".
ef416fc2 286dnl