Merge branch 'dbus-1.2'
[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(byteswap.h)
481
482 AC_CHECK_HEADERS(unistd.h)
483
484 AC_CHECK_HEADERS(wspiapi.h)
485
486 # Add -D_POSIX_PTHREAD_SEMANTICS if on Solaris
487 #
488 case $host_os in
489     solaris*)
490        CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS" ;;
491 esac
492     
493 # checking for a posix version of getpwnam_r
494 # if we are cross compiling and can not run the test
495 # assume getpwnam_r is the posix version
496 # it is up to the person cross compiling to change
497 # this behavior if desired
498 AC_LANG_PUSH(C)
499 AC_CACHE_CHECK([for posix getpwnam_r],
500                 ac_cv_func_posix_getpwnam_r,
501                 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
502 [[
503 #include <errno.h>
504 #include <pwd.h>
505 ]],
506 [[
507     char buffer[10000];
508     struct passwd pwd, *pwptr = &pwd;
509     int error;
510     errno = 0;
511     error = getpwnam_r ("", &pwd, buffer, 
512                         sizeof (buffer), &pwptr);
513    return (error < 0 && errno == ENOSYS) 
514            || error == ENOSYS; 
515 ]])],
516         [ac_cv_func_posix_getpwnam_r=yes],
517         [ac_cv_func_posix_getpwnam_r=no],
518         [ac_cv_func_posix_getpwnam_r=yes]
519 )])
520 AC_LANG_POP(C)
521
522 if test "$ac_cv_func_posix_getpwnam_r" = yes; then
523         AC_DEFINE(HAVE_POSIX_GETPWNAM_R,1,
524                 [Have POSIX function getpwnam_r])
525 else
526         AC_CACHE_CHECK([for nonposix getpwnam_r],
527                 ac_cv_func_nonposix_getpwnam_r,
528                 [AC_TRY_LINK([#include <pwd.h>],
529                         [char buffer[10000];
530                         struct passwd pwd;
531                         getpwnam_r ("", &pwd, buffer, 
532                                         sizeof (buffer));],
533                         [ac_cv_func_nonposix_getpwnam_r=yes],
534                         [ac_cv_func_nonposix_getpwnam_r=no])])
535                 if test "$ac_cv_func_nonposix_getpwnam_r" = yes; then
536                 AC_DEFINE(HAVE_NONPOSIX_GETPWNAM_R,1,
537                         [Have non-POSIX function getpwnam_r])
538         fi
539 fi
540
541 dnl check for socklen_t
542 AC_MSG_CHECKING(whether socklen_t is defined)
543 AC_TRY_COMPILE([
544 #include <sys/types.h>
545 #include <sys/socket.h>
546 #include <netdb.h>
547 ],[
548 socklen_t foo;
549 foo = 1;
550 ],dbus_have_socklen_t=yes,dbus_have_socklen_t=no)
551 AC_MSG_RESULT($dbus_have_socklen_t)
552
553 if test "x$dbus_have_socklen_t" = "xyes"; then
554     AC_DEFINE(HAVE_SOCKLEN_T,1,[Have socklen_t type])
555 fi
556
557 dnl check for writev header and writev function so we're 
558 dnl good to go if HAVE_WRITEV gets defined.
559 AC_CHECK_HEADERS(sys/uio.h, [AC_CHECK_FUNCS(writev)])
560
561 dnl needed on darwin for NAME_MAX
562 AC_CHECK_HEADERS(sys/syslimits.h)
563
564 dnl Make it easy to check if we have MSG_NOSIGNAL without actually having to include sys/socket.h
565 AC_CHECK_DECLS([MSG_NOSIGNAL], [], [], [[ #include <sys/socket.h> ]])
566
567 dnl check for flavours of varargs macros (test from GLib)
568 AC_MSG_CHECKING(for ISO C99 varargs macros in C)
569 AC_TRY_COMPILE([],[
570 int a(int p1, int p2, int p3);
571 #define call_a(...) a(1,__VA_ARGS__)
572 call_a(2,3);
573 ],dbus_have_iso_c_varargs=yes,dbus_have_iso_c_varargs=no)
574 AC_MSG_RESULT($dbus_have_iso_c_varargs)
575
576 AC_MSG_CHECKING(for GNUC varargs macros)
577 AC_TRY_COMPILE([],[
578 int a(int p1, int p2, int p3);
579 #define call_a(params...) a(1,params)
580 call_a(2,3);
581 ],dbus_have_gnuc_varargs=yes,dbus_have_gnuc_varargs=no)
582 AC_MSG_RESULT($dbus_have_gnuc_varargs)
583
584 dnl Output varargs tests
585 if test x$dbus_have_iso_c_varargs = xyes; then
586     AC_DEFINE(HAVE_ISO_VARARGS,1,[Have ISO C99 varargs macros])
587 fi
588 if test x$dbus_have_gnuc_varargs = xyes; then
589     AC_DEFINE(HAVE_GNUC_VARARGS,1,[Have GNU-style varargs macros])
590 fi
591
592 dnl Check for various credentials.
593 AC_MSG_CHECKING(for struct cmsgcred)
594 AC_TRY_COMPILE([
595 #include <sys/types.h>
596 #include <sys/socket.h>
597 ],[
598 struct cmsgcred cred;
599
600 cred.cmcred_pid = 0;
601 ],dbus_have_struct_cmsgcred=yes,dbus_have_struct_cmsgcred=no)
602 AC_MSG_RESULT($dbus_have_struct_cmsgcred)
603
604 if test x$dbus_have_struct_cmsgcred = xyes; then
605     AC_DEFINE(HAVE_CMSGCRED,1,[Have cmsgcred structure])
606 fi
607
608 AC_CHECK_FUNCS(getpeerucred getpeereid)
609
610 AC_CHECK_FUNCS(pipe2 accept4)
611
612 #### Abstract sockets
613
614 if test x$enable_abstract_sockets = xauto; then
615 AC_LANG_PUSH(C)
616 warn_on_xcompile=no
617 AC_CACHE_CHECK([abstract socket namespace],
618                 ac_cv_have_abstract_sockets,
619                 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
620 [[
621 #include <sys/types.h>
622 #include <stdlib.h>
623 #include <string.h>
624 #include <stdio.h>
625 #include <sys/socket.h>
626 #include <sys/un.h>
627 #include <errno.h>
628 ]],
629 [[
630   int listen_fd;
631   struct sockaddr_un addr;
632   
633   listen_fd = socket (PF_UNIX, SOCK_STREAM, 0);
634   
635   if (listen_fd < 0)
636     {
637       fprintf (stderr, "socket() failed: %s\n", strerror (errno));
638       exit (1);
639     }
640
641   memset (&addr, '\0', sizeof (addr));
642   addr.sun_family = AF_UNIX;
643   strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test");
644   addr.sun_path[0] = '\0'; /* this is what makes it abstract */
645   
646   if (bind (listen_fd, (struct sockaddr*) &addr, SUN_LEN (&addr)) < 0)
647     {
648        fprintf (stderr, "Abstract socket namespace bind() failed: %s\n", 
649                 strerror (errno));
650        exit (1);
651     }
652   else 
653     exit (0);
654 ]])],
655               [ac_cv_have_abstract_sockets=yes],
656               [ac_cv_have_abstract_sockets=no],
657               [
658                 ac_cv_have_abstract_sockets=no
659                 warn_on_xcompile=yes
660               ]
661 )])
662 if test x$warn_on_xcompile = xyes ; then
663   AC_MSG_WARN([Cannot check for abstract sockets when cross-compiling, please use --enable-abstract-sockets])
664 fi
665 AC_LANG_POP(C)
666 fi
667
668 if test x$enable_abstract_sockets = xyes; then
669     if test x$ac_cv_have_abstract_sockets = xno; then
670         AC_MSG_ERROR([Abstract sockets explicitly required, and support not detected.])
671     fi
672 fi
673
674 if test x$enable_abstract_sockets = xno; then
675    ac_cv_have_abstract_sockets=no;
676 fi
677
678 if test x$ac_cv_have_abstract_sockets = xyes ; then
679    DBUS_PATH_OR_ABSTRACT=abstract
680    AC_DEFINE(HAVE_ABSTRACT_SOCKETS,1,[Have abstract socket namespace])
681 else
682    DBUS_PATH_OR_ABSTRACT=path
683 fi
684
685 # this is used in addresses to prefer abstract, e.g. 
686 # unix:path=/foo or unix:abstract=/foo 
687 AC_SUBST(DBUS_PATH_OR_ABSTRACT)
688
689 #### Sort out XML library
690
691 # see what we have
692 AC_CHECK_LIB(expat, XML_ParserCreate_MM,
693              [ AC_CHECK_HEADERS(expat.h, have_expat=true, have_expat=false) ],
694              have_expat=false)
695
696 # see what we want to use
697 dbus_use_libxml=false
698 dbus_use_expat=false
699 if test x$with_xml = xexpat; then
700         if ! $have_expat ; then
701            AC_MSG_ERROR([Explicitly requested expat but expat not found])
702         fi
703         dbus_use_expat=true
704 elif test x$with_xml = xlibxml; then
705         PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= 2.6.0, have_libxml=true, have_libxml=false)
706         if ! $have_libxml ; then
707            AC_MSG_ERROR([Explicitly requested libxml but libxml not found])
708         fi
709         dbus_use_libxml=true
710 else
711         ### expat is the default because libxml can't currently survive 
712         ### our brutal OOM-handling unit test setup.
713         ### http://bugzilla.gnome.org/show_bug.cgi?id=109368
714         if test x$have_expat = xfalse; then
715                 AC_MSG_ERROR([Could not find expat.h, check config.log for failed attempts])
716         fi
717         ### By default, only use Expat since it's tested and known to work.  If you're a
718         ### general-purpose OS vendor, please don't enable libxml.  For embedded use
719         ### if your OS is built around libxml, that's another case.
720         dbus_use_expat=true
721 fi
722
723 AM_CONDITIONAL(DBUS_USE_EXPAT, $dbus_use_expat)
724 AM_CONDITIONAL(DBUS_USE_LIBXML, $dbus_use_libxml)
725
726 if $dbus_use_expat; then
727    XML_LIBS=-lexpat
728    XML_CFLAGS=
729 fi
730 if $dbus_use_libxml; then
731    XML_LIBS=$LIBXML_LIBS
732    XML_CFLAGS=$LIBXML_CFLAGS
733 fi
734
735 # Thread lib detection
736 AC_CHECK_FUNC(pthread_cond_timedwait,[AC_CHECK_LIB(pthread,pthread_cond_timedwait,
737                                                     [THREAD_LIBS="-lpthread"])])
738 save_libs="$LIBS"
739 LIBS="$LIBS $THREAD_LIBS"
740 AC_CHECK_FUNC(pthread_condattr_setclock,have_pthread_condattr_setclock=true,have_pthread_condattr_setclock=false)
741 if test x$have_pthread_condattr_setclock = xtrue; then
742     AC_SEARCH_LIBS([clock_getres],[rt],[THREAD_LIBS="$THREAD_LIBS -lrt"])
743     AC_MSG_CHECKING([for CLOCK_MONOTONIC])
744     AC_TRY_COMPILE([#include <time.h>
745 #include <pthread.h>
746 ], [
747 struct timespec monotonic_timer;
748 pthread_condattr_t attr;
749 pthread_condattr_init (&attr);
750 pthread_condattr_setclock (&attr, CLOCK_MONOTONIC);
751 clock_getres (CLOCK_MONOTONIC,&monotonic_timer);
752 ], have_clock_monotonic=true, have_clock_monotonic=false)
753 if test x$have_clock_monotonic = xtrue; then
754     AC_MSG_RESULT([found])
755     AC_DEFINE(HAVE_MONOTONIC_CLOCK, 1, [Define if we have CLOCK_MONOTONIC])
756 else
757     AC_MSG_RESULT([not found])
758 fi
759 fi
760 LIBS="$save_libs"
761
762 # SELinux detection
763 if test x$enable_selinux = xno ; then
764     have_selinux=no;
765 else
766     # See if we have SELinux library
767     AC_CHECK_LIB(selinux, is_selinux_enabled, 
768                  have_selinux=yes, have_selinux=no)
769
770     # see if we have the SELinux header with the new D-Bus stuff in it
771     if test x$have_selinux = xyes ; then
772         AC_MSG_CHECKING([for DBUS Flask permissions in selinux/av_permissions.h])
773         AC_TRY_COMPILE([#include <selinux/av_permissions.h>],
774                         [#ifdef DBUS__ACQUIRE_SVC return 0;
775                          #else
776                          #error DBUS__ACQUIRE_SVC not defined
777                          #endif],
778                         have_selinux=yes, have_selinux=no)
779         AC_MSG_RESULT($have_selinux)
780     fi
781
782     if test x$enable_selinux = xauto ; then
783         if test x$have_selinux = xno ; then
784                 AC_MSG_WARN([Sufficiently new SELinux library not found])
785         fi
786     else 
787         if test x$have_selinux = xno ; then
788                 AC_MSG_ERROR([SElinux explicitly required, and SELinux library not found])
789         fi
790     fi
791 fi
792
793 AM_CONDITIONAL(HAVE_SELINUX, test x$have_selinux = xyes)
794
795 if test x$have_selinux = xyes ; then
796     # the selinux code creates threads
797     # which requires libpthread even on linux
798     AC_CHECK_FUNC(pthread_create,,[AC_CHECK_LIB(pthread,pthread_create,
799                                                 [SELINUX_THREAD_LIBS="-lpthread"])])
800
801     SELINUX_LIBS="-lselinux $SELINUX_THREAD_LIBS"
802     AC_DEFINE(HAVE_SELINUX,1,[SELinux support])
803 else
804     SELINUX_LIBS=
805 fi
806
807 # inotify checks
808 if test x$enable_inotify = xno ; then
809     have_inotify=no;
810 else
811     AC_CHECK_HEADERS(sys/inotify.h, have_inotify=yes, have_inotify=no)
812 fi
813
814 dnl check if inotify backend is enabled
815 if test x$have_inotify = xyes; then
816    AC_DEFINE(DBUS_BUS_ENABLE_INOTIFY,1,[Use inotify])
817    AC_CHECK_FUNCS(inotify_init1)
818 fi
819
820 AM_CONDITIONAL(DBUS_BUS_ENABLE_INOTIFY, test x$have_inotify = xyes)
821
822 # dnotify checks
823 if test x$enable_dnotify = xno ; then
824     have_dnotify=no;
825 else
826     if test x$have_inotify = xno -a x$host_os = xlinux-gnu -o x$host_os = xlinux; then
827         have_dnotify=yes;       
828     else
829         have_dnotify=no;
830     fi
831 fi
832
833 dnl check if dnotify backend is enabled
834 if test x$have_dnotify = xyes; then
835    AC_DEFINE(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX,1,[Use dnotify on Linux])
836 fi
837
838 AM_CONDITIONAL(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX, test x$have_dnotify = xyes)
839
840 # kqueue checks
841 if test x$enable_kqueue = xno ; then
842     have_kqueue=no
843 else
844     have_kqueue=yes
845     AC_CHECK_HEADER(sys/event.h, , have_kqueue=no)
846     AC_CHECK_FUNC(kqueue, , have_kqueue=no)
847
848     if test x$enable_kqueue = xyes -a x$have_kqueue = xno; then
849         AC_MSG_ERROR(kqueue support explicitly enabled but not available)
850     fi
851 fi
852
853 dnl check if kqueue backend is enabled
854 if test x$have_kqueue = xyes; then
855    AC_DEFINE(DBUS_BUS_ENABLE_KQUEUE,1,[Use kqueue])
856 fi
857
858 AM_CONDITIONAL(DBUS_BUS_ENABLE_KQUEUE, test x$have_kqueue = xyes) 
859
860 dnl console owner file
861 if test x$enable_console_owner_file = xno ; then
862     have_console_owner_file=no;
863 else
864     case $host_os in
865     solaris*)
866         have_console_owner_file=yes;
867         AC_DEFINE(HAVE_CONSOLE_OWNER_FILE,1,[Have console owner file])
868         ;;
869     *)
870         have_console_owner_file=no;;
871     esac
872 fi
873
874 AM_CONDITIONAL(HAVE_CONSOLE_OWNER_FILE, test x$have_console_owner_file = xyes)
875
876 # libaudit detection
877 if test x$enable_libaudit = xno ; then
878     have_libaudit=no;
879 else
880     # See if we have audit daemon & capabilities library
881     AC_CHECK_LIB(audit, audit_log_user_avc_message, 
882                  have_libaudit=yes, have_libaudit=no)
883     if test x$have_libaudit = xyes ; then
884         AC_CHECK_LIB(cap-ng, capng_clear,
885                  have_libaudit=yes, have_libaudit=no)
886     fi
887 fi
888
889 AM_CONDITIONAL(HAVE_LIBAUDIT, test x$have_libaudit = xyes)
890
891 if test x$have_libaudit = xyes ; then
892     SELINUX_LIBS="$SELINUX_LIBS -laudit -lcap-ng"
893     AC_DEFINE(HAVE_LIBAUDIT,1,[audit daemon SELinux support])
894 fi
895
896 # Check for ADT API
897 AC_MSG_CHECKING(for ADT API)
898 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
899 #include <bsm/adt.h>
900 adt_user_context = ADT_USER;
901 ]], [[]])], [ check_adt_audit=yes ], [ check_adt_audit=no ])
902
903 if test ${check_adt_audit} = yes
904 then
905    AC_DEFINE([HAVE_ADT], [], [Adt audit API])
906    ADT_LIBS="-lbsm"
907    LIBS="-lbsm $LIBS"
908    AC_MSG_RESULT(yes)
909 else
910    AC_MSG_RESULT(no)
911 fi
912
913 # Check for SCM_RIGHTS
914 AC_MSG_CHECKING([for SCM_RIGHTS])
915 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
916 #include <sys/socket.h>
917 #include <sys/un.h>
918 static int x = SCM_RIGHTS;
919 ]], [[]])],
920 [ AC_MSG_RESULT([supported])
921   AC_DEFINE([HAVE_UNIX_FD_PASSING], [1], [Supports sending UNIX file descriptors]) ],
922 [ AC_MSG_RESULT([not supported]) ])
923
924 NETWORK_libs=
925 if test x$dbus_win = xyes ; then
926   NETWORK_libs="-lws2_32"
927 fi
928
929 #### Set up final flags
930 DBUS_CLIENT_CFLAGS=
931 DBUS_CLIENT_LIBS="$THREAD_LIBS $NETWORK_libs"
932 AC_SUBST(DBUS_CLIENT_CFLAGS)
933 AC_SUBST(DBUS_CLIENT_LIBS)
934
935 DBUS_BUS_CFLAGS="$XML_CFLAGS"
936 DBUS_BUS_LIBS="$XML_LIBS $SELINUX_LIBS $INTLLIBS $THREAD_LIBS $ADT_LIBS $NETWORK_libs"
937 AC_SUBST(DBUS_BUS_CFLAGS)
938 AC_SUBST(DBUS_BUS_LIBS)
939
940 DBUS_LAUNCHER_CFLAGS="$XML_CFLAGS"
941 DBUS_LAUNCHER_LIBS="$XML_LIBS $THREAD_LIBS $NETWORK_libs"
942 AC_SUBST(DBUS_LAUNCHER_CFLAGS)
943 AC_SUBST(DBUS_LAUNCHER_LIBS)
944
945 DBUS_TEST_CFLAGS=
946 DBUS_TEST_LIBS="$THREAD_LIBS $NETWORK_libs"
947 AC_SUBST(DBUS_TEST_CFLAGS)
948 AC_SUBST(DBUS_TEST_LIBS)
949
950 ### X11 detection
951 if test x$dbus_win = xyes ; then
952    enable_x11=no
953 else
954 AC_PATH_XTRA
955
956 ## for now enable_x11 just tracks have_x11, 
957 ## there's no --enable-x11
958 if test x$no_x = xyes ; then
959    have_x11=no
960    enable_x11=no
961 else
962    have_x11=yes
963    enable_x11=yes
964 fi
965
966 if test x$enable_x11 = xyes ; then
967    AC_DEFINE(DBUS_BUILD_X11,1,[Build X11-dependent code])
968    DBUS_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
969    DBUS_X_CFLAGS="$X_CFLAGS"
970 else
971    DBUS_X_LIBS=
972    DBUS_X_CFLAGS=
973 fi
974
975 AC_SUBST(DBUS_X_CFLAGS)
976 AC_SUBST(DBUS_X_LIBS)
977 fi
978
979
980 #### gcc warning flags
981
982 cc_supports_flag() {
983   AC_MSG_CHECKING(whether $CC supports "$@")
984   Cfile=/tmp/foo${$}
985   touch ${Cfile}.c
986   $CC -c "$@" ${Cfile}.c -o ${Cfile}.o >/dev/null 2>&1
987   rc=$?
988   rm -f ${Cfile}.c ${Cfile}.o
989   case $rc in
990     0) AC_MSG_RESULT(yes);;
991     *) AC_MSG_RESULT(no);;
992   esac
993   return $rc
994 }
995
996 ld_supports_flag() {
997   AC_MSG_CHECKING([whether $LD supports "$@"])
998   AC_TRY_LINK([
999     int one(void) { return 1; }
1000     int two(void) { return 2; }
1001   ], [ two(); ] , [_ac_ld_flag_supported=yes], [_ac_ld_flag_supported=no])
1002
1003   if test "$_ac_ld_flag_supported" = "yes"; then
1004     rm -f conftest.c
1005     touch conftest.c
1006     if $CC -c conftest.c; then
1007       ld_out=`$LD $@ -o conftest conftest.o 2>&1`
1008       ld_ret=$?
1009       if test $ld_ret -ne 0 ; then
1010         _ac_ld_flag_supported=no
1011       elif echo "$ld_out" | egrep 'option ignored|^usage:|unrecognized option|illegal option' >/dev/null ; then
1012         _ac_ld_flag_supported=no
1013       fi
1014     fi
1015     rm -f conftest.c conftest.o conftest
1016   fi
1017
1018   AC_MSG_RESULT($_ac_ld_flag_supported)
1019   if test "$_ac_ld_flag_supported" = "yes" ; then
1020     return 0
1021   else
1022     return 1
1023   fi
1024 }
1025
1026 # Don't bother with -Werror on Windows for now, too many warnings
1027 if test x$dbus_win != xyes -a x$USE_MAINTAINER_MODE = xyes; then
1028   if cc_supports_flag "-Werror"; then
1029     CFLAGS="$CFLAGS -Werror"
1030   fi
1031 fi
1032
1033 if test "x$GCC" = "xyes"; then
1034   changequote(,)dnl
1035   case " $CFLAGS " in
1036   *[\ \ ]-Wall[\ \      ]*) ;;
1037   *) CFLAGS="$CFLAGS -Wall" ;;
1038   esac
1039
1040   case " $CFLAGS " in
1041   *[\ \ ]-Wchar-subscripts[\ \  ]*) ;;
1042   *) CFLAGS="$CFLAGS -Wchar-subscripts" ;;
1043   esac
1044
1045   case " $CFLAGS " in
1046   *[\ \ ]-Wmissing-declarations[\ \     ]*) ;;
1047   *) CFLAGS="$CFLAGS -Wmissing-declarations" ;;
1048   esac
1049
1050   case " $CFLAGS " in
1051   *[\ \ ]-Wmissing-prototypes[\ \       ]*) ;;
1052   *) CFLAGS="$CFLAGS -Wmissing-prototypes" ;;
1053   esac
1054
1055   case " $CFLAGS " in
1056   *[\ \ ]-Wnested-externs[\ \   ]*) ;;
1057   *) CFLAGS="$CFLAGS -Wnested-externs" ;;
1058   esac
1059
1060   case " $CFLAGS " in
1061   *[\ \ ]-Wpointer-arith[\ \    ]*) ;;
1062   *) CFLAGS="$CFLAGS -Wpointer-arith" ;;
1063   esac
1064
1065   case " $CFLAGS " in
1066   *[\ \ ]-Wcast-align[\ \       ]*) ;;
1067   *) CFLAGS="$CFLAGS -Wcast-align" ;;
1068   esac
1069
1070   case " $CFLAGS " in
1071   *[\ \ ]-Wfloat-equal[\ \      ]*) ;;
1072   *) if cc_supports_flag -Wfloat-equals; then
1073         CFLAGS="$CFLAGS -Wfloat-equal" 
1074      fi
1075      ;;
1076   esac
1077
1078   case " $CFLAGS " in
1079   *[\ \ ]-Wdeclaration-after-statement[\ \      ]*) ;;
1080   *) if cc_supports_flag -Wdeclaration-after-statement; then
1081         CFLAGS="$CFLAGS -Wdeclaration-after-statement"
1082      fi
1083      ;;
1084   esac
1085
1086   case " $CFLAGS " in
1087   *[\ \ ]-fno-common[\ \        ]*) ;;
1088   *) if cc_supports_flag -fno-common; then
1089         CFLAGS="$CFLAGS -fno-common"
1090      fi
1091      ;;
1092   esac
1093
1094   case " $CFLAGS " in
1095   *[\ \ ]-fPIC[\ \      ]*) ;;
1096   *) if test x$dbus_win = xno && cc_supports_flag -fPIC; then
1097         PIC_CFLAGS="-fPIC"
1098         if ld_supports_flag -z,relro; then
1099            PIC_LDFLAGS="-Wl,-z,relro"
1100         fi
1101      fi
1102      ;;
1103   esac
1104
1105   case " $CFLAGS " in
1106   *[\ \ ]-fPIE[\ \      ]*) ;;
1107   *) if test x$dbus_win = xno && cc_supports_flag -fPIE; then
1108         PIE_CFLAGS="-fPIE"
1109         if ld_supports_flag -z,relro; then
1110            PIE_LDFLAGS="-pie -Wl,-z,relro"
1111         else
1112            PIE_LDFLAGS="-pie"
1113         fi
1114      fi
1115      ;;
1116   esac
1117   
1118   ### Disabled warnings, and compiler flag overrides
1119   
1120   # Let's just ignore unused for now
1121   case " $CFLAGS " in
1122   *[\ \ ]-Wno-unused[\ \        ]*) ;;
1123   *) CFLAGS="$CFLAGS -Wno-unused" ;;
1124   esac  
1125   
1126   # This group is for warnings we currently don't pass.
1127   # We would like to, however.  Please fix.
1128   
1129   # http://bugs.freedesktop.org/show_bug.cgi?id=17433
1130   case " $CFLAGS " in
1131   *[\ \ ]-Wno-sign-compare[\ \  ]*) ;;
1132   *) CFLAGS="$CFLAGS -Wno-sign-compare" ;;
1133   esac
1134   case " $CFLAGS " in
1135   *[\ \ ]-Wno-pointer-sign[\ \  ]*) ;;
1136   *) if cc_supports_flag -Wno-pointer-sign; then
1137         CFLAGS="$CFLAGS -Wno-pointer-sign"
1138      fi
1139      ;;
1140   esac  
1141   
1142   # http://bugs.freedesktop.org/show_bug.cgi?id=19195
1143   case " $CFLAGS " in
1144   *[\ \ ]-Wno-format[\ \        ]*) ;;
1145   *) CFLAGS="$CFLAGS -Wno-format" ;;
1146   esac
1147   
1148   # This one is special - it's not a warning override.
1149   # http://bugs.freedesktop.org/show_bug.cgi?id=10599
1150   case " $CFLAGS " in
1151   *[\ \ ]-fno-strict-aliasing[\ \       ]*) ;;
1152   *) CFLAGS="$CFLAGS -fno-strict-aliasing" ;;
1153   esac
1154   ### End disabled warnings
1155
1156   if test "x$enable_ansi" = "xyes"; then
1157     case " $CFLAGS " in
1158     *[\ \       ]-ansi[\ \      ]*) ;;
1159     *) CFLAGS="$CFLAGS -ansi" ;;
1160     esac
1161
1162     case " $CFLAGS " in
1163     *[\ \       ]-D_POSIX_C_SOURCE*) ;;
1164     *) CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=199309L" ;;
1165     esac
1166
1167     case " $CFLAGS " in
1168     *[\ \       ]-D_BSD_SOURCE[\ \      ]*) ;;
1169     *) CFLAGS="$CFLAGS -D_BSD_SOURCE" ;;
1170     esac
1171
1172     case " $CFLAGS " in
1173     *[\ \       ]-pedantic[\ \  ]*) ;;
1174     *) CFLAGS="$CFLAGS -pedantic" ;;
1175     esac    
1176   fi
1177   if test x$enable_gcov = xyes; then
1178     case " $CFLAGS " in
1179     *[\ \       ]-fprofile-arcs[\ \     ]*) ;;
1180     *) CFLAGS="$CFLAGS -fprofile-arcs" ;;
1181     esac
1182     case " $CFLAGS " in
1183     *[\ \       ]-ftest-coverage[\ \    ]*) ;;
1184     *) CFLAGS="$CFLAGS -ftest-coverage" ;;
1185     esac
1186
1187     ## remove optimization
1188     CFLAGS=`echo "$CFLAGS" | sed -e 's/-O[0-9]*//g'`
1189   fi
1190   changequote([,])dnl
1191 else
1192   if test x$enable_gcov = xyes; then
1193     AC_MSG_ERROR([--enable-gcov can only be used with gcc])
1194   fi
1195 fi
1196
1197 AC_SUBST(PIC_CFLAGS)
1198 AC_SUBST(PIC_LDFLAGS)  
1199 AC_SUBST(PIE_CFLAGS)
1200 AC_SUBST(PIE_LDFLAGS)  
1201
1202 if ld_supports_flag --gc-sections; then
1203   SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
1204   CFLAGS="-ffunction-sections -fdata-sections $CFLAGS"
1205 fi
1206 AC_SUBST(SECTION_FLAGS)
1207 AC_SUBST(SECTION_LDFLAGS)
1208 AC_MSG_RESULT($ac_gcsections)
1209
1210 # Add -D_POSIX_PTHREAD_SEMANTICS if on Solaris
1211 #
1212 case $host_os in
1213     solaris*)
1214        CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS" ;;
1215 esac
1216     
1217 changequote(,)dnl
1218 # compress spaces in flags
1219 CFLAGS=`echo "$CFLAGS" | sed -e 's/ +/ /g'`
1220 CXXFLAGS=`echo "$CXXFLAGS" | sed -e 's/ +/ /g'`
1221 CPPFLAGS=`echo "$CPPFLAGS" | sed -e 's/ +/ /g'`
1222 changequote([,])dnl
1223
1224 ### Doxygen Documentation
1225
1226 AC_PATH_PROG(DOXYGEN, doxygen, no)
1227
1228 AC_MSG_CHECKING([whether to build Doxygen documentation])
1229
1230 if test x$DOXYGEN = xno ; then
1231     have_doxygen=no
1232 else
1233     have_doxygen=yes
1234 fi
1235
1236 if test x$enable_doxygen_docs = xauto ; then
1237     if test x$have_doxygen = xno ; then
1238         enable_doxygen_docs=no
1239     else
1240         enable_doxygen_docs=yes
1241     fi
1242 fi
1243
1244 if test x$enable_doxygen_docs = xyes; then
1245     if test x$have_doxygen = xno; then
1246         AC_MSG_ERROR([Building Doxygen docs explicitly required, but Doxygen not found])
1247     fi
1248 fi
1249
1250 AM_CONDITIONAL(DBUS_DOXYGEN_DOCS_ENABLED, test x$enable_doxygen_docs = xyes)
1251 AC_MSG_RESULT(yes)
1252
1253 ### XML Documentation
1254
1255 AC_PATH_PROG(XMLTO, xmlto, no)
1256
1257 AC_MSG_CHECKING([whether to build XML documentation])
1258
1259 if test x$XMLTO = xno ; then
1260     have_xmlto=no
1261 else
1262     have_xmlto=yes
1263 fi
1264
1265 if test x$enable_xml_docs = xauto ; then
1266     if test x$have_xmlto = xno ; then
1267         enable_xml_docs=no
1268     else
1269         enable_xml_docs=yes
1270     fi
1271 fi
1272
1273 if test x$enable_xml_docs = xyes; then
1274     if test x$have_xmlto = xno; then
1275         AC_MSG_ERROR([Building XML docs explicitly required, but xmlto not found])
1276     fi
1277 fi
1278
1279 AM_CONDITIONAL(DBUS_XML_DOCS_ENABLED, test x$enable_xml_docs = xyes)
1280 AC_MSG_RESULT(yes)
1281
1282 #### Have to go $localstatedir->$prefix/var->/usr/local/var
1283
1284 #### find the actual value for $prefix that we'll end up with
1285 ##   (I know this is broken and should be done in the Makefile, but
1286 ##    that's a major pain and almost nobody actually seems to care)
1287 AS_AC_EXPAND(EXPANDED_LOCALSTATEDIR, "$localstatedir")
1288 AS_AC_EXPAND(EXPANDED_SYSCONFDIR, "$sysconfdir")
1289 AS_AC_EXPAND(EXPANDED_BINDIR, "$bindir")
1290 AS_AC_EXPAND(EXPANDED_LIBDIR, "$libdir")
1291 AS_AC_EXPAND(EXPANDED_LIBEXECDIR, "$libexecdir")
1292 AS_AC_EXPAND(EXPANDED_DATADIR, "$datadir")
1293
1294 #### Check our operating system
1295 operating_system=unknown
1296 if test -f /etc/redhat-release || test -f $EXPANDED_SYSCONFDIR/redhat-release ; then
1297    operating_system=redhat
1298 fi
1299
1300 if test -f /etc/slackware-version || test -f $EXPANDED_SYSCONFDIR/slackware-version ; then
1301    operating_system=slackware
1302 fi
1303
1304 #### Sort out init scripts
1305
1306 if test x$with_init_scripts = x; then
1307     if test xredhat = x$operating_system ; then
1308         with_init_scripts=redhat
1309     else
1310         if test xslackware = x$operating_system ; then
1311                 with_init_scripts=slackware
1312             else
1313                 with_init_scripts=none
1314         fi
1315     fi
1316 fi
1317
1318 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_RED_HAT, test x$with_init_scripts = xredhat)
1319
1320 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_SLACKWARE, test x$with_init_scripts = xslackware)
1321
1322 ##### Set up location for system bus socket
1323 if ! test -z "$with_system_socket"; then
1324    DBUS_SYSTEM_SOCKET=$with_system_socket
1325 else
1326    DBUS_SYSTEM_SOCKET=${EXPANDED_LOCALSTATEDIR}/run/dbus/system_bus_socket
1327 fi
1328
1329 AC_SUBST(DBUS_SYSTEM_SOCKET)
1330 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_SOCKET,"$DBUS_SYSTEM_SOCKET",[The name of the socket the system bus listens on by default])
1331
1332 ## system bus only listens on local domain sockets, and never 
1333 ## on an abstract socket (so only root can create the socket)
1334 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS="unix:path=$DBUS_SYSTEM_SOCKET"
1335 AC_SUBST(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS)
1336 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS, "$DBUS_SYSTEM_BUS_DEFAULT_ADDRESS",[The default D-Bus address of the system bus])
1337
1338 #### Set up the pid file
1339 if ! test -z "$with_system_pid_file"; then
1340    DBUS_SYSTEM_PID_FILE=$with_system_pid_file
1341 elif test x$with_init_scripts = xredhat ; then
1342    DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/messagebus.pid
1343 else
1344    DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/dbus/pid
1345 fi
1346
1347 AC_SUBST(DBUS_SYSTEM_PID_FILE)
1348
1349 #### Directory to check for console ownership
1350 if ! test -z "$with_console_auth_dir"; then
1351    DBUS_CONSOLE_AUTH_DIR=$with_console_auth_dir
1352 else
1353    DBUS_CONSOLE_AUTH_DIR=/var/run/console/
1354 fi
1355
1356 AC_SUBST(DBUS_CONSOLE_AUTH_DIR)
1357 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_AUTH_DIR, "$DBUS_CONSOLE_AUTH_DIR", [Directory to check for console ownerhip])
1358
1359 #### File to check for console ownership
1360 if test x$have_console_owner_file = xyes; then
1361    if ! test -z "$with_console_owner_file"; then
1362       DBUS_CONSOLE_OWNER_FILE=$with_console_owner_file
1363    else
1364       DBUS_CONSOLE_OWNER_FILE=/dev/console
1365    fi
1366 else
1367   DBUS_CONSOLE_OWNER_FILE=
1368 fi
1369
1370 AC_SUBST(DBUS_CONSOLE_OWNER_FILE)
1371 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_OWNER_FILE, "$DBUS_CONSOLE_OWNER_FILE", [File to check for console ownerhip])
1372
1373 #### User to start the system bus as
1374 if test -z "$with_dbus_user" ; then
1375     DBUS_USER=messagebus
1376 else
1377     DBUS_USER=$with_dbus_user
1378 fi
1379 AC_SUBST(DBUS_USER)
1380 AC_DEFINE_UNQUOTED(DBUS_USER,"$DBUS_USER", [User for running the system BUS daemon])
1381
1382 #### Direcotry to install data files into
1383 DBUS_DATADIR=$EXPANDED_DATADIR
1384 AC_SUBST(DBUS_DATADIR)
1385 AC_DEFINE_UNQUOTED(DBUS_DATADIR,"$DBUS_DATADIR", [Directory for installing DBUS data files])
1386
1387 #### Directory to install dbus-daemon
1388 if test -z "$with_dbus_daemondir" ; then
1389     DBUS_DAEMONDIR=$EXPANDED_BINDIR
1390 else
1391     DBUS_DAEMONDIR=$with_dbus_daemondir
1392 fi
1393 AC_SUBST(DBUS_DAEMONDIR)
1394 AC_DEFINE_UNQUOTED(DBUS_DAEMONDIR,"$DBUS_DAEMONDIR", [Directory for installing the DBUS daemon])
1395
1396 #### Directory to install the other binaries
1397 DBUS_BINDIR="$EXPANDED_BINDIR"
1398 AC_SUBST(DBUS_BINDIR)
1399 AC_DEFINE_UNQUOTED(DBUS_BINDIR,"$DBUS_BINDIR", [Directory for installing the binaries])
1400
1401 #### Directory to install the libexec binaries
1402 DBUS_LIBEXECDIR="$EXPANDED_LIBEXECDIR"
1403 AC_SUBST(DBUS_LIBEXECDIR)
1404 AC_DEFINE_UNQUOTED(DBUS_LIBEXECDIR,"$DBUS_LIBEXECDIR", [Directory for installing the libexec binaries])
1405
1406 #### Tell tests where to find certain stuff in builddir
1407
1408 DBUS_PWD=`pwd`
1409 # Useful in a cross-compilation environment, where the tests are run on the host system.
1410 AC_ARG_WITH(dbus-test-dir, AS_HELP_STRING([--with-dbus-test-dir=[dirname]],[path where the tests tools are available]),
1411                            DBUS_PWD=$withval)
1412 AC_DEFUN([TEST_PATH], [
1413 TEST_$1=${DBUS_PWD}/test/$2
1414 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1",
1415                    [Full path to test file test/$2 in builddir])
1416 AC_SUBST(TEST_$1)
1417 ])
1418 AC_DEFUN([TEST_PROG], [
1419 TEST_$1=${DBUS_PWD}/test/$2
1420 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1$EXEEXT",
1421                    [Full path to test file test/$2 in builddir])
1422 AC_SUBST(TEST_$1)
1423 ])
1424
1425 TEST_PATH(VALID_SERVICE_DIR, data/valid-service-files)
1426 TEST_PATH(INVALID_SERVICE_DIR, data/invalid-service-files)
1427 TEST_PATH(VALID_SERVICE_SYSTEM_DIR, data/valid-service-files-system)
1428 TEST_PATH(INVALID_SERVICE_SYSTEM_DIR, data/invalid-service-files-system)
1429 TEST_PROG(SERVICE_BINARY, test-service)
1430 TEST_PROG(SHELL_SERVICE_BINARY, test-shell-service)
1431 TEST_PROG(EXIT_BINARY, test-exit)
1432 TEST_PROG(SEGFAULT_BINARY, test-segfault)
1433 TEST_PROG(SLEEP_FOREVER_BINARY, test-sleep-forever)
1434 TEST_PROG(PRIVSERVER_BINARY, name-test/test-privserver)
1435
1436 AC_DEFINE_UNQUOTED(TEST_BUS_BINARY, "$DBUS_PWD/bus/dbus-daemon$EXEEXT",
1437                    [Full path to the daemon in the builddir])
1438 AC_SUBST(TEST_BUS_BINARY)
1439
1440 ## Export the non-setuid external helper
1441 TEST_LAUNCH_HELPER_BINARY="$DBUS_PWD/bus/dbus-daemon-launch-helper-test$EXEEXT"
1442 AC_SUBST(TEST_LAUNCH_HELPER_BINARY)
1443 AC_DEFINE_UNQUOTED(DBUS_TEST_LAUNCH_HELPER_BINARY, "$TEST_LAUNCH_HELPER_BINARY",
1444                    [Full path to the launch helper test program in the builddir])
1445
1446 #### Find socket directories
1447 if ! test -z "$TMPDIR" ; then
1448    DEFAULT_SOCKET_DIR=$TMPDIR
1449 elif ! test -z "$TEMP" ; then
1450    DEFAULT_SOCKET_DIR=$TEMP
1451 elif ! test -z "$TMP" ; then
1452    DEFAULT_SOCKET_DIR=$TMP
1453 else
1454    DEFAULT_SOCKET_DIR=/tmp
1455 fi
1456
1457 if ! test -z "$with_test_socket_dir" ; then
1458    TEST_SOCKET_DIR="$with_test_socket_dir"
1459 else
1460    TEST_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1461 fi
1462 AC_SUBST(TEST_SOCKET_DIR)
1463 AC_DEFINE_UNQUOTED(DBUS_TEST_SOCKET_DIR, "$TEST_SOCKET_DIR", [Where to put test sockets])
1464
1465 if ! test -z "$with_session_socket_dir" ; then
1466    DBUS_SESSION_SOCKET_DIR="$with_session_socket_dir"
1467 else
1468    DBUS_SESSION_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1469 fi
1470 AC_DEFINE_UNQUOTED(DBUS_SESSION_SOCKET_DIR, "$DBUS_SESSION_SOCKET_DIR", [Where per-session bus puts its sockets])
1471 AC_SUBST(DBUS_SESSION_SOCKET_DIR)
1472
1473 if test x$dbus_win = xyes; then
1474         DBUS_SESSION_BUS_DEFAULT_ADDRESS="nonce-tcp:"
1475 else
1476         DBUS_SESSION_BUS_DEFAULT_ADDRESS="unix:tmpdir=$DBUS_SESSION_SOCKET_DIR"
1477 fi
1478 AC_SUBST(DBUS_SESSION_BUS_DEFAULT_ADDRESS)
1479
1480 # darwin needs this to initialize the environment
1481 AC_CHECK_HEADERS(crt_externs.h)
1482 AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])])
1483 AH_VERBATIM(_DARWIN_ENVIRON,
1484 [
1485 #if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
1486 # include <sys/time.h>
1487 # include <crt_externs.h>
1488 # define environ (*_NSGetEnviron())
1489 #endif
1490 ])
1491
1492 AC_OUTPUT([
1493 Doxyfile
1494 dbus/versioninfo.rc
1495 dbus/dbus-arch-deps.h
1496 bus/system.conf
1497 bus/session.conf
1498 bus/messagebus
1499 bus/rc.messagebus
1500 bus/dbus-daemon.1
1501 Makefile
1502 dbus/Makefile
1503 bus/Makefile
1504 tools/Makefile
1505 test/Makefile
1506 test/name-test/Makefile
1507 doc/Makefile
1508 dbus-1.pc
1509 test/data/valid-config-files/debug-allow-all.conf
1510 test/data/valid-config-files/debug-allow-all-sha1.conf
1511 test/data/valid-config-files-system/debug-allow-all-pass.conf
1512 test/data/valid-config-files-system/debug-allow-all-fail.conf
1513 test/data/valid-service-files/org.freedesktop.DBus.TestSuite.PrivServer.service
1514 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteEchoService.service
1515 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteForkingEchoService.service
1516 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteSegfaultService.service
1517 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service
1518 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service
1519 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteEchoService.service
1520 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteSegfaultService.service
1521 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service
1522 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service
1523 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoExec.service
1524 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoUser.service
1525 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoService.service
1526 ])
1527
1528 dnl ==========================================================================
1529 echo "
1530                     D-Bus $VERSION
1531                   ==============
1532
1533         prefix:                   ${prefix}
1534         exec_prefix:              ${exec_prefix}
1535         libdir:                   ${EXPANDED_LIBDIR}
1536         libexecdir:               ${EXPANDED_LIBEXECDIR}
1537         bindir:                   ${EXPANDED_BINDIR}
1538         sysconfdir:               ${EXPANDED_SYSCONFDIR}
1539         localstatedir:            ${EXPANDED_LOCALSTATEDIR}
1540         datadir:                  ${EXPANDED_DATADIR}
1541         source code location:     ${srcdir}
1542         compiler:                 ${CC}
1543         cflags:                   ${CFLAGS}
1544         cppflags:                 ${CPPFLAGS}
1545         cxxflags:                 ${CXXFLAGS}
1546         64-bit int:               ${DBUS_INT64_TYPE}
1547         32-bit int:               ${DBUS_INT32_TYPE}
1548         16-bit int:               ${DBUS_INT16_TYPE}
1549         Doxygen:                  ${DOXYGEN}
1550         xmlto:                    ${XMLTO}"
1551
1552 echo "
1553         Maintainer mode:          ${USE_MAINTAINER_MODE}
1554         gcc coverage profiling:   ${enable_gcov}
1555         Building unit tests:      ${enable_tests}
1556         Building verbose mode:    ${enable_verbose_mode}
1557         Building assertions:      ${enable_asserts}
1558         Building checks:          ${enable_checks}
1559         Building SELinux support: ${have_selinux}
1560         Building inotify support: ${have_inotify}
1561         Building dnotify support: ${have_dnotify}
1562         Building kqueue support:  ${have_kqueue}
1563         Building X11 code:        ${enable_x11}
1564         Building Doxygen docs:    ${enable_doxygen_docs}
1565         Building XML docs:        ${enable_xml_docs}
1566         Building cache support:   ${enable_userdb_cache}
1567         Gettext libs (empty OK):  ${INTLLIBS}
1568         Using XML parser:         ${with_xml}
1569         Init scripts style:       ${with_init_scripts}
1570         Abstract socket names:    ${ac_cv_have_abstract_sockets}
1571         System bus socket:        ${DBUS_SYSTEM_SOCKET}
1572         System bus address:       ${DBUS_SYSTEM_BUS_DEFAULT_ADDRESS}
1573         System bus PID file:      ${DBUS_SYSTEM_PID_FILE}
1574         Session bus address:      ${DBUS_SESSION_BUS_DEFAULT_ADDRESS}
1575         Console auth dir:         ${DBUS_CONSOLE_AUTH_DIR}
1576         Console owner file:       ${have_console_owner_file}
1577         Console owner file path:  ${DBUS_CONSOLE_OWNER_FILE}
1578         System bus user:          ${DBUS_USER}
1579         Session bus services dir: ${EXPANDED_DATADIR}/dbus-1/services
1580         'make check' socket dir:  ${TEST_SOCKET_DIR}
1581 "
1582
1583 if test x$enable_tests = xyes; then
1584         echo "NOTE: building with unit tests increases the size of the installed library and renders it insecure."
1585 fi
1586 if test x$enable_tests = xyes -a x$enable_asserts = xno; then
1587         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)"
1588 fi
1589 if test x$enable_gcov = xyes; then
1590         echo "NOTE: building with coverage profiling is definitely for developers only."
1591 fi
1592 if test x$enable_verbose_mode = xyes; then
1593         echo "NOTE: building with verbose mode increases library size, may slightly increase security risk, and decreases performance."
1594 fi
1595 if test x$enable_asserts = xyes; then
1596         echo "NOTE: building with assertions increases library size and decreases performance."
1597 fi
1598 if test x$enable_checks = xno; then
1599         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."
1600 fi
1601 if test x$dbus_use_libxml = xtrue; then
1602         echo
1603         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)."
1604 fi