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