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