]> git.ipfire.org Git - thirdparty/cups.git/blob - config-scripts/cups-common.m4
Merge changes from CUPS trunk, r6739.
[thirdparty/cups.git] / config-scripts / cups-common.m4
1 dnl
2 dnl "$Id: cups-common.m4 6720 2007-07-25 00:40:03Z mike $"
3 dnl
4 dnl Common configuration stuff for the Common UNIX Printing System (CUPS).
5 dnl
6 dnl Copyright 2007 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.50...
17 AC_PREREQ(2.50)
18
19 dnl Set the name of the config header file...
20 AC_CONFIG_HEADER(config.h)
21
22 dnl Versio number information...
23 CUPS_VERSION="1.3rc1"
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_CXX
44 AC_PROG_CPP
45 AC_PROG_INSTALL
46 if test "$INSTALL" = "$ac_install_sh"; then
47 # Use full path to install-sh script...
48 INSTALL="`pwd`/install-sh -c"
49 fi
50 AC_PROG_RANLIB
51 AC_PATH_PROG(AR,ar)
52 AC_PATH_PROG(HTMLDOC,htmldoc)
53 AC_PATH_PROG(LD,ld)
54 AC_PATH_PROG(LN,ln)
55 AC_PATH_PROG(MV,mv)
56 AC_PATH_PROG(RM,rm)
57 AC_PATH_PROG(RMDIR,rmdir)
58 AC_PATH_PROG(SED,sed)
59 AC_PATH_PROG(STRIP,strip)
60
61 if test "x$AR" = x; then
62 AC_MSG_ERROR([Unable to find required library archive command.])
63 fi
64 if test "x$CC" = x; then
65 AC_MSG_ERROR([Unable to find required C compiler command.])
66 fi
67 if test "x$CXX" = x; then
68 AC_MSG_ERROR([Unable to find required C++ compiler command.])
69 fi
70
71 dnl Static library option...
72 INSTALLSTATIC=""
73 AC_ARG_ENABLE(static, [ --enable-static install static libraries, default=no])
74
75 if test x$enable_static = xyes; then
76 echo Installing static libraries...
77 INSTALLSTATIC="installstatic"
78 fi
79
80 AC_SUBST(INSTALLSTATIC)
81
82 dnl Check for libraries...
83 AC_SEARCH_LIBS(crypt, crypt)
84 AC_SEARCH_LIBS(getspent, sec gen)
85
86 LIBMALLOC=""
87 AC_ARG_ENABLE(mallinfo, [ --enable-mallinfo turn on malloc debug information, default=no])
88
89 if test x$enable_mallinfo = xyes; then
90 AC_CHECK_LIB(c,mallinfo,LIBS="$LIBS"; AC_DEFINE(HAVE_MALLINFO),LIBS="$LIBS")
91 if test "$ac_cv_lib_c_mallinfo" = "no"; then
92 AC_CHECK_LIB(malloc,mallinfo,
93 LIBS="$LIBS"
94 LIBMALLOC="-lmalloc"
95 AC_DEFINE(HAVE_MALLINFO),
96 LIBS="$LIBS")
97 fi
98 fi
99
100 AC_SUBST(LIBMALLOC)
101
102 dnl Check for libpaper support...
103 AC_ARG_ENABLE(libpaper, [ --enable-libpaper turn on libpaper support, default=no])
104
105 if test x$enable_libpaper = xyes; then
106 AC_CHECK_LIB(paper,systempapername,
107 AC_DEFINE(HAVE_LIBPAPER)
108 LIBPAPER="-lpaper",
109 LIBPAPER="")
110 else
111 LIBPAPER=""
112 fi
113 AC_SUBST(LIBPAPER)
114
115 dnl Checks for header files.
116 AC_HEADER_STDC
117 AC_CHECK_HEADER(crypt.h,AC_DEFINE(HAVE_CRYPT_H))
118 AC_CHECK_HEADER(langinfo.h,AC_DEFINE(HAVE_LANGINFO_H))
119 AC_CHECK_HEADER(malloc.h,AC_DEFINE(HAVE_MALLOC_H))
120 AC_CHECK_HEADER(shadow.h,AC_DEFINE(HAVE_SHADOW_H))
121 AC_CHECK_HEADER(string.h,AC_DEFINE(HAVE_STRING_H))
122 AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
123 AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
124 AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H))
125 AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
126 AC_CHECK_HEADER(sys/ucred.h,AC_DEFINE(HAVE_SYS_UCRED_H))
127 AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H))
128
129 dnl Checks for string functions.
130 AC_CHECK_FUNCS(strdup strcasecmp strncasecmp strlcat strlcpy)
131 if test "$uname" = "HP-UX" -a "$uversion" = "1020"; then
132 echo Forcing snprintf emulation for HP-UX.
133 else
134 AC_CHECK_FUNCS(snprintf vsnprintf)
135 fi
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 Extra platform-specific libraries...
186 BACKLIBS=""
187 CUPSDLIBS=""
188 DBUSDIR=""
189 CUPS_DEFAULT_PRINTADMIN_AUTH="@SYSTEM"
190 CUPS_SYSTEM_AUTHKEY=""
191
192 AC_ARG_ENABLE(dbus, [ --enable-dbus enable DBUS support, default=auto])
193
194 FONTS="fonts"
195 AC_SUBST(FONTS)
196 LEGACY_BACKENDS="parallel scsi"
197 AC_SUBST(LEGACY_BACKENDS)
198
199 case $uname in
200 Darwin*)
201 FONTS=""
202 LEGACY_BACKENDS=""
203 BACKLIBS="-framework IOKit"
204 CUPSDLIBS="-sectorder __TEXT __text cupsd.order -e start -framework IOKit -framework SystemConfiguration"
205 LIBS="-framework CoreFoundation $LIBS"
206
207 dnl Check for CFLocaleCreateCanonicalLocaleIdentifierFromString...
208 AC_MSG_CHECKING(for CFLocaleCreateCanonicalLocaleIdentifierFromString)
209 if test "$uname" = "Darwin" -a $uversion -ge 70; then
210 AC_DEFINE(HAVE_CF_LOCALE_ID)
211 AC_MSG_RESULT(yes)
212 else
213 AC_MSG_RESULT(no)
214 fi
215
216 dnl Check for framework headers...
217 AC_CHECK_HEADER(CoreFoundation/CoreFoundation.h,AC_DEFINE(HAVE_COREFOUNDATION_H))
218 AC_CHECK_HEADER(CoreFoundation/CFPriv.h,AC_DEFINE(HAVE_CFPRIV_H))
219 AC_CHECK_HEADER(CoreFoundation/CFBundlePriv.h,AC_DEFINE(HAVE_CFBUNDLEPRIV_H))
220
221 dnl Check for the new membership functions in MacOSX 10.4...
222 AC_CHECK_HEADER(membership.h,AC_DEFINE(HAVE_MEMBERSHIP_H))
223 AC_CHECK_HEADER(membershipPriv.h,AC_DEFINE(HAVE_MEMBERSHIPPRIV_H))
224 AC_CHECK_FUNCS(mbr_uid_to_uuid)
225
226 dnl Need <dlfcn.h> header...
227 AC_CHECK_HEADER(dlfcn.h,AC_DEFINE(HAVE_DLFCN_H))
228
229 dnl Check for notify_post support
230 AC_CHECK_HEADER(notify.h,AC_DEFINE(HAVE_NOTIFY_H))
231 AC_CHECK_FUNCS(notify_post)
232
233 dnl Check for Authorization Services support
234 AC_CHECK_HEADER(Security/Authorization.h, [
235 AC_DEFINE(HAVE_AUTHORIZATION_H)
236 CUPS_DEFAULT_PRINTADMIN_AUTH="@AUTHKEY(system.print.admin) @admin @lpadmin"
237 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.preferences"])
238 AC_CHECK_HEADER(Security/SecBasePriv.h,AC_DEFINE(HAVE_SECBASEPRIV_H))
239 ;;
240
241 Linux*)
242 dnl Check for DBUS support
243 if test "x$enable_dbus" != xno; then
244 AC_PATH_PROG(PKGCONFIG, pkg-config)
245 if test "x$PKGCONFIG" != x; then
246 AC_MSG_CHECKING(for DBUS)
247 if $PKGCONFIG --exists dbus-1; then
248 AC_MSG_RESULT(yes)
249 AC_DEFINE(HAVE_DBUS)
250 CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1` -DDBUS_API_SUBJECT_TO_CHANGE"
251 CUPSDLIBS="`$PKGCONFIG --libs dbus-1`"
252 AC_ARG_WITH(dbusdir, [ --with-dbusdir set DBUS configuration directory ], dbusdir="$withval", dbusdir="/etc/dbus-1")
253 DBUSDIR="$dbusdir"
254 AC_CHECK_LIB(dbus-1,
255 dbus_message_iter_init_append,
256 AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND))
257 else
258 AC_MSG_RESULT(no)
259 fi
260 fi
261 fi
262 ;;
263 esac
264
265 AC_SUBST(CUPS_DEFAULT_PRINTADMIN_AUTH)
266 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTADMIN_AUTH, "$CUPS_DEFAULT_PRINTADMIN_AUTH")
267 AC_SUBST(CUPS_SYSTEM_AUTHKEY)
268
269 dnl See if we have POSIX ACL support...
270 SAVELIBS="$LIBS"
271 LIBS=""
272 AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT))
273 CUPSDLIBS="$CUPSDLIBS $LIBS"
274 LIBS="$SAVELIBS"
275
276 AC_SUBST(BACKLIBS)
277 AC_SUBST(CUPSDLIBS)
278 AC_SUBST(DBUSDIR)
279
280 dnl New default port definition for IPP...
281 AC_ARG_WITH(ipp-port, [ --with-ipp-port set default port number for IPP ],
282 DEFAULT_IPP_PORT="$withval",
283 DEFAULT_IPP_PORT="631")
284
285 AC_SUBST(DEFAULT_IPP_PORT)
286 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
287
288 dnl
289 dnl End of "$Id: cups-common.m4 6720 2007-07-25 00:40:03Z mike $".
290 dnl