Make more signal and locale interface use conditional.
[platform/upstream/dbus.git] / configure.in
1 dnl -*- mode: m4 -*-
2 AC_PREREQ(2.52)
3
4 m4_define([dbus_major_version], [1])
5 m4_define([dbus_minor_version], [3])
6 m4_define([dbus_micro_version], [1])
7 m4_define([dbus_version],
8           [dbus_major_version.dbus_minor_version.dbus_micro_version])
9 AC_INIT(dbus, [dbus_version])
10
11 AC_CANONICAL_HOST
12 AC_LIBTOOL_WIN32_DLL
13 AC_LIBTOOL_RC
14
15 AM_INIT_AUTOMAKE([1.9 tar-ustar])
16 AM_CONFIG_HEADER(config.h)
17
18 # Honor aclocal flags
19 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
20
21 GETTEXT_PACKAGE=dbus-1
22 AC_SUBST(GETTEXT_PACKAGE)
23 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[The name of the gettext domain])
24
25  ## must come before we use the $USE_MAINTAINER_MODE variable later
26 AM_MAINTAINER_MODE
27
28 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
29
30 AC_DEFINE_UNQUOTED(DBUS_DAEMON_NAME,"dbus-daemon",[Name of executable])
31
32 # libtool versioning - this applies to libdbus
33 #
34 # See http://sources.redhat.com/autobook/autobook/autobook_91.html#SEC91 for details
35 #
36
37 ## increment if the interface has additions, changes, removals.
38 LT_CURRENT=8
39
40 ## increment any time the source changes; set to
41 ##  0 if you increment CURRENT
42 LT_REVISION=1
43
44 ## increment if any interfaces have been added; set to 0
45 ## if any interfaces have been changed or removed. removal has
46 ## precedence over adding, so set to 0 if both happened.
47 LT_AGE=5
48
49 AC_SUBST(LT_CURRENT)
50 AC_SUBST(LT_REVISION)
51 AC_SUBST(LT_AGE)
52
53 DBUS_MAJOR_VERSION=dbus_major_version
54 DBUS_MINOR_VERSION=dbus_minor_version
55 DBUS_MICRO_VERSION=dbus_micro_version
56 DBUS_VERSION=dbus_major_version.dbus_minor_version.dbus_micro_version
57
58 AC_SUBST(DBUS_MAJOR_VERSION)
59 AC_SUBST(DBUS_MINOR_VERSION)
60 AC_SUBST(DBUS_MICRO_VERSION)
61 AC_SUBST(DBUS_VERSION)
62
63 AC_PROG_CC
64 AM_PROG_CC_C_O
65 AC_PROG_CXX
66 AC_USE_SYSTEM_EXTENSIONS
67 AC_ISC_POSIX
68 AC_HEADER_STDC
69 AC_C_INLINE
70 AM_PROG_LIBTOOL
71 AC_PROG_MKDIR_P
72
73 # Set some internal variables depending on the platform for later use.
74 dbus_win=no
75 dbus_unix=no
76 case "${host}" in
77     *-mingw32*)
78         dbus_win=yes
79         ;;
80     *)
81         dbus_unix=yes
82        ;;
83 esac
84
85 # Special defines for certain platforms
86 if test "$dbus_win" = yes; then
87     AC_DEFINE(DBUS_WIN,1,[Defined if we run on a W32 API based system])
88     BUILD_TIMESTAMP=`date --iso-8601=minutes`
89     AC_SUBST(BUILD_TIMESTAMP)
90     # Assume DBUS_VERSION is always three numbers
91     BUILD_FILEVERSION=`echo "$DBUS_VERSION" | sed -e 's/\./,/g'`,0
92     AC_SUBST(BUILD_FILEVERSION)
93     AC_CHECK_TOOL(WINDRES, windres, no)
94     if test "$WINDRES" = no; then
95       AC_MSG_ERROR([*** Could not find an implementation of windres in your PATH.])
96     fi
97 else
98     AC_DEFINE(DBUS_UNIX,1,[Defined if we run on a Unix-based system])
99 fi
100
101 AM_CONDITIONAL(DBUS_WIN, test "$dbus_win" = yes)
102 AM_CONDITIONAL(DBUS_UNIX, test "$dbus_unix" = yes)
103
104 AC_ARG_ENABLE(tests, AS_HELP_STRING([--enable-tests],[enable unit test code]),enable_tests=$enableval,enable_tests=$USE_MAINTAINER_MODE)
105 AC_ARG_ENABLE(ansi, AS_HELP_STRING([--enable-ansi],[enable -ansi -pedantic gcc flags]),enable_ansi=$enableval,enable_ansi=no)
106 AC_ARG_ENABLE(verbose-mode, AS_HELP_STRING([--enable-verbose-mode],[support verbose debug mode]),enable_verbose_mode=$enableval,enable_verbose_mode=$USE_MAINTAINER_MODE)
107 AC_ARG_ENABLE(asserts, AS_HELP_STRING([--enable-asserts],[include assertion checks]),enable_asserts=$enableval,enable_asserts=$USE_MAINTAINER_MODE)
108 AC_ARG_ENABLE(checks, AS_HELP_STRING([--enable-checks],[include sanity checks on public API]),enable_checks=$enableval,enable_checks=yes)
109 AC_ARG_ENABLE(xml-docs, AS_HELP_STRING([--enable-xml-docs],[build XML documentation (requires xmlto)]),enable_xml_docs=$enableval,enable_xml_docs=auto)
110 AC_ARG_ENABLE(doxygen-docs, AS_HELP_STRING([--enable-doxygen-docs],[build DOXYGEN documentation (requires Doxygen)]),enable_doxygen_docs=$enableval,enable_doxygen_docs=auto)
111 AC_ARG_ENABLE(gcov, AS_HELP_STRING([--enable-gcov],[compile with coverage profiling instrumentation (gcc only)]),enable_gcov=$enableval,enable_gcov=no)
112 AC_ARG_ENABLE(abstract-sockets, AS_HELP_STRING([--enable-abstract-sockets],[use abstract socket namespace (linux only)]),enable_abstract_sockets=$enableval,enable_abstract_sockets=auto)
113 AC_ARG_ENABLE(selinux, AS_HELP_STRING([--enable-selinux],[build with SELinux support]),enable_selinux=$enableval,enable_selinux=auto)
114 AC_ARG_ENABLE(libaudit,AS_HELP_STRING([--enable-libaudit],[build audit daemon support for SELinux]),enable_libaudit=$enableval,enable_libaudit=auto)
115 AC_ARG_ENABLE(dnotify, AS_HELP_STRING([--enable-dnotify],[build with dnotify support (linux only)]),enable_dnotify=$enableval,enable_dnotify=auto)
116 AC_ARG_ENABLE(inotify, AS_HELP_STRING([--enable-inotify],[build with inotify support (linux only)]),enable_inotify=$enableval,enable_inotify=auto)
117 AC_ARG_ENABLE(kqueue, AS_HELP_STRING([--enable-kqueue],[build with kqueue support]),enable_kqueue=$enableval,enable_kqueue=auto)
118 AC_ARG_ENABLE(console-owner-file, AS_HELP_STRING([--enable-console-owner-file],[enable console owner file]),enable_console_owner_file=$enableval,enable_console_owner_file=auto)
119 AC_ARG_ENABLE(userdb-cache, AS_HELP_STRING([--enable-userdb-cache],[build with userdb-cache support]),enable_userdb_cache=$enableval,enable_userdb_cache=yes)
120
121 AC_ARG_WITH(xml, AS_HELP_STRING([--with-xml=[libxml/expat]],[XML library to use]))
122 AC_ARG_WITH(init-scripts, AS_HELP_STRING([--with-init-scripts=[redhat]],[Style of init scripts to install]))
123 AC_ARG_WITH(session-socket-dir, AS_HELP_STRING([--with-session-socket-dir=[dirname]],[Where to put sockets for the per-login-session message bus]))
124 AC_ARG_WITH(test-socket-dir, AS_HELP_STRING([--with-test-socket-dir=[dirname]],[Where to put sockets for make check]))
125 AC_ARG_WITH(system-pid-file, AS_HELP_STRING([--with-system-pid-file=[pidfile]],[PID file for systemwide daemon]))
126 AC_ARG_WITH(system-socket, AS_HELP_STRING([--with-system-socket=[filename]],[UNIX domain socket for systemwide daemon]))
127 AC_ARG_WITH(console-auth-dir, AS_HELP_STRING([--with-console-auth-dir=[dirname]],[directory to check for console ownerhip]))
128 AC_ARG_WITH(console-owner-file, AS_HELP_STRING([--with-console-owner-file=[filename]],[file whose owner determines current console owner]))
129 AC_ARG_WITH(dbus_user, AS_HELP_STRING([--with-dbus-user=<user>],[User for running the DBUS daemon (messagebus)]))
130 AC_ARG_WITH(dbus_daemondir, AS_HELP_STRING([--with-dbus-daemondir=[dirname]],[Directory for installing the DBUS daemon]))
131
132 dnl DBUS_BUILD_TESTS controls unit tests built in to .c files 
133 dnl and also some stuff in the test/ subdir
134 AM_CONDITIONAL(DBUS_BUILD_TESTS, test x$enable_tests = xyes)
135 if test x$enable_tests = xyes; then
136     AC_DEFINE(DBUS_BUILD_TESTS,1,[Build test code])
137 fi
138
139 if test x$enable_verbose_mode = xyes; then
140     AC_DEFINE(DBUS_ENABLE_VERBOSE_MODE,1,[Support a verbose mode])
141 fi
142
143 if test x$enable_asserts = xno; then
144     AC_DEFINE(DBUS_DISABLE_ASSERT,1,[Disable assertion checking])
145     AC_DEFINE(G_DISABLE_ASSERT,1,[Disable GLib assertion macros])
146     R_DYNAMIC_LDFLAG=""
147 else
148     # -rdynamic is needed for glibc's backtrace_symbols to work.
149     # No clue how much overhead this adds, but it's useful 
150     # to do this on any assertion failure,
151     # so for now it's enabled anytime asserts are (currently not
152     # in production builds).
153
154     # To get -rdynamic you pass -export-dynamic to libtool.
155     AC_DEFINE(DBUS_BUILT_R_DYNAMIC,1,[whether -export-dynamic was passed to libtool])
156     R_DYNAMIC_LDFLAG=-export-dynamic
157 fi
158 AC_SUBST(R_DYNAMIC_LDFLAG)
159
160 if test x$enable_checks = xno; then
161     AC_DEFINE(DBUS_DISABLE_CHECKS,1,[Disable public API sanity checking])
162     AC_DEFINE(G_DISABLE_CHECKS,1,[Disable GLib public API sanity checking])
163 fi
164
165 if test x$enable_userdb_cache = xyes; then
166     AC_DEFINE(DBUS_ENABLE_USERDB_CACHE,1,[Build with caching of user data])
167 fi
168
169 if test x$enable_gcov = xyes; then
170      ## so that config.h changes when you toggle gcov support
171      AC_DEFINE_UNQUOTED(DBUS_GCOV_ENABLED, 1, [Defined if gcov is enabled to force a rebuild due to config.h changing])
172
173      AC_MSG_CHECKING([for gcc 3.3 version of gcov file format])
174      have_gcc33_gcov=no
175      AC_RUN_IFELSE( [AC_LANG_PROGRAM( , [[ if (__GNUC__ >=3 && __GNUC_MINOR__ >= 3) exit (0); else exit (1); ]])],  
176                    have_gcc33_gcov=yes)
177      if test x$have_gcc33_gcov = xyes ; then
178          AC_DEFINE_UNQUOTED(DBUS_HAVE_GCC33_GCOV, 1, [Defined if we have gcc 3.3 and thus the new gcov format])
179      fi
180      AC_MSG_RESULT($have_gcc33_gcov)
181 fi
182 AM_CONDITIONAL(DBUS_GCOV_ENABLED, test x$enable_gcov = xyes)
183
184 #### Integer sizes 
185
186 AC_CHECK_SIZEOF(char)
187 AC_CHECK_SIZEOF(short)
188 AC_CHECK_SIZEOF(long)
189 AC_CHECK_SIZEOF(int)
190 AC_CHECK_SIZEOF(void *)
191 AC_CHECK_SIZEOF(long long)
192 AC_CHECK_SIZEOF(__int64)
193
194 ### See what our 64 bit type is called
195 AC_MSG_CHECKING([64-bit integer type])
196
197 case 8 in
198 $ac_cv_sizeof_int)
199   dbusint64=int
200   dbusint64_constant='(val)'
201   dbusuint64_constant='(val)'
202   ;;
203 $ac_cv_sizeof_long)
204   dbusint64=long
205   dbusint64_constant='(val##L)'
206   dbusuint64_constant='(val##UL)'
207   ;;
208 $ac_cv_sizeof_long_long)
209   dbusint64='long long'
210   dbusint64_constant='(val##LL)'
211   dbusuint64_constant='(val##ULL)'
212   ;;
213 $ac_cv_sizeof___int64)
214   dbusint64=__int64
215   dbusint64_constant='(val##i64)'
216   dbusuint64_constant='(val##ui64)'
217   ;;
218 esac
219
220 if test -z "$dbusint64" ; then
221         DBUS_INT64_TYPE="no_int64_type_detected"
222         DBUS_HAVE_INT64=0
223         DBUS_INT64_CONSTANT=
224         DBUS_UINT64_CONSTANT=
225         AC_MSG_RESULT([none found])
226 else
227         DBUS_INT64_TYPE="$dbusint64"
228         DBUS_HAVE_INT64=1
229         DBUS_INT64_CONSTANT="$dbusint64_constant"
230         DBUS_UINT64_CONSTANT="$dbusuint64_constant"
231         AC_MSG_RESULT($DBUS_INT64_TYPE)
232 fi
233
234 AC_SUBST(DBUS_INT64_TYPE)
235 AC_SUBST(DBUS_INT64_CONSTANT)
236 AC_SUBST(DBUS_UINT64_CONSTANT)
237 AC_SUBST(DBUS_HAVE_INT64)
238
239 ### see what 32-bit int is called
240 AC_MSG_CHECKING([32-bit integer type])
241
242 case 4 in
243 $ac_cv_sizeof_short)
244   dbusint32=int
245   ;;
246 $ac_cv_sizeof_int)
247   dbusint32=int
248   ;;
249 $ac_cv_sizeof_long)
250   dbusint32=long
251   ;;
252 esac
253
254 if test -z "$dbusint32" ; then
255         DBUS_INT32_TYPE="no_int32_type_detected"
256         AC_MSG_ERROR([No 32-bit integer type found])
257 else
258         DBUS_INT32_TYPE="$dbusint32"
259         AC_MSG_RESULT($DBUS_INT32_TYPE)
260 fi
261
262 AC_SUBST(DBUS_INT32_TYPE)
263
264 ### see what 16-bit int is called
265 AC_MSG_CHECKING([16-bit integer type])
266
267 case 2 in
268 $ac_cv_sizeof_short)
269   dbusint16=short
270   ;;
271 $ac_cv_sizeof_int)
272   dbusint16=int
273   ;;
274 esac
275
276 if test -z "$dbusint16" ; then
277         DBUS_INT16_TYPE="no_int16_type_detected"
278         AC_MSG_ERROR([No 16-bit integer type found])
279 else
280         DBUS_INT16_TYPE="$dbusint16"
281         AC_MSG_RESULT($DBUS_INT16_TYPE)
282 fi
283
284 AC_SUBST(DBUS_INT16_TYPE)
285
286 ## byte order
287 case $host_os in
288         darwin*)
289                 # check at compile-time, so that it is possible to build universal
290                 # (with multiple architectures at once on the compile line)
291                 AH_VERBATIM([WORDS_BIGENDIAN_DARWIN], [
292                         /* Use the compiler-provided endianness defines to allow universal compiling. */
293                         #if defined(__BIG_ENDIAN__)
294                         #define WORDS_BIGENDIAN 1
295                         #endif
296                 ])
297                 ;;
298         *)
299                 AC_C_BIGENDIAN
300                 ;;
301 esac
302
303 dnl **********************************
304 dnl *** va_copy checks (from GLib) ***
305 dnl **********************************
306 dnl we currently check for all three va_copy possibilities, so we get
307 dnl all results in config.log for bug reports.
308 AC_CACHE_CHECK([for an implementation of va_copy()],dbus_cv_va_copy,[
309         AC_LINK_IFELSE([#include <stdarg.h>
310 #include <stdlib.h>
311         static void f (int i, ...) {
312         va_list args1, args2;
313         va_start (args1, i);
314         va_copy (args2, args1);
315         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
316           exit (1);
317         va_end (args1); va_end (args2);
318         }
319         int main() {
320           f (0, 42);
321           return 0;
322         }],
323         [dbus_cv_va_copy=yes],
324         [dbus_cv_va_copy=no])
325 ])
326 AC_CACHE_CHECK([for an implementation of __va_copy()],dbus_cv___va_copy,[
327         AC_LINK_IFELSE([#include <stdarg.h>
328 #include <stdlib.h>
329         static void f (int i, ...) {
330         va_list args1, args2;
331         va_start (args1, i);
332         __va_copy (args2, args1);
333         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
334           exit (1);
335         va_end (args1); va_end (args2);
336         }
337         int main() {
338           f (0, 42);
339           return 0;
340         }],
341         [dbus_cv___va_copy=yes],
342         [dbus_cv___va_copy=no])
343 ])
344
345 if test "x$dbus_cv_va_copy" = "xyes"; then
346   dbus_va_copy_func=va_copy
347 else if test "x$dbus_cv___va_copy" = "xyes"; then
348   dbus_va_copy_func=__va_copy
349 fi
350 fi
351
352 if test -n "$dbus_va_copy_func"; then
353   AC_DEFINE_UNQUOTED(DBUS_VA_COPY,$dbus_va_copy_func,[A 'va_copy' style function])
354 fi
355
356 AC_LANG_PUSH(C)
357 AC_CACHE_CHECK([whether va_lists can be copied by value],
358         dbus_cv_va_val_copy,
359         [AC_RUN_IFELSE([AC_LANG_PROGRAM(
360 [[
361         #include <stdarg.h>
362         #include <stdlib.h>
363 ]],
364 [[
365         static void f (int i, ...) {
366         va_list args1, args2;
367         va_start (args1, i);
368         args2 = args1;
369         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
370           exit (1);
371         va_end (args1); va_end (args2);
372         }
373         int main() {
374           f (0, 42);
375           return 0;
376         }
377 ]])],
378         [dbus_cv_va_val_copy=yes],
379         [dbus_cv_va_val_copy=no],
380         [dbus_cv_va_val_copy=yes])
381 ])
382 AC_LANG_POP(C)
383
384 if test "x$dbus_cv_va_val_copy" = "xno"; then
385   AC_DEFINE(DBUS_VA_COPY_AS_ARRAY,1, ['va_lists' cannot be copies as values])
386 fi
387
388
389 #### Atomic integers
390
391 AC_CACHE_CHECK([whether $CC knows __sync_sub_and_fetch()],
392   dbus_cv_sync_sub_and_fetch,
393   [AC_LINK_IFELSE(
394      AC_LANG_PROGRAM([], [[int a = 4; int b = __sync_sub_and_fetch(&a, 4); exit(b); ]]),
395      [dbus_cv_sync_sub_and_fetch=yes],
396      [dbus_cv_sync_sub_and_fetch=no])
397   ])
398
399 if test "x$dbus_cv_sync_sub_and_fetch" = "xyes" ; then
400    have_sync=1
401 else
402    have_sync=0
403 fi
404
405 AC_DEFINE_UNQUOTED([DBUS_USE_SYNC], [$have_sync], [Use the gcc __sync extension])
406
407 #### Various functions
408 AC_SEARCH_LIBS(socket,[socket network])
409 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
410
411 AC_CHECK_FUNCS(vsnprintf vasprintf nanosleep usleep setenv clearenv unsetenv socketpair getgrouplist fpathconf setrlimit poll)
412
413 #### Check for broken poll; taken from Glib's configure
414
415 AC_MSG_CHECKING([for broken poll])
416 AC_RUN_IFELSE([AC_LANG_SOURCE([[
417     #include <stdlib.h>
418     #include <fcntl.h>
419     #include <poll.h>
420     #ifdef HAVE_SYS_POLL_H
421     #include <sys/poll.h>
422     #endif
423     int main(void) {
424       struct pollfd fds[1];
425       int fd;
426       fd = open("/dev/null", 1);
427       fds[0].fd = fd;
428       fds[0].events = POLLIN;
429       fds[0].revents = 0;
430       if (poll(fds, 1, 0) < 0 || (fds[0].revents & POLLNVAL) != 0) {
431             exit(1);  /* Does not work for devices -- fail */
432       }
433       exit(0);
434     }]])],
435   [broken_poll=no],
436   [broken_poll=yes
437    AC_DEFINE(BROKEN_POLL,1,[poll doesn't work on devices])],
438   [broken_poll="no (cross compiling)"])
439 AC_MSG_RESULT($broken_poll)
440
441 AC_MSG_CHECKING(for dirfd)
442 AC_TRY_LINK([
443 #include <sys/types.h>
444 #include <dirent.h>
445 ],[
446 DIR *dirp;
447 dirp = opendir(".");
448 dirfd(dirp);
449 closedir(dirp);
450 ], 
451 dbus_have_dirfd=yes, dbus_have_dirfd=no)
452 AC_MSG_RESULT($dbus_have_dirfd)
453 if test "$dbus_have_dirfd" = yes; then
454         AC_DEFINE(HAVE_DIRFD,1,[Have dirfd function])
455 else
456         AC_MSG_CHECKING(for DIR *dirp->dd_fd)    
457         AC_TRY_LINK([
458 #include <sys/types.h>
459 #include <dirent.h>
460         ],[
461 DIR *dirp;
462 int fd;
463 dirp = opendir(".");
464 fd = dirp->dd_fd;
465 closedir(dirp);
466         ],
467         dbus_have_ddfd=yes, dbus_have_ddfd=no)
468         AC_MSG_RESULT($dbus_have_ddfd)
469         if test "$dbus_have_ddfd" = yes; then
470                 AC_DEFINE(HAVE_DDFD,1,[Have the ddfd member of DIR])
471         fi
472 fi
473
474 AC_CHECK_HEADERS(dirent.h)
475
476 AC_CHECK_HEADERS(execinfo.h, [AC_CHECK_FUNCS(backtrace)])
477
478 AC_CHECK_HEADERS(errno.h)
479
480 AC_CHECK_HEADERS(signal.h)
481
482 AC_CHECK_HEADERS(locale.h)
483
484 AC_CHECK_HEADERS(byteswap.h)
485
486 AC_CHECK_HEADERS(unistd.h)
487
488 AC_CHECK_HEADERS(wspiapi.h)
489
490 # Add -D_POSIX_PTHREAD_SEMANTICS if on Solaris
491 #
492 case $host_os in
493     solaris*)
494        CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS" ;;
495 esac
496     
497 # checking for a posix version of getpwnam_r
498 # if we are cross compiling and can not run the test
499 # assume getpwnam_r is the posix version
500 # it is up to the person cross compiling to change
501 # this behavior if desired
502 AC_LANG_PUSH(C)
503 AC_CACHE_CHECK([for posix getpwnam_r],
504                 ac_cv_func_posix_getpwnam_r,
505                 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
506 [[
507 #include <errno.h>
508 #include <pwd.h>
509 ]],
510 [[
511     char buffer[10000];
512     struct passwd pwd, *pwptr = &pwd;
513     int error;
514     errno = 0;
515     error = getpwnam_r ("", &pwd, buffer, 
516                         sizeof (buffer), &pwptr);
517    return (error < 0 && errno == ENOSYS) 
518            || error == ENOSYS; 
519 ]])],
520         [ac_cv_func_posix_getpwnam_r=yes],
521         [ac_cv_func_posix_getpwnam_r=no],
522         [ac_cv_func_posix_getpwnam_r=yes]
523 )])
524 AC_LANG_POP(C)
525
526 if test "$ac_cv_func_posix_getpwnam_r" = yes; then
527         AC_DEFINE(HAVE_POSIX_GETPWNAM_R,1,
528                 [Have POSIX function getpwnam_r])
529 else
530         AC_CACHE_CHECK([for nonposix getpwnam_r],
531                 ac_cv_func_nonposix_getpwnam_r,
532                 [AC_TRY_LINK([#include <pwd.h>],
533                         [char buffer[10000];
534                         struct passwd pwd;
535                         getpwnam_r ("", &pwd, buffer, 
536                                         sizeof (buffer));],
537                         [ac_cv_func_nonposix_getpwnam_r=yes],
538                         [ac_cv_func_nonposix_getpwnam_r=no])])
539                 if test "$ac_cv_func_nonposix_getpwnam_r" = yes; then
540                 AC_DEFINE(HAVE_NONPOSIX_GETPWNAM_R,1,
541                         [Have non-POSIX function getpwnam_r])
542         fi
543 fi
544
545 dnl check for socklen_t
546 AC_MSG_CHECKING(whether socklen_t is defined)
547 AC_TRY_COMPILE([
548 #include <sys/types.h>
549 #include <sys/socket.h>
550 #include <netdb.h>
551 ],[
552 socklen_t foo;
553 foo = 1;
554 ],dbus_have_socklen_t=yes,dbus_have_socklen_t=no)
555 AC_MSG_RESULT($dbus_have_socklen_t)
556
557 if test "x$dbus_have_socklen_t" = "xyes"; then
558     AC_DEFINE(HAVE_SOCKLEN_T,1,[Have socklen_t type])
559 fi
560
561 dnl check for writev header and writev function so we're 
562 dnl good to go if HAVE_WRITEV gets defined.
563 AC_CHECK_HEADERS(sys/uio.h, [AC_CHECK_FUNCS(writev)])
564
565 dnl needed on darwin for NAME_MAX
566 AC_CHECK_HEADERS(sys/syslimits.h)
567
568 dnl Make it easy to check if we have MSG_NOSIGNAL without actually having to include sys/socket.h
569 AC_CHECK_DECLS([MSG_NOSIGNAL], [], [], [[ #include <sys/socket.h> ]])
570
571 dnl check for flavours of varargs macros (test from GLib)
572 AC_MSG_CHECKING(for ISO C99 varargs macros in C)
573 AC_TRY_COMPILE([],[
574 int a(int p1, int p2, int p3);
575 #define call_a(...) a(1,__VA_ARGS__)
576 call_a(2,3);
577 ],dbus_have_iso_c_varargs=yes,dbus_have_iso_c_varargs=no)
578 AC_MSG_RESULT($dbus_have_iso_c_varargs)
579
580 AC_MSG_CHECKING(for GNUC varargs macros)
581 AC_TRY_COMPILE([],[
582 int a(int p1, int p2, int p3);
583 #define call_a(params...) a(1,params)
584 call_a(2,3);
585 ],dbus_have_gnuc_varargs=yes,dbus_have_gnuc_varargs=no)
586 AC_MSG_RESULT($dbus_have_gnuc_varargs)
587
588 dnl Output varargs tests
589 if test x$dbus_have_iso_c_varargs = xyes; then
590     AC_DEFINE(HAVE_ISO_VARARGS,1,[Have ISO C99 varargs macros])
591 fi
592 if test x$dbus_have_gnuc_varargs = xyes; then
593     AC_DEFINE(HAVE_GNUC_VARARGS,1,[Have GNU-style varargs macros])
594 fi
595
596 dnl Check for various credentials.
597 AC_MSG_CHECKING(for struct cmsgcred)
598 AC_TRY_COMPILE([
599 #include <sys/types.h>
600 #include <sys/socket.h>
601 ],[
602 struct cmsgcred cred;
603
604 cred.cmcred_pid = 0;
605 ],dbus_have_struct_cmsgcred=yes,dbus_have_struct_cmsgcred=no)
606 AC_MSG_RESULT($dbus_have_struct_cmsgcred)
607
608 if test x$dbus_have_struct_cmsgcred = xyes; then
609     AC_DEFINE(HAVE_CMSGCRED,1,[Have cmsgcred structure])
610 fi
611
612 AC_CHECK_FUNCS(getpeerucred getpeereid)
613
614 AC_CHECK_FUNCS(pipe2 accept4)
615
616 #### Abstract sockets
617
618 if test x$enable_abstract_sockets = xauto; then
619 AC_LANG_PUSH(C)
620 warn_on_xcompile=no
621 AC_CACHE_CHECK([abstract socket namespace],
622                 ac_cv_have_abstract_sockets,
623                 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
624 [[
625 #include <sys/types.h>
626 #include <stdlib.h>
627 #include <string.h>
628 #include <stdio.h>
629 #include <sys/socket.h>
630 #include <sys/un.h>
631 #include <errno.h>
632 ]],
633 [[
634   int listen_fd;
635   struct sockaddr_un addr;
636   
637   listen_fd = socket (PF_UNIX, SOCK_STREAM, 0);
638   
639   if (listen_fd < 0)
640     {
641       fprintf (stderr, "socket() failed: %s\n", strerror (errno));
642       exit (1);
643     }
644
645   memset (&addr, '\0', sizeof (addr));
646   addr.sun_family = AF_UNIX;
647   strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test");
648   addr.sun_path[0] = '\0'; /* this is what makes it abstract */
649   
650   if (bind (listen_fd, (struct sockaddr*) &addr, SUN_LEN (&addr)) < 0)
651     {
652        fprintf (stderr, "Abstract socket namespace bind() failed: %s\n", 
653                 strerror (errno));
654        exit (1);
655     }
656   else 
657     exit (0);
658 ]])],
659               [ac_cv_have_abstract_sockets=yes],
660               [ac_cv_have_abstract_sockets=no],
661               [
662                 ac_cv_have_abstract_sockets=no
663                 warn_on_xcompile=yes
664               ]
665 )])
666 if test x$warn_on_xcompile = xyes ; then
667   AC_MSG_WARN([Cannot check for abstract sockets when cross-compiling, please use --enable-abstract-sockets])
668 fi
669 AC_LANG_POP(C)
670 fi
671
672 if test x$enable_abstract_sockets = xyes; then
673     if test x$ac_cv_have_abstract_sockets = xno; then
674         AC_MSG_ERROR([Abstract sockets explicitly required, and support not detected.])
675     fi
676 fi
677
678 if test x$enable_abstract_sockets = xno; then
679    ac_cv_have_abstract_sockets=no;
680 fi
681
682 if test x$ac_cv_have_abstract_sockets = xyes ; then
683    DBUS_PATH_OR_ABSTRACT=abstract
684    AC_DEFINE(HAVE_ABSTRACT_SOCKETS,1,[Have abstract socket namespace])
685 else
686    DBUS_PATH_OR_ABSTRACT=path
687 fi
688
689 # this is used in addresses to prefer abstract, e.g. 
690 # unix:path=/foo or unix:abstract=/foo 
691 AC_SUBST(DBUS_PATH_OR_ABSTRACT)
692
693 #### Sort out XML library
694
695 # see what we have
696 AC_CHECK_LIB(expat, XML_ParserCreate_MM,
697              [ AC_CHECK_HEADERS(expat.h, have_expat=true, have_expat=false) ],
698              have_expat=false)
699
700 # see what we want to use
701 dbus_use_libxml=false
702 dbus_use_expat=false
703 if test x$with_xml = xexpat; then
704         if ! $have_expat ; then
705            AC_MSG_ERROR([Explicitly requested expat but expat not found])
706         fi
707         dbus_use_expat=true
708 elif test x$with_xml = xlibxml; then
709         PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= 2.6.0, have_libxml=true, have_libxml=false)
710         if ! $have_libxml ; then
711            AC_MSG_ERROR([Explicitly requested libxml but libxml not found])
712         fi
713         dbus_use_libxml=true
714 else
715         ### expat is the default because libxml can't currently survive 
716         ### our brutal OOM-handling unit test setup.
717         ### http://bugzilla.gnome.org/show_bug.cgi?id=109368
718         if test x$have_expat = xfalse; then
719                 AC_MSG_ERROR([Could not find expat.h, check config.log for failed attempts])
720         fi
721         ### By default, only use Expat since it's tested and known to work.  If you're a
722         ### general-purpose OS vendor, please don't enable libxml.  For embedded use
723         ### if your OS is built around libxml, that's another case.
724         dbus_use_expat=true
725 fi
726
727 AM_CONDITIONAL(DBUS_USE_EXPAT, $dbus_use_expat)
728 AM_CONDITIONAL(DBUS_USE_LIBXML, $dbus_use_libxml)
729
730 if $dbus_use_expat; then
731    XML_LIBS=-lexpat
732    XML_CFLAGS=
733 fi
734 if $dbus_use_libxml; then
735    XML_LIBS=$LIBXML_LIBS
736    XML_CFLAGS=$LIBXML_CFLAGS
737 fi
738
739 # Thread lib detection
740 AC_CHECK_FUNC(pthread_cond_timedwait,[AC_CHECK_LIB(pthread,pthread_cond_timedwait,
741                                                     [THREAD_LIBS="-lpthread"])])
742 save_libs="$LIBS"
743 LIBS="$LIBS $THREAD_LIBS"
744 AC_CHECK_FUNC(pthread_condattr_setclock,have_pthread_condattr_setclock=true,have_pthread_condattr_setclock=false)
745 if test x$have_pthread_condattr_setclock = xtrue; then
746     AC_SEARCH_LIBS([clock_getres],[rt],[THREAD_LIBS="$THREAD_LIBS -lrt"])
747     AC_MSG_CHECKING([for CLOCK_MONOTONIC])
748     AC_TRY_COMPILE([#include <time.h>
749 #include <pthread.h>
750 ], [
751 struct timespec monotonic_timer;
752 pthread_condattr_t attr;
753 pthread_condattr_init (&attr);
754 pthread_condattr_setclock (&attr, CLOCK_MONOTONIC);
755 clock_getres (CLOCK_MONOTONIC,&monotonic_timer);
756 ], have_clock_monotonic=true, have_clock_monotonic=false)
757 if test x$have_clock_monotonic = xtrue; then
758     AC_MSG_RESULT([found])
759     AC_DEFINE(HAVE_MONOTONIC_CLOCK, 1, [Define if we have CLOCK_MONOTONIC])
760 else
761     AC_MSG_RESULT([not found])
762 fi
763 fi
764 LIBS="$save_libs"
765
766 # SELinux detection
767 if test x$enable_selinux = xno ; then
768     have_selinux=no;
769 else
770     # See if we have SELinux library
771     AC_CHECK_LIB(selinux, is_selinux_enabled, 
772                  have_selinux=yes, have_selinux=no)
773
774     # see if we have the SELinux header with the new D-Bus stuff in it
775     if test x$have_selinux = xyes ; then
776         AC_MSG_CHECKING([for DBUS Flask permissions in selinux/av_permissions.h])
777         AC_TRY_COMPILE([#include <selinux/av_permissions.h>],
778                         [#ifdef DBUS__ACQUIRE_SVC return 0;
779                          #else
780                          #error DBUS__ACQUIRE_SVC not defined
781                          #endif],
782                         have_selinux=yes, have_selinux=no)
783         AC_MSG_RESULT($have_selinux)
784     fi
785
786     if test x$enable_selinux = xauto ; then
787         if test x$have_selinux = xno ; then
788                 AC_MSG_WARN([Sufficiently new SELinux library not found])
789         fi
790     else 
791         if test x$have_selinux = xno ; then
792                 AC_MSG_ERROR([SElinux explicitly required, and SELinux library not found])
793         fi
794     fi
795 fi
796
797 AM_CONDITIONAL(HAVE_SELINUX, test x$have_selinux = xyes)
798
799 if test x$have_selinux = xyes ; then
800     # the selinux code creates threads
801     # which requires libpthread even on linux
802     AC_CHECK_FUNC(pthread_create,,[AC_CHECK_LIB(pthread,pthread_create,
803                                                 [SELINUX_THREAD_LIBS="-lpthread"])])
804
805     SELINUX_LIBS="-lselinux $SELINUX_THREAD_LIBS"
806     AC_DEFINE(HAVE_SELINUX,1,[SELinux support])
807 else
808     SELINUX_LIBS=
809 fi
810
811 # inotify checks
812 if test x$enable_inotify = xno ; then
813     have_inotify=no;
814 else
815     AC_CHECK_HEADERS(sys/inotify.h, have_inotify=yes, have_inotify=no)
816 fi
817
818 dnl check if inotify backend is enabled
819 if test x$have_inotify = xyes; then
820    AC_DEFINE(DBUS_BUS_ENABLE_INOTIFY,1,[Use inotify])
821    AC_CHECK_FUNCS(inotify_init1)
822 fi
823
824 AM_CONDITIONAL(DBUS_BUS_ENABLE_INOTIFY, test x$have_inotify = xyes)
825
826 # dnotify checks
827 if test x$enable_dnotify = xno ; then
828     have_dnotify=no;
829 else
830     if test x$have_inotify = xno -a x$host_os = xlinux-gnu -o x$host_os = xlinux; then
831         have_dnotify=yes;       
832     else
833         have_dnotify=no;
834     fi
835 fi
836
837 dnl check if dnotify backend is enabled
838 if test x$have_dnotify = xyes; then
839    AC_DEFINE(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX,1,[Use dnotify on Linux])
840 fi
841
842 AM_CONDITIONAL(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX, test x$have_dnotify = xyes)
843
844 # kqueue checks
845 if test x$enable_kqueue = xno ; then
846     have_kqueue=no
847 else
848     have_kqueue=yes
849     AC_CHECK_HEADER(sys/event.h, , have_kqueue=no)
850     AC_CHECK_FUNC(kqueue, , have_kqueue=no)
851
852     if test x$enable_kqueue = xyes -a x$have_kqueue = xno; then
853         AC_MSG_ERROR(kqueue support explicitly enabled but not available)
854     fi
855 fi
856
857 dnl check if kqueue backend is enabled
858 if test x$have_kqueue = xyes; then
859    AC_DEFINE(DBUS_BUS_ENABLE_KQUEUE,1,[Use kqueue])
860 fi
861
862 AM_CONDITIONAL(DBUS_BUS_ENABLE_KQUEUE, test x$have_kqueue = xyes) 
863
864 dnl console owner file
865 if test x$enable_console_owner_file = xno ; then
866     have_console_owner_file=no;
867 else
868     case $host_os in
869     solaris*)
870         have_console_owner_file=yes;
871         AC_DEFINE(HAVE_CONSOLE_OWNER_FILE,1,[Have console owner file])
872         ;;
873     *)
874         have_console_owner_file=no;;
875     esac
876 fi
877
878 AM_CONDITIONAL(HAVE_CONSOLE_OWNER_FILE, test x$have_console_owner_file = xyes)
879
880 # libaudit detection
881 if test x$enable_libaudit = xno ; then
882     have_libaudit=no;
883 else
884     # See if we have audit daemon & capabilities library
885     AC_CHECK_LIB(audit, audit_log_user_avc_message, 
886                  have_libaudit=yes, have_libaudit=no)
887     if test x$have_libaudit = xyes ; then
888         AC_CHECK_LIB(cap-ng, capng_clear,
889                  have_libaudit=yes, have_libaudit=no)
890     fi
891 fi
892
893 AM_CONDITIONAL(HAVE_LIBAUDIT, test x$have_libaudit = xyes)
894
895 if test x$have_libaudit = xyes ; then
896     SELINUX_LIBS="$SELINUX_LIBS -laudit -lcap-ng"
897     AC_DEFINE(HAVE_LIBAUDIT,1,[audit daemon SELinux support])
898 fi
899
900 # Check for ADT API
901 AC_MSG_CHECKING(for ADT API)
902 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
903 #include <bsm/adt.h>
904 adt_user_context = ADT_USER;
905 ]], [[]])], [ check_adt_audit=yes ], [ check_adt_audit=no ])
906
907 if test ${check_adt_audit} = yes
908 then
909    AC_DEFINE([HAVE_ADT], [], [Adt audit API])
910    ADT_LIBS="-lbsm"
911    LIBS="-lbsm $LIBS"
912    AC_MSG_RESULT(yes)
913 else
914    AC_MSG_RESULT(no)
915 fi
916
917 # Check for SCM_RIGHTS
918 AC_MSG_CHECKING([for SCM_RIGHTS])
919 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
920 #include <sys/socket.h>
921 #include <sys/un.h>
922 static int x = SCM_RIGHTS;
923 ]], [[]])],
924 [ AC_MSG_RESULT([supported])
925   AC_DEFINE([HAVE_UNIX_FD_PASSING], [1], [Supports sending UNIX file descriptors]) ],
926 [ AC_MSG_RESULT([not supported]) ])
927
928 NETWORK_libs=
929 if test x$dbus_win = xyes ; then
930   NETWORK_libs="-lws2_32"
931 fi
932
933 #### Set up final flags
934 DBUS_CLIENT_CFLAGS=
935 DBUS_CLIENT_LIBS="$THREAD_LIBS $NETWORK_libs"
936 AC_SUBST(DBUS_CLIENT_CFLAGS)
937 AC_SUBST(DBUS_CLIENT_LIBS)
938
939 DBUS_BUS_CFLAGS="$XML_CFLAGS"
940 DBUS_BUS_LIBS="$XML_LIBS $SELINUX_LIBS $INTLLIBS $THREAD_LIBS $ADT_LIBS $NETWORK_libs"
941 AC_SUBST(DBUS_BUS_CFLAGS)
942 AC_SUBST(DBUS_BUS_LIBS)
943
944 DBUS_LAUNCHER_CFLAGS="$XML_CFLAGS"
945 DBUS_LAUNCHER_LIBS="$XML_LIBS $THREAD_LIBS $NETWORK_libs"
946 AC_SUBST(DBUS_LAUNCHER_CFLAGS)
947 AC_SUBST(DBUS_LAUNCHER_LIBS)
948
949 DBUS_TEST_CFLAGS=
950 DBUS_TEST_LIBS="$THREAD_LIBS $NETWORK_libs"
951 AC_SUBST(DBUS_TEST_CFLAGS)
952 AC_SUBST(DBUS_TEST_LIBS)
953
954 ### X11 detection
955 if test x$dbus_win = xyes ; then
956    enable_x11=no
957 else
958 AC_PATH_XTRA
959
960 ## for now enable_x11 just tracks have_x11, 
961 ## there's no --enable-x11
962 if test x$no_x = xyes ; then
963    have_x11=no
964    enable_x11=no
965 else
966    have_x11=yes
967    enable_x11=yes
968 fi
969
970 if test x$enable_x11 = xyes ; then
971    AC_DEFINE(DBUS_BUILD_X11,1,[Build X11-dependent code])
972    DBUS_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
973    DBUS_X_CFLAGS="$X_CFLAGS"
974 else
975    DBUS_X_LIBS=
976    DBUS_X_CFLAGS=
977 fi
978
979 AC_SUBST(DBUS_X_CFLAGS)
980 AC_SUBST(DBUS_X_LIBS)
981 fi
982
983
984 #### gcc warning flags
985
986 cc_supports_flag() {
987   AC_MSG_CHECKING(whether $CC supports "$@")
988   Cfile=/tmp/foo${$}
989   touch ${Cfile}.c
990   $CC -c "$@" ${Cfile}.c -o ${Cfile}.o >/dev/null 2>&1
991   rc=$?
992   rm -f ${Cfile}.c ${Cfile}.o
993   case $rc in
994     0) AC_MSG_RESULT(yes);;
995     *) AC_MSG_RESULT(no);;
996   esac
997   return $rc
998 }
999
1000 ld_supports_flag() {
1001   AC_MSG_CHECKING([whether $LD supports "$@"])
1002   AC_TRY_LINK([
1003     int one(void) { return 1; }
1004     int two(void) { return 2; }
1005   ], [ two(); ] , [_ac_ld_flag_supported=yes], [_ac_ld_flag_supported=no])
1006
1007   if test "$_ac_ld_flag_supported" = "yes"; then
1008     rm -f conftest.c
1009     touch conftest.c
1010     if $CC -c conftest.c; then
1011       ld_out=`$LD $@ -o conftest conftest.o 2>&1`
1012       ld_ret=$?
1013       if test $ld_ret -ne 0 ; then
1014         _ac_ld_flag_supported=no
1015       elif echo "$ld_out" | egrep 'option ignored|^usage:|unrecognized option|illegal option' >/dev/null ; then
1016         _ac_ld_flag_supported=no
1017       fi
1018     fi
1019     rm -f conftest.c conftest.o conftest
1020   fi
1021
1022   AC_MSG_RESULT($_ac_ld_flag_supported)
1023   if test "$_ac_ld_flag_supported" = "yes" ; then
1024     return 0
1025   else
1026     return 1
1027   fi
1028 }
1029
1030 # Don't bother with -Werror on Windows for now, too many warnings
1031 if test x$dbus_win != xyes -a x$USE_MAINTAINER_MODE = xyes; then
1032   if cc_supports_flag "-Werror"; then
1033     CFLAGS="$CFLAGS -Werror"
1034   fi
1035 fi
1036
1037 if test "x$GCC" = "xyes"; then
1038   changequote(,)dnl
1039   case " $CFLAGS " in
1040   *[\ \ ]-Wall[\ \      ]*) ;;
1041   *) CFLAGS="$CFLAGS -Wall" ;;
1042   esac
1043
1044   case " $CFLAGS " in
1045   *[\ \ ]-Wchar-subscripts[\ \  ]*) ;;
1046   *) CFLAGS="$CFLAGS -Wchar-subscripts" ;;
1047   esac
1048
1049   case " $CFLAGS " in
1050   *[\ \ ]-Wmissing-declarations[\ \     ]*) ;;
1051   *) CFLAGS="$CFLAGS -Wmissing-declarations" ;;
1052   esac
1053
1054   case " $CFLAGS " in
1055   *[\ \ ]-Wmissing-prototypes[\ \       ]*) ;;
1056   *) CFLAGS="$CFLAGS -Wmissing-prototypes" ;;
1057   esac
1058
1059   case " $CFLAGS " in
1060   *[\ \ ]-Wnested-externs[\ \   ]*) ;;
1061   *) CFLAGS="$CFLAGS -Wnested-externs" ;;
1062   esac
1063
1064   case " $CFLAGS " in
1065   *[\ \ ]-Wpointer-arith[\ \    ]*) ;;
1066   *) CFLAGS="$CFLAGS -Wpointer-arith" ;;
1067   esac
1068
1069   case " $CFLAGS " in
1070   *[\ \ ]-Wcast-align[\ \       ]*) ;;
1071   *) CFLAGS="$CFLAGS -Wcast-align" ;;
1072   esac
1073
1074   case " $CFLAGS " in
1075   *[\ \ ]-Wfloat-equal[\ \      ]*) ;;
1076   *) if cc_supports_flag -Wfloat-equals; then
1077         CFLAGS="$CFLAGS -Wfloat-equal" 
1078      fi
1079      ;;
1080   esac
1081
1082   case " $CFLAGS " in
1083   *[\ \ ]-Wdeclaration-after-statement[\ \      ]*) ;;
1084   *) if cc_supports_flag -Wdeclaration-after-statement; then
1085         CFLAGS="$CFLAGS -Wdeclaration-after-statement"
1086      fi
1087      ;;
1088   esac
1089
1090   case " $CFLAGS " in
1091   *[\ \ ]-fno-common[\ \        ]*) ;;
1092   *) if cc_supports_flag -fno-common; then
1093         CFLAGS="$CFLAGS -fno-common"
1094      fi
1095      ;;
1096   esac
1097
1098   case " $CFLAGS " in
1099   *[\ \ ]-fPIC[\ \      ]*) ;;
1100   *) if test x$dbus_win = xno && cc_supports_flag -fPIC; then
1101         PIC_CFLAGS="-fPIC"
1102         if ld_supports_flag -z,relro; then
1103            PIC_LDFLAGS="-Wl,-z,relro"
1104         fi
1105      fi
1106      ;;
1107   esac
1108
1109   case " $CFLAGS " in
1110   *[\ \ ]-fPIE[\ \      ]*) ;;
1111   *) if test x$dbus_win = xno && cc_supports_flag -fPIE; then
1112         PIE_CFLAGS="-fPIE"
1113         if ld_supports_flag -z,relro; then
1114            PIE_LDFLAGS="-pie -Wl,-z,relro"
1115         else
1116            PIE_LDFLAGS="-pie"
1117         fi
1118      fi
1119      ;;
1120   esac
1121   
1122   ### Disabled warnings, and compiler flag overrides
1123   
1124   # Let's just ignore unused for now
1125   case " $CFLAGS " in
1126   *[\ \ ]-Wno-unused[\ \        ]*) ;;
1127   *) CFLAGS="$CFLAGS -Wno-unused" ;;
1128   esac  
1129   
1130   # This group is for warnings we currently don't pass.
1131   # We would like to, however.  Please fix.
1132   
1133   # http://bugs.freedesktop.org/show_bug.cgi?id=17433
1134   case " $CFLAGS " in
1135   *[\ \ ]-Wno-sign-compare[\ \  ]*) ;;
1136   *) CFLAGS="$CFLAGS -Wno-sign-compare" ;;
1137   esac
1138   case " $CFLAGS " in
1139   *[\ \ ]-Wno-pointer-sign[\ \  ]*) ;;
1140   *) if cc_supports_flag -Wno-pointer-sign; then
1141         CFLAGS="$CFLAGS -Wno-pointer-sign"
1142      fi
1143      ;;
1144   esac  
1145   
1146   # http://bugs.freedesktop.org/show_bug.cgi?id=19195
1147   case " $CFLAGS " in
1148   *[\ \ ]-Wno-format[\ \        ]*) ;;
1149   *) CFLAGS="$CFLAGS -Wno-format" ;;
1150   esac
1151   
1152   # This one is special - it's not a warning override.
1153   # http://bugs.freedesktop.org/show_bug.cgi?id=10599
1154   case " $CFLAGS " in
1155   *[\ \ ]-fno-strict-aliasing[\ \       ]*) ;;
1156   *) CFLAGS="$CFLAGS -fno-strict-aliasing" ;;
1157   esac
1158   ### End disabled warnings
1159
1160   if test "x$enable_ansi" = "xyes"; then
1161     case " $CFLAGS " in
1162     *[\ \       ]-ansi[\ \      ]*) ;;
1163     *) CFLAGS="$CFLAGS -ansi" ;;
1164     esac
1165
1166     case " $CFLAGS " in
1167     *[\ \       ]-D_POSIX_C_SOURCE*) ;;
1168     *) CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=199309L" ;;
1169     esac
1170
1171     case " $CFLAGS " in
1172     *[\ \       ]-D_BSD_SOURCE[\ \      ]*) ;;
1173     *) CFLAGS="$CFLAGS -D_BSD_SOURCE" ;;
1174     esac
1175
1176     case " $CFLAGS " in
1177     *[\ \       ]-pedantic[\ \  ]*) ;;
1178     *) CFLAGS="$CFLAGS -pedantic" ;;
1179     esac    
1180   fi
1181   if test x$enable_gcov = xyes; then
1182     case " $CFLAGS " in
1183     *[\ \       ]-fprofile-arcs[\ \     ]*) ;;
1184     *) CFLAGS="$CFLAGS -fprofile-arcs" ;;
1185     esac
1186     case " $CFLAGS " in
1187     *[\ \       ]-ftest-coverage[\ \    ]*) ;;
1188     *) CFLAGS="$CFLAGS -ftest-coverage" ;;
1189     esac
1190
1191     ## remove optimization
1192     CFLAGS=`echo "$CFLAGS" | sed -e 's/-O[0-9]*//g'`
1193   fi
1194   changequote([,])dnl
1195 else
1196   if test x$enable_gcov = xyes; then
1197     AC_MSG_ERROR([--enable-gcov can only be used with gcc])
1198   fi
1199 fi
1200
1201 AC_SUBST(PIC_CFLAGS)
1202 AC_SUBST(PIC_LDFLAGS)  
1203 AC_SUBST(PIE_CFLAGS)
1204 AC_SUBST(PIE_LDFLAGS)  
1205
1206 if ld_supports_flag --gc-sections; then
1207   SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
1208   CFLAGS="-ffunction-sections -fdata-sections $CFLAGS"
1209 fi
1210 AC_SUBST(SECTION_FLAGS)
1211 AC_SUBST(SECTION_LDFLAGS)
1212 AC_MSG_RESULT($ac_gcsections)
1213
1214 # Add -D_POSIX_PTHREAD_SEMANTICS if on Solaris
1215 #
1216 case $host_os in
1217     solaris*)
1218        CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS" ;;
1219 esac
1220     
1221 changequote(,)dnl
1222 # compress spaces in flags
1223 CFLAGS=`echo "$CFLAGS" | sed -e 's/ +/ /g'`
1224 CXXFLAGS=`echo "$CXXFLAGS" | sed -e 's/ +/ /g'`
1225 CPPFLAGS=`echo "$CPPFLAGS" | sed -e 's/ +/ /g'`
1226 changequote([,])dnl
1227
1228 ### Doxygen Documentation
1229
1230 AC_PATH_PROG(DOXYGEN, doxygen, no)
1231
1232 AC_MSG_CHECKING([whether to build Doxygen documentation])
1233
1234 if test x$DOXYGEN = xno ; then
1235     have_doxygen=no
1236 else
1237     have_doxygen=yes
1238 fi
1239
1240 if test x$enable_doxygen_docs = xauto ; then
1241     if test x$have_doxygen = xno ; then
1242         enable_doxygen_docs=no
1243     else
1244         enable_doxygen_docs=yes
1245     fi
1246 fi
1247
1248 if test x$enable_doxygen_docs = xyes; then
1249     if test x$have_doxygen = xno; then
1250         AC_MSG_ERROR([Building Doxygen docs explicitly required, but Doxygen not found])
1251     fi
1252 fi
1253
1254 AM_CONDITIONAL(DBUS_DOXYGEN_DOCS_ENABLED, test x$enable_doxygen_docs = xyes)
1255 AC_MSG_RESULT(yes)
1256
1257 ### XML Documentation
1258
1259 AC_PATH_PROG(XMLTO, xmlto, no)
1260
1261 AC_MSG_CHECKING([whether to build XML documentation])
1262
1263 if test x$XMLTO = xno ; then
1264     have_xmlto=no
1265 else
1266     have_xmlto=yes
1267 fi
1268
1269 if test x$enable_xml_docs = xauto ; then
1270     if test x$have_xmlto = xno ; then
1271         enable_xml_docs=no
1272     else
1273         enable_xml_docs=yes
1274     fi
1275 fi
1276
1277 if test x$enable_xml_docs = xyes; then
1278     if test x$have_xmlto = xno; then
1279         AC_MSG_ERROR([Building XML docs explicitly required, but xmlto not found])
1280     fi
1281 fi
1282
1283 AM_CONDITIONAL(DBUS_XML_DOCS_ENABLED, test x$enable_xml_docs = xyes)
1284 AC_MSG_RESULT(yes)
1285
1286 #### Have to go $localstatedir->$prefix/var->/usr/local/var
1287
1288 #### find the actual value for $prefix that we'll end up with
1289 ##   (I know this is broken and should be done in the Makefile, but
1290 ##    that's a major pain and almost nobody actually seems to care)
1291 AS_AC_EXPAND(EXPANDED_LOCALSTATEDIR, "$localstatedir")
1292 AS_AC_EXPAND(EXPANDED_SYSCONFDIR, "$sysconfdir")
1293 AS_AC_EXPAND(EXPANDED_BINDIR, "$bindir")
1294 AS_AC_EXPAND(EXPANDED_LIBDIR, "$libdir")
1295 AS_AC_EXPAND(EXPANDED_LIBEXECDIR, "$libexecdir")
1296 AS_AC_EXPAND(EXPANDED_DATADIR, "$datadir")
1297
1298 #### Check our operating system
1299 operating_system=unknown
1300 if test -f /etc/redhat-release || test -f $EXPANDED_SYSCONFDIR/redhat-release ; then
1301    operating_system=redhat
1302 fi
1303
1304 if test -f /etc/slackware-version || test -f $EXPANDED_SYSCONFDIR/slackware-version ; then
1305    operating_system=slackware
1306 fi
1307
1308 #### Sort out init scripts
1309
1310 if test x$with_init_scripts = x; then
1311     if test xredhat = x$operating_system ; then
1312         with_init_scripts=redhat
1313     else
1314         if test xslackware = x$operating_system ; then
1315                 with_init_scripts=slackware
1316             else
1317                 with_init_scripts=none
1318         fi
1319     fi
1320 fi
1321
1322 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_RED_HAT, test x$with_init_scripts = xredhat)
1323
1324 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_SLACKWARE, test x$with_init_scripts = xslackware)
1325
1326 ##### Set up location for system bus socket
1327 if ! test -z "$with_system_socket"; then
1328    DBUS_SYSTEM_SOCKET=$with_system_socket
1329 else
1330    DBUS_SYSTEM_SOCKET=${EXPANDED_LOCALSTATEDIR}/run/dbus/system_bus_socket
1331 fi
1332
1333 AC_SUBST(DBUS_SYSTEM_SOCKET)
1334 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_SOCKET,"$DBUS_SYSTEM_SOCKET",[The name of the socket the system bus listens on by default])
1335
1336 ## system bus only listens on local domain sockets, and never 
1337 ## on an abstract socket (so only root can create the socket)
1338 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS="unix:path=$DBUS_SYSTEM_SOCKET"
1339 AC_SUBST(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS)
1340 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS, "$DBUS_SYSTEM_BUS_DEFAULT_ADDRESS",[The default D-Bus address of the system bus])
1341
1342 #### Set up the pid file
1343 if ! test -z "$with_system_pid_file"; then
1344    DBUS_SYSTEM_PID_FILE=$with_system_pid_file
1345 elif test x$with_init_scripts = xredhat ; then
1346    DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/messagebus.pid
1347 else
1348    DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/dbus/pid
1349 fi
1350
1351 AC_SUBST(DBUS_SYSTEM_PID_FILE)
1352
1353 #### Directory to check for console ownership
1354 if ! test -z "$with_console_auth_dir"; then
1355    DBUS_CONSOLE_AUTH_DIR=$with_console_auth_dir
1356 else
1357    DBUS_CONSOLE_AUTH_DIR=/var/run/console/
1358 fi
1359
1360 AC_SUBST(DBUS_CONSOLE_AUTH_DIR)
1361 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_AUTH_DIR, "$DBUS_CONSOLE_AUTH_DIR", [Directory to check for console ownerhip])
1362
1363 #### File to check for console ownership
1364 if test x$have_console_owner_file = xyes; then
1365    if ! test -z "$with_console_owner_file"; then
1366       DBUS_CONSOLE_OWNER_FILE=$with_console_owner_file
1367    else
1368       DBUS_CONSOLE_OWNER_FILE=/dev/console
1369    fi
1370 else
1371   DBUS_CONSOLE_OWNER_FILE=
1372 fi
1373
1374 AC_SUBST(DBUS_CONSOLE_OWNER_FILE)
1375 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_OWNER_FILE, "$DBUS_CONSOLE_OWNER_FILE", [File to check for console ownerhip])
1376
1377 #### User to start the system bus as
1378 if test -z "$with_dbus_user" ; then
1379     DBUS_USER=messagebus
1380 else
1381     DBUS_USER=$with_dbus_user
1382 fi
1383 AC_SUBST(DBUS_USER)
1384 AC_DEFINE_UNQUOTED(DBUS_USER,"$DBUS_USER", [User for running the system BUS daemon])
1385
1386 #### Direcotry to install data files into
1387 DBUS_DATADIR=$EXPANDED_DATADIR
1388 AC_SUBST(DBUS_DATADIR)
1389 AC_DEFINE_UNQUOTED(DBUS_DATADIR,"$DBUS_DATADIR", [Directory for installing DBUS data files])
1390
1391 #### Directory to install dbus-daemon
1392 if test -z "$with_dbus_daemondir" ; then
1393     DBUS_DAEMONDIR=$EXPANDED_BINDIR
1394 else
1395     DBUS_DAEMONDIR=$with_dbus_daemondir
1396 fi
1397 AC_SUBST(DBUS_DAEMONDIR)
1398 AC_DEFINE_UNQUOTED(DBUS_DAEMONDIR,"$DBUS_DAEMONDIR", [Directory for installing the DBUS daemon])
1399
1400 #### Directory to install the other binaries
1401 DBUS_BINDIR="$EXPANDED_BINDIR"
1402 AC_SUBST(DBUS_BINDIR)
1403 AC_DEFINE_UNQUOTED(DBUS_BINDIR,"$DBUS_BINDIR", [Directory for installing the binaries])
1404
1405 #### Directory to install the libexec binaries
1406 DBUS_LIBEXECDIR="$EXPANDED_LIBEXECDIR"
1407 AC_SUBST(DBUS_LIBEXECDIR)
1408 AC_DEFINE_UNQUOTED(DBUS_LIBEXECDIR,"$DBUS_LIBEXECDIR", [Directory for installing the libexec binaries])
1409
1410 #### Tell tests where to find certain stuff in builddir
1411
1412 DBUS_PWD=`pwd`
1413 # Useful in a cross-compilation environment, where the tests are run on the host system.
1414 AC_ARG_WITH(dbus-test-dir, AS_HELP_STRING([--with-dbus-test-dir=[dirname]],[path where the tests tools are available]),
1415                            DBUS_PWD=$withval)
1416 AC_DEFUN([TEST_PATH], [
1417 TEST_$1=${DBUS_PWD}/test/$2
1418 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1",
1419                    [Full path to test file test/$2 in builddir])
1420 AC_SUBST(TEST_$1)
1421 ])
1422 AC_DEFUN([TEST_PROG], [
1423 TEST_$1=${DBUS_PWD}/test/$2
1424 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1$EXEEXT",
1425                    [Full path to test file test/$2 in builddir])
1426 AC_SUBST(TEST_$1)
1427 ])
1428
1429 TEST_PATH(VALID_SERVICE_DIR, data/valid-service-files)
1430 TEST_PATH(INVALID_SERVICE_DIR, data/invalid-service-files)
1431 TEST_PATH(VALID_SERVICE_SYSTEM_DIR, data/valid-service-files-system)
1432 TEST_PATH(INVALID_SERVICE_SYSTEM_DIR, data/invalid-service-files-system)
1433 TEST_PROG(SERVICE_BINARY, test-service)
1434 TEST_PROG(SHELL_SERVICE_BINARY, test-shell-service)
1435 TEST_PROG(EXIT_BINARY, test-exit)
1436 TEST_PROG(SEGFAULT_BINARY, test-segfault)
1437 TEST_PROG(SLEEP_FOREVER_BINARY, test-sleep-forever)
1438 TEST_PROG(PRIVSERVER_BINARY, name-test/test-privserver)
1439
1440 AC_DEFINE_UNQUOTED(TEST_BUS_BINARY, "$DBUS_PWD/bus/dbus-daemon$EXEEXT",
1441                    [Full path to the daemon in the builddir])
1442 AC_SUBST(TEST_BUS_BINARY)
1443
1444 ## Export the non-setuid external helper
1445 TEST_LAUNCH_HELPER_BINARY="$DBUS_PWD/bus/dbus-daemon-launch-helper-test$EXEEXT"
1446 AC_SUBST(TEST_LAUNCH_HELPER_BINARY)
1447 AC_DEFINE_UNQUOTED(DBUS_TEST_LAUNCH_HELPER_BINARY, "$TEST_LAUNCH_HELPER_BINARY",
1448                    [Full path to the launch helper test program in the builddir])
1449
1450 #### Find socket directories
1451 if ! test -z "$TMPDIR" ; then
1452    DEFAULT_SOCKET_DIR=$TMPDIR
1453 elif ! test -z "$TEMP" ; then
1454    DEFAULT_SOCKET_DIR=$TEMP
1455 elif ! test -z "$TMP" ; then
1456    DEFAULT_SOCKET_DIR=$TMP
1457 else
1458    DEFAULT_SOCKET_DIR=/tmp
1459 fi
1460
1461 if ! test -z "$with_test_socket_dir" ; then
1462    TEST_SOCKET_DIR="$with_test_socket_dir"
1463 else
1464    TEST_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1465 fi
1466 AC_SUBST(TEST_SOCKET_DIR)
1467 AC_DEFINE_UNQUOTED(DBUS_TEST_SOCKET_DIR, "$TEST_SOCKET_DIR", [Where to put test sockets])
1468
1469 if ! test -z "$with_session_socket_dir" ; then
1470    DBUS_SESSION_SOCKET_DIR="$with_session_socket_dir"
1471 else
1472    DBUS_SESSION_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1473 fi
1474 AC_DEFINE_UNQUOTED(DBUS_SESSION_SOCKET_DIR, "$DBUS_SESSION_SOCKET_DIR", [Where per-session bus puts its sockets])
1475 AC_SUBST(DBUS_SESSION_SOCKET_DIR)
1476
1477 if test x$dbus_win = xyes; then
1478         DBUS_SESSION_BUS_DEFAULT_ADDRESS="nonce-tcp:"
1479 else
1480         DBUS_SESSION_BUS_DEFAULT_ADDRESS="unix:tmpdir=$DBUS_SESSION_SOCKET_DIR"
1481 fi
1482 AC_SUBST(DBUS_SESSION_BUS_DEFAULT_ADDRESS)
1483
1484 # darwin needs this to initialize the environment
1485 AC_CHECK_HEADERS(crt_externs.h)
1486 AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])])
1487 AH_VERBATIM(_DARWIN_ENVIRON,
1488 [
1489 #if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
1490 # include <sys/time.h>
1491 # include <crt_externs.h>
1492 # define environ (*_NSGetEnviron())
1493 #endif
1494 ])
1495
1496 AC_OUTPUT([
1497 Doxyfile
1498 dbus/versioninfo.rc
1499 dbus/dbus-arch-deps.h
1500 bus/system.conf
1501 bus/session.conf
1502 bus/messagebus
1503 bus/rc.messagebus
1504 bus/dbus-daemon.1
1505 Makefile
1506 dbus/Makefile
1507 bus/Makefile
1508 tools/Makefile
1509 test/Makefile
1510 test/name-test/Makefile
1511 doc/Makefile
1512 dbus-1.pc
1513 test/data/valid-config-files/debug-allow-all.conf
1514 test/data/valid-config-files/debug-allow-all-sha1.conf
1515 test/data/valid-config-files-system/debug-allow-all-pass.conf
1516 test/data/valid-config-files-system/debug-allow-all-fail.conf
1517 test/data/valid-service-files/org.freedesktop.DBus.TestSuite.PrivServer.service
1518 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteEchoService.service
1519 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteForkingEchoService.service
1520 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteSegfaultService.service
1521 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service
1522 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service
1523 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteEchoService.service
1524 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteSegfaultService.service
1525 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service
1526 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service
1527 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoExec.service
1528 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoUser.service
1529 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoService.service
1530 ])
1531
1532 dnl ==========================================================================
1533 echo "
1534                     D-Bus $VERSION
1535                   ==============
1536
1537         prefix:                   ${prefix}
1538         exec_prefix:              ${exec_prefix}
1539         libdir:                   ${EXPANDED_LIBDIR}
1540         libexecdir:               ${EXPANDED_LIBEXECDIR}
1541         bindir:                   ${EXPANDED_BINDIR}
1542         sysconfdir:               ${EXPANDED_SYSCONFDIR}
1543         localstatedir:            ${EXPANDED_LOCALSTATEDIR}
1544         datadir:                  ${EXPANDED_DATADIR}
1545         source code location:     ${srcdir}
1546         compiler:                 ${CC}
1547         cflags:                   ${CFLAGS}
1548         cppflags:                 ${CPPFLAGS}
1549         cxxflags:                 ${CXXFLAGS}
1550         64-bit int:               ${DBUS_INT64_TYPE}
1551         32-bit int:               ${DBUS_INT32_TYPE}
1552         16-bit int:               ${DBUS_INT16_TYPE}
1553         Doxygen:                  ${DOXYGEN}
1554         xmlto:                    ${XMLTO}"
1555
1556 echo "
1557         Maintainer mode:          ${USE_MAINTAINER_MODE}
1558         gcc coverage profiling:   ${enable_gcov}
1559         Building unit tests:      ${enable_tests}
1560         Building verbose mode:    ${enable_verbose_mode}
1561         Building assertions:      ${enable_asserts}
1562         Building checks:          ${enable_checks}
1563         Building SELinux support: ${have_selinux}
1564         Building inotify support: ${have_inotify}
1565         Building dnotify support: ${have_dnotify}
1566         Building kqueue support:  ${have_kqueue}
1567         Building X11 code:        ${enable_x11}
1568         Building Doxygen docs:    ${enable_doxygen_docs}
1569         Building XML docs:        ${enable_xml_docs}
1570         Building cache support:   ${enable_userdb_cache}
1571         Gettext libs (empty OK):  ${INTLLIBS}
1572         Using XML parser:         ${with_xml}
1573         Init scripts style:       ${with_init_scripts}
1574         Abstract socket names:    ${ac_cv_have_abstract_sockets}
1575         System bus socket:        ${DBUS_SYSTEM_SOCKET}
1576         System bus address:       ${DBUS_SYSTEM_BUS_DEFAULT_ADDRESS}
1577         System bus PID file:      ${DBUS_SYSTEM_PID_FILE}
1578         Session bus address:      ${DBUS_SESSION_BUS_DEFAULT_ADDRESS}
1579         Console auth dir:         ${DBUS_CONSOLE_AUTH_DIR}
1580         Console owner file:       ${have_console_owner_file}
1581         Console owner file path:  ${DBUS_CONSOLE_OWNER_FILE}
1582         System bus user:          ${DBUS_USER}
1583         Session bus services dir: ${EXPANDED_DATADIR}/dbus-1/services
1584         'make check' socket dir:  ${TEST_SOCKET_DIR}
1585 "
1586
1587 if test x$enable_tests = xyes; then
1588         echo "NOTE: building with unit tests increases the size of the installed library and renders it insecure."
1589 fi
1590 if test x$enable_tests = xyes -a x$enable_asserts = xno; then
1591         echo "NOTE: building with unit tests but without assertions means tests may not properly report failures (this configuration is only useful when doing something like profiling the tests)"
1592 fi
1593 if test x$enable_gcov = xyes; then
1594         echo "NOTE: building with coverage profiling is definitely for developers only."
1595 fi
1596 if test x$enable_verbose_mode = xyes; then
1597         echo "NOTE: building with verbose mode increases library size, may slightly increase security risk, and decreases performance."
1598 fi
1599 if test x$enable_asserts = xyes; then
1600         echo "NOTE: building with assertions increases library size and decreases performance."
1601 fi
1602 if test x$enable_checks = xno; then
1603         echo "NOTE: building without checks for arguments passed to public API makes it harder to debug apps using D-Bus, but will slightly decrease D-Bus library size and _very_ slightly improve performance."
1604 fi
1605 if test x$dbus_use_libxml = xtrue; then
1606         echo
1607         echo "WARNING: You have chosen to use libxml as your xml parser however this code path is not maintained by the D-Bus developers and if it breaks you get to keep the pieces.  If you have selected this option in err please reconfigure with expat (e.g. --with-xml=expat)."
1608 fi