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