]> git.ipfire.org Git - thirdparty/cups.git/blame - config-scripts/cups-common.m4
Merge changes from CUPS 1.4svn-r7199.
[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
bc44d920 6dnl Copyright 2007 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
f7deaa1a 22dnl Versio 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:=}"
37CXXFLAGS="${CXXFLAGS:=}"
38LDFLAGS="${LDFLAGS:=}"
39
40dnl Checks for programs...
41AC_PROG_AWK
42AC_PROG_CC
43AC_PROG_CXX
44AC_PROG_CPP
45AC_PROG_INSTALL
46if test "$INSTALL" = "$ac_install_sh"; then
47 # Use full path to install-sh script...
48 INSTALL="`pwd`/install-sh -c"
49fi
50AC_PROG_RANLIB
51AC_PATH_PROG(AR,ar)
52AC_PATH_PROG(HTMLDOC,htmldoc)
bd7854cb 53AC_PATH_PROG(LD,ld)
ef416fc2 54AC_PATH_PROG(LN,ln)
55AC_PATH_PROG(MV,mv)
56AC_PATH_PROG(RM,rm)
e1d6a774 57AC_PATH_PROG(RMDIR,rmdir)
ef416fc2 58AC_PATH_PROG(SED,sed)
59AC_PATH_PROG(STRIP,strip)
60
61if test "x$AR" = x; then
62 AC_MSG_ERROR([Unable to find required library archive command.])
63fi
64if test "x$CC" = x; then
65 AC_MSG_ERROR([Unable to find required C compiler command.])
66fi
67if test "x$CXX" = x; then
68 AC_MSG_ERROR([Unable to find required C++ compiler command.])
69fi
70
923edb68 71dnl Static library option...
72INSTALLSTATIC=""
d6ae789d 73AC_ARG_ENABLE(static, [ --enable-static install static libraries, default=no])
923edb68 74
d6ae789d 75if test x$enable_static = xyes; then
76 echo Installing static libraries...
923edb68 77 INSTALLSTATIC="installstatic"
78fi
79
80AC_SUBST(INSTALLSTATIC)
ef416fc2 81
82dnl Check for libraries...
83AC_SEARCH_LIBS(crypt, crypt)
84AC_SEARCH_LIBS(getspent, sec gen)
85
86LIBMALLOC=""
87AC_ARG_ENABLE(mallinfo, [ --enable-mallinfo turn on malloc debug information, default=no])
88
89if 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
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
138dnl Checks for mkstemp and mkstemps functions.
139AC_CHECK_FUNCS(mkstemp mkstemps)
140
141dnl Check for geteuid function.
142AC_CHECK_FUNCS(geteuid)
143
144dnl Check for vsyslog function.
145AC_CHECK_FUNCS(vsyslog)
146
147dnl Checks for signal functions.
148case "$uname" in
149 Linux | GNU)
150 # Do not use sigset on Linux or GNU HURD
151 ;;
152 *)
153 # Use sigset on other platforms, if available
154 AC_CHECK_FUNCS(sigset)
155 ;;
156esac
157
158AC_CHECK_FUNCS(sigaction)
159
160dnl Checks for wait functions.
cc0d019f 161AC_CHECK_FUNCS(waitpid wait3)
ef416fc2 162
163dnl See if the tm structure has the tm_gmtoff member...
164AC_MSG_CHECKING(for tm_gmtoff member in tm structure)
165AC_TRY_COMPILE([#include <time.h>],[struct tm t;
166 int o = t.tm_gmtoff;],
167 AC_MSG_RESULT(yes)
168 AC_DEFINE(HAVE_TM_GMTOFF),
169 AC_MSG_RESULT(no))
170
cc0d019f
MS
171dnl See if we have the removefile(3) function for securely removing files
172AC_CHECK_FUNCS(removefile)
173
ef416fc2 174dnl Flags for "ar" command...
175case $uname in
176 Darwin* | *BSD*)
177 ARFLAGS="-rcv"
178 ;;
179 *)
180 ARFLAGS="crvs"
181 ;;
182esac
183
184AC_SUBST(ARFLAGS)
185
186dnl Extra platform-specific libraries...
bd7854cb 187BACKLIBS=""
188CUPSDLIBS=""
189DBUSDIR=""
355e94dc 190CUPS_DEFAULT_PRINTADMIN_AUTH="@SYSTEM"
f7deaa1a 191CUPS_SYSTEM_AUTHKEY=""
bd7854cb 192
ecdc0628 193AC_ARG_ENABLE(dbus, [ --enable-dbus enable DBUS support, default=auto])
194
09a101d6 195FONTS="fonts"
196AC_SUBST(FONTS)
197LEGACY_BACKENDS="parallel scsi"
198AC_SUBST(LEGACY_BACKENDS)
199
ef416fc2 200case $uname in
201 Darwin*)
09a101d6 202 FONTS=""
203 LEGACY_BACKENDS=""
ef416fc2 204 BACKLIBS="-framework IOKit"
09a101d6 205 CUPSDLIBS="-sectorder __TEXT __text cupsd.order -e start -framework IOKit -framework SystemConfiguration"
080811b1 206 LIBS="-framework SystemConfiguration -framework CoreFoundation $LIBS"
fa73b229 207
208 dnl Check for framework headers...
209 AC_CHECK_HEADER(CoreFoundation/CoreFoundation.h,AC_DEFINE(HAVE_COREFOUNDATION_H))
210 AC_CHECK_HEADER(CoreFoundation/CFPriv.h,AC_DEFINE(HAVE_CFPRIV_H))
211 AC_CHECK_HEADER(CoreFoundation/CFBundlePriv.h,AC_DEFINE(HAVE_CFBUNDLEPRIV_H))
212
7594b224 213 dnl Check for the new membership functions in MacOSX 10.4...
fa73b229 214 AC_CHECK_HEADER(membership.h,AC_DEFINE(HAVE_MEMBERSHIP_H))
7594b224 215 AC_CHECK_HEADER(membershipPriv.h,AC_DEFINE(HAVE_MEMBERSHIPPRIV_H))
fa73b229 216 AC_CHECK_FUNCS(mbr_uid_to_uuid)
217
7594b224 218 dnl Need <dlfcn.h> header...
219 AC_CHECK_HEADER(dlfcn.h,AC_DEFINE(HAVE_DLFCN_H))
220
fa73b229 221 dnl Check for notify_post support
222 AC_CHECK_HEADER(notify.h,AC_DEFINE(HAVE_NOTIFY_H))
223 AC_CHECK_FUNCS(notify_post)
f7deaa1a 224
225 dnl Check for Authorization Services support
226 AC_CHECK_HEADER(Security/Authorization.h, [
227 AC_DEFINE(HAVE_AUTHORIZATION_H)
355e94dc
MS
228 CUPS_DEFAULT_PRINTADMIN_AUTH="@AUTHKEY(system.print.admin) @admin @lpadmin"
229 CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.preferences"])
f7deaa1a 230 AC_CHECK_HEADER(Security/SecBasePriv.h,AC_DEFINE(HAVE_SECBASEPRIV_H))
a4924f6c
MS
231
232 dnl Check for sandbox/Seatbelt support
233 AC_CHECK_HEADER(sandbox.h,AC_DEFINE(HAVE_SANDBOX_H))
ef416fc2 234 ;;
e00b005a 235
236 Linux*)
237 dnl Check for DBUS support
ecdc0628 238 if test "x$enable_dbus" != xno; then
239 AC_PATH_PROG(PKGCONFIG, pkg-config)
240 if test "x$PKGCONFIG" != x; then
241 AC_MSG_CHECKING(for DBUS)
242 if $PKGCONFIG --exists dbus-1; then
243 AC_MSG_RESULT(yes)
2abf387c 244 AC_DEFINE(HAVE_DBUS)
245 CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1` -DDBUS_API_SUBJECT_TO_CHANGE"
246 CUPSDLIBS="`$PKGCONFIG --libs dbus-1`"
f7deaa1a 247 AC_ARG_WITH(dbusdir, [ --with-dbusdir set DBUS configuration directory ], dbusdir="$withval", dbusdir="/etc/dbus-1")
248 DBUSDIR="$dbusdir"
ecdc0628 249 AC_CHECK_LIB(dbus-1,
250 dbus_message_iter_init_append,
2abf387c 251 AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND))
ecdc0628 252 else
253 AC_MSG_RESULT(no)
254 fi
e00b005a 255 fi
256 fi
257 ;;
ef416fc2 258esac
259
355e94dc
MS
260AC_SUBST(CUPS_DEFAULT_PRINTADMIN_AUTH)
261AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTADMIN_AUTH, "$CUPS_DEFAULT_PRINTADMIN_AUTH")
f7deaa1a 262AC_SUBST(CUPS_SYSTEM_AUTHKEY)
263
bd7854cb 264dnl See if we have POSIX ACL support...
265SAVELIBS="$LIBS"
266LIBS=""
267AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT))
268CUPSDLIBS="$CUPSDLIBS $LIBS"
269LIBS="$SAVELIBS"
270
ef416fc2 271AC_SUBST(BACKLIBS)
09ec0018 272AC_SUBST(CUPSDLIBS)
bd7854cb 273AC_SUBST(DBUSDIR)
ef416fc2 274
275dnl New default port definition for IPP...
276AC_ARG_WITH(ipp-port, [ --with-ipp-port set default port number for IPP ],
277 DEFAULT_IPP_PORT="$withval",
278 DEFAULT_IPP_PORT="631")
279
280AC_SUBST(DEFAULT_IPP_PORT)
281AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
282
283dnl
2e4ff8af 284dnl End of "$Id: cups-common.m4 6964 2007-09-17 21:33:57Z mike $".
ef416fc2 285dnl