Revert all changes since a36d4918a6f646e085
[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], [17])
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=8
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.22, gio-2.0 >= 2.22],
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   [unused \
1236    sign-compare \
1237    pointer-sign \
1238   ])
1239
1240 if test "x$GCC" = "xyes"; then
1241   # We're treating -fno-common like a warning: it makes the linker more
1242   # strict, because on some systems the linker is *always* this strict
1243   TP_ADD_COMPILER_FLAG([WARNING_CFLAGS], [-fno-common])
1244
1245   # http://bugs.freedesktop.org/show_bug.cgi?id=10599
1246   TP_ADD_COMPILER_FLAG([WARNING_CFLAGS], [-fno-strict-aliasing])
1247
1248   if test "x$enable_ansi" = "xyes"; then
1249     TP_ADD_COMPILER_FLAG([WARNING_CFLAGS],
1250       [-ansi -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE -pedantic])
1251   fi
1252 fi
1253
1254 dnl In principle we should put WARNING_CFLAGS in each Makefile.am like
1255 dnl telepathy-glib does, since CFLAGS is meant to be reserved for the user...
1256 dnl but prepending to CFLAGS (so the user can override it with later CFLAGS)
1257 dnl is the next best thing
1258 CFLAGS="$WARNING_CFLAGS $CFLAGS"
1259
1260 case $host_os in
1261     solaris*)
1262         # Solaris' C library apparently needs these runes to be threadsafe...
1263         CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT"
1264         # ... and this opt-in to get file descriptor passing support
1265         CFLAGS="$CFLAGS -D_XOPEN_SOURCE=500"
1266         ;;
1267 esac
1268
1269 ### Doxygen Documentation
1270
1271 AC_PATH_PROG(DOXYGEN, doxygen, no)
1272
1273 AC_MSG_CHECKING([whether to build Doxygen documentation])
1274
1275 if test x$DOXYGEN = xno ; then
1276     have_doxygen=no
1277 else
1278     have_doxygen=yes
1279 fi
1280
1281 if test x$enable_doxygen_docs = xauto ; then
1282     if test x$have_doxygen = xno ; then
1283         enable_doxygen_docs=no
1284     else
1285         enable_doxygen_docs=yes
1286     fi
1287 fi
1288
1289 if test x$enable_doxygen_docs = xyes; then
1290     if test x$have_doxygen = xno; then
1291         AC_MSG_ERROR([Building Doxygen docs explicitly required, but Doxygen not found])
1292     fi
1293 fi
1294
1295 AM_CONDITIONAL(DBUS_DOXYGEN_DOCS_ENABLED, test x$enable_doxygen_docs = xyes)
1296 AC_MSG_RESULT($enable_doxygen_docs)
1297
1298 AC_CHECK_PROGS([XSLTPROC], [xsltproc])
1299 AM_CONDITIONAL([DBUS_HAVE_XSLTPROC], [test "x$XSLTPROC" != "x"])
1300
1301 ### XML Documentation
1302
1303 AC_PATH_PROG(XMLTO, xmlto, no)
1304
1305 AC_MSG_CHECKING([whether to build XML documentation])
1306
1307 if test x$XMLTO = xno ; then
1308     have_xmlto=no
1309 else
1310     have_xmlto=yes
1311 fi
1312
1313 if test x$enable_xml_docs = xauto ; then
1314     if test x$have_xmlto = xno ; then
1315         enable_xml_docs=no
1316     else
1317         enable_xml_docs=yes
1318     fi
1319 fi
1320
1321 if test x$enable_xml_docs = xyes; then
1322     if test x$have_xmlto = xno; then
1323         AC_MSG_ERROR([Building XML docs explicitly required, but xmlto not found])
1324     fi
1325 fi
1326
1327 AM_CONDITIONAL(DBUS_XML_DOCS_ENABLED, test x$enable_xml_docs = xyes)
1328 AC_MSG_RESULT($enable_xml_docs)
1329
1330 AC_PATH_PROG([MAN2HTML], [man2html])
1331 AC_ARG_VAR([MAN2HTML], [Path to man2html (optional)])
1332 AM_CONDITIONAL(DBUS_HAVE_MAN2HTML, test x$MAN2HTML != x)
1333
1334 AM_CONDITIONAL(DBUS_CAN_UPLOAD_DOCS,
1335     test x$enable_doxygen_docs = xyes -a x$enable_xml_docs = xyes -a \
1336          x$MAN2HTML != x)
1337
1338 #### Have to go $localstatedir->$prefix/var->/usr/local/var
1339
1340 #### find the actual value for $prefix that we'll end up with
1341 ##   (I know this is broken and should be done in the Makefile, but
1342 ##    that's a major pain and almost nobody actually seems to care)
1343 AS_AC_EXPAND(EXPANDED_PREFIX, "$prefix")
1344 AS_AC_EXPAND(EXPANDED_LOCALSTATEDIR, "$localstatedir")
1345 AS_AC_EXPAND(EXPANDED_SYSCONFDIR, "$sysconfdir")
1346 AS_AC_EXPAND(EXPANDED_BINDIR, "$bindir")
1347 AS_AC_EXPAND(EXPANDED_LIBDIR, "$libdir")
1348 AS_AC_EXPAND(EXPANDED_LIBEXECDIR, "$libexecdir")
1349 AS_AC_EXPAND(EXPANDED_DATADIR, "$datadir")
1350
1351 #### Check our operating system
1352 operating_system=unknown
1353 if test -f /etc/redhat-release || test -f $EXPANDED_SYSCONFDIR/redhat-release ; then
1354    operating_system=redhat
1355 fi
1356
1357 if test -f /etc/slackware-version || test -f $EXPANDED_SYSCONFDIR/slackware-version ; then
1358    operating_system=slackware
1359 fi
1360
1361 if test -f /usr/bin/cygwin1.dll || test -f $EXPANDED_BINDIR/cygwin1.dll ; then
1362    operating_system=cygwin
1363 fi
1364
1365 #### Sort out init scripts
1366
1367 if test x$with_init_scripts = x; then
1368     case x$operating_system in
1369         xredhat)        with_init_scripts=redhat ;;
1370         xslackware)     with_init_scripts=slackware ;;
1371         xcygwin)        with_init_scripts=cygwin ;;
1372         *)                      with_init_scripts=none ;;
1373     esac
1374 fi
1375
1376 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_RED_HAT, test x$with_init_scripts = xredhat)
1377 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_SLACKWARE, test x$with_init_scripts = xslackware)
1378 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_CYGWIN, test x$with_init_scripts = xcygwin)
1379
1380 ##### systemd unit files
1381 AC_ARG_WITH([systemdsystemunitdir],
1382 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
1383     [],
1384     [
1385     PKG_CHECK_EXISTS([systemd],
1386       [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)],
1387       [with_systemdsystemunitdir=no])
1388     ])
1389 if test "x$with_systemdsystemunitdir" != xno; then
1390    AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
1391 fi
1392 AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])
1393
1394 ##### Set up location for system bus socket
1395 if ! test -z "$with_system_socket"; then
1396    DBUS_SYSTEM_SOCKET=$with_system_socket
1397 else
1398    DBUS_SYSTEM_SOCKET=${EXPANDED_LOCALSTATEDIR}/run/dbus/system_bus_socket
1399 fi
1400
1401 AC_SUBST(DBUS_SYSTEM_SOCKET)
1402 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_SOCKET,"$DBUS_SYSTEM_SOCKET",[The name of the socket the system bus listens on by default])
1403
1404 ## system bus only listens on local domain sockets, and never
1405 ## on an abstract socket (so only root can create the socket)
1406 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS="unix:path=$DBUS_SYSTEM_SOCKET"
1407 AC_SUBST(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS)
1408 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS, "$DBUS_SYSTEM_BUS_DEFAULT_ADDRESS",[The default D-Bus address of the system bus])
1409
1410 #### Set up the pid file
1411 if ! test -z "$with_system_pid_file"; then
1412    DBUS_SYSTEM_PID_FILE=$with_system_pid_file
1413 elif test x$with_init_scripts = xredhat ; then
1414    DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/messagebus.pid
1415 else
1416    DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/dbus/pid
1417 fi
1418
1419 AC_SUBST(DBUS_SYSTEM_PID_FILE)
1420
1421 #### Directory to check for console ownership
1422 if ! test -z "$with_console_auth_dir"; then
1423    DBUS_CONSOLE_AUTH_DIR=$with_console_auth_dir
1424 else
1425    DBUS_CONSOLE_AUTH_DIR=/var/run/console/
1426 fi
1427
1428 AC_SUBST(DBUS_CONSOLE_AUTH_DIR)
1429 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_AUTH_DIR, "$DBUS_CONSOLE_AUTH_DIR", [Directory to check for console ownerhip])
1430
1431 #### File to check for console ownership
1432 if test x$have_console_owner_file = xyes; then
1433    if ! test -z "$with_console_owner_file"; then
1434       DBUS_CONSOLE_OWNER_FILE=$with_console_owner_file
1435    else
1436       DBUS_CONSOLE_OWNER_FILE=/dev/console
1437    fi
1438 else
1439   DBUS_CONSOLE_OWNER_FILE=
1440 fi
1441
1442 AC_SUBST(DBUS_CONSOLE_OWNER_FILE)
1443 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_OWNER_FILE, "$DBUS_CONSOLE_OWNER_FILE", [File to check for console ownerhip])
1444
1445 #### User to start the system bus as
1446 if test -z "$with_dbus_user" ; then
1447     DBUS_USER=messagebus
1448 else
1449     DBUS_USER=$with_dbus_user
1450 fi
1451 AC_SUBST(DBUS_USER)
1452 AC_DEFINE_UNQUOTED(DBUS_USER,"$DBUS_USER", [User for running the system BUS daemon])
1453
1454 #### Prefix to install into
1455 DBUS_PREFIX=$EXPANDED_PREFIX
1456 AC_SUBST(DBUS_PREFIX)
1457 AC_DEFINE_UNQUOTED(DBUS_PREFIX,"$DBUS_PREFIX", [Prefix for installing DBUS])
1458
1459 #### Direcotry to install data files into
1460 DBUS_DATADIR=$EXPANDED_DATADIR
1461 AC_SUBST(DBUS_DATADIR)
1462 AC_DEFINE_UNQUOTED(DBUS_DATADIR,"$DBUS_DATADIR", [Directory for installing DBUS data files])
1463
1464 #### Directory to install dbus-daemon
1465 if test -z "$with_dbus_daemondir" ; then
1466     DBUS_DAEMONDIR=$EXPANDED_BINDIR
1467 else
1468     DBUS_DAEMONDIR=$with_dbus_daemondir
1469 fi
1470 AC_SUBST(DBUS_DAEMONDIR)
1471 AC_DEFINE_UNQUOTED(DBUS_DAEMONDIR,"$DBUS_DAEMONDIR", [Directory for installing the DBUS daemon])
1472
1473 #### Directory to install the other binaries
1474 DBUS_BINDIR="$EXPANDED_BINDIR"
1475 AC_SUBST(DBUS_BINDIR)
1476 AC_DEFINE_UNQUOTED(DBUS_BINDIR,"$DBUS_BINDIR", [Directory for installing the binaries])
1477
1478 #### Directory to install the libexec binaries
1479 DBUS_LIBEXECDIR="$EXPANDED_LIBEXECDIR"
1480 AC_SUBST(DBUS_LIBEXECDIR)
1481 AC_DEFINE_UNQUOTED(DBUS_LIBEXECDIR,"$DBUS_LIBEXECDIR", [Directory for installing the libexec binaries])
1482
1483 #### Tell tests where to find certain stuff in builddir
1484
1485 DBUS_PWD=`pwd`
1486 # Useful in a cross-compilation environment, where the tests are run on the host system.
1487 AC_ARG_WITH(dbus-test-dir, AS_HELP_STRING([--with-dbus-test-dir=[dirname]],[path where the tests tools are available]),
1488                            DBUS_PWD=$withval)
1489 AC_DEFUN([TEST_PATH], [
1490 TEST_$1=${DBUS_PWD}/test/$2
1491 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1",
1492                    [Full path to test file test/$2 in builddir])
1493 AC_SUBST(TEST_$1)
1494 ])
1495 AC_DEFUN([TEST_PROG], [
1496 TEST_$1=${DBUS_PWD}/test/$2
1497 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1$EXEEXT",
1498                    [Full path to test file test/$2 in builddir])
1499 AC_SUBST(TEST_$1)
1500 ])
1501
1502 TEST_PATH(VALID_SERVICE_DIR, data/valid-service-files)
1503 TEST_PATH(INVALID_SERVICE_DIR, data/invalid-service-files)
1504 TEST_PATH(VALID_SERVICE_SYSTEM_DIR, data/valid-service-files-system)
1505 TEST_PATH(INVALID_SERVICE_SYSTEM_DIR, data/invalid-service-files-system)
1506 TEST_PROG(SERVICE_BINARY, test-service)
1507 TEST_PROG(SHELL_SERVICE_BINARY, test-shell-service)
1508 TEST_PROG(EXIT_BINARY, test-exit)
1509 TEST_PROG(SEGFAULT_BINARY, test-segfault)
1510 TEST_PROG(SLEEP_FOREVER_BINARY, test-sleep-forever)
1511 TEST_PROG(PRIVSERVER_BINARY, name-test/test-privserver)
1512
1513 AC_DEFINE_UNQUOTED(TEST_BUS_BINARY, "$DBUS_PWD/bus/dbus-daemon$EXEEXT",
1514                    [Full path to the daemon in the builddir])
1515 AC_SUBST(TEST_BUS_BINARY)
1516
1517 ## Export the non-setuid external helper
1518 TEST_LAUNCH_HELPER_BINARY="$DBUS_PWD/bus/dbus-daemon-launch-helper-test$EXEEXT"
1519 AC_SUBST(TEST_LAUNCH_HELPER_BINARY)
1520 AC_DEFINE_UNQUOTED(DBUS_TEST_LAUNCH_HELPER_BINARY, "$TEST_LAUNCH_HELPER_BINARY",
1521                    [Full path to the launch helper test program in the builddir])
1522
1523 #### Find socket directories
1524 if ! test -z "$TMPDIR" ; then
1525    DEFAULT_SOCKET_DIR=$TMPDIR
1526 elif ! test -z "$TEMP" ; then
1527    DEFAULT_SOCKET_DIR=$TEMP
1528 elif ! test -z "$TMP" ; then
1529    DEFAULT_SOCKET_DIR=$TMP
1530 else
1531    DEFAULT_SOCKET_DIR=/tmp
1532 fi
1533
1534 DEFAULT_SOCKET_DIR=`echo $DEFAULT_SOCKET_DIR | sed 's/+/%2B/g'`
1535
1536 if ! test -z "$with_test_socket_dir" ; then
1537    TEST_SOCKET_DIR="$with_test_socket_dir"
1538 else
1539    TEST_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1540 fi
1541 AC_SUBST(TEST_SOCKET_DIR)
1542 AC_DEFINE_UNQUOTED(DBUS_TEST_SOCKET_DIR, "$TEST_SOCKET_DIR", [Where to put test sockets])
1543
1544 if ! test -z "$with_session_socket_dir" ; then
1545    DBUS_SESSION_SOCKET_DIR="$with_session_socket_dir"
1546 else
1547    DBUS_SESSION_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1548 fi
1549 AC_DEFINE_UNQUOTED(DBUS_SESSION_SOCKET_DIR, "$DBUS_SESSION_SOCKET_DIR", [Where per-session bus puts its sockets])
1550 AC_SUBST(DBUS_SESSION_SOCKET_DIR)
1551
1552 if test x$dbus_win = xyes; then
1553         DBUS_SESSION_BUS_DEFAULT_ADDRESS="nonce-tcp:"
1554 elif test x$have_launchd = xyes; then
1555         DBUS_SESSION_BUS_DEFAULT_ADDRESS="launchd:env=DBUS_LAUNCHD_SESSION_BUS_SOCKET"
1556 else
1557         DBUS_SESSION_BUS_DEFAULT_ADDRESS="unix:tmpdir=$DBUS_SESSION_SOCKET_DIR"
1558 fi
1559 AC_SUBST(DBUS_SESSION_BUS_DEFAULT_ADDRESS)
1560
1561 # darwin needs this to initialize the environment
1562 AC_CHECK_HEADERS(crt_externs.h)
1563 AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])])
1564 AH_VERBATIM(_DARWIN_ENVIRON,
1565 [
1566 #if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
1567 # include <sys/time.h>
1568 # include <crt_externs.h>
1569 # define environ (*_NSGetEnviron())
1570 #endif
1571 ])
1572
1573 AC_CONFIG_FILES([
1574 Doxyfile
1575 dbus/versioninfo.rc
1576 dbus/dbus-arch-deps.h
1577 bus/system.conf
1578 bus/session.conf
1579 bus/messagebus
1580 bus/messagebus-config
1581 bus/org.freedesktop.dbus-session.plist
1582 bus/rc.messagebus
1583 bus/dbus.service
1584 bus/dbus.socket
1585 Makefile
1586 dbus/Makefile
1587 bus/Makefile
1588 tools/Makefile
1589 test/Makefile
1590 test/name-test/Makefile
1591 doc/Makefile
1592 doc/dbus-daemon.1
1593 dbus-1.pc
1594 dbus-1-uninstalled.pc
1595 test/data/valid-config-files/debug-allow-all.conf
1596 test/data/valid-config-files/debug-allow-all-sha1.conf
1597 test/data/valid-config-files-system/debug-allow-all-pass.conf
1598 test/data/valid-config-files-system/debug-allow-all-fail.conf
1599 test/data/valid-service-files/org.freedesktop.DBus.TestSuite.PrivServer.service
1600 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteEchoService.service
1601 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteForkingEchoService.service
1602 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteSegfaultService.service
1603 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service
1604 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service
1605 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteEchoService.service
1606 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteSegfaultService.service
1607 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service
1608 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service
1609 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoExec.service
1610 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoUser.service
1611 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoService.service
1612 ])
1613 AC_OUTPUT
1614
1615 dnl ==========================================================================
1616 echo "
1617                     D-Bus $VERSION
1618                   ==============
1619
1620         prefix:                   ${EXPANDED_PREFIX}
1621         exec_prefix:              ${exec_prefix}
1622         libdir:                   ${EXPANDED_LIBDIR}
1623         libexecdir:               ${EXPANDED_LIBEXECDIR}
1624         bindir:                   ${EXPANDED_BINDIR}
1625         sysconfdir:               ${EXPANDED_SYSCONFDIR}
1626         localstatedir:            ${EXPANDED_LOCALSTATEDIR}
1627         datadir:                  ${EXPANDED_DATADIR}
1628         source code location:     ${srcdir}
1629         compiler:                 ${CC}
1630         cflags:                   ${CFLAGS}
1631         cppflags:                 ${CPPFLAGS}
1632         cxxflags:                 ${CXXFLAGS}
1633         64-bit int:               ${DBUS_INT64_TYPE}
1634         32-bit int:               ${DBUS_INT32_TYPE}
1635         16-bit int:               ${DBUS_INT16_TYPE}
1636         Doxygen:                  ${DOXYGEN:-not found}
1637         xmlto:                    ${XMLTO:-not found}
1638         man2html:                 ${MAN2HTML:-not found}"
1639
1640 echo "
1641         Maintainer mode:          ${USE_MAINTAINER_MODE}
1642         gcc coverage profiling:   ${enable_compiler_coverage}
1643         Building embedded tests:  ${enable_embedded_tests}
1644         Building modular tests:   ${enable_modular_tests}
1645         Building verbose mode:    ${enable_verbose_mode}
1646         Building assertions:      ${enable_asserts}
1647         Building checks:          ${enable_checks}
1648         Building SELinux support: ${have_selinux}
1649         Building inotify support: ${have_inotify}
1650         Building dnotify support: ${have_dnotify}
1651         Building kqueue support:  ${have_kqueue}
1652         Building X11 code:        ${enable_x11}
1653         Building Doxygen docs:    ${enable_doxygen_docs}
1654         Building XML docs:        ${enable_xml_docs}
1655         Building cache support:   ${enable_userdb_cache}
1656         Building launchd support: ${have_launchd}
1657         Using XML parser:         ${with_xml}
1658         Init scripts style:       ${with_init_scripts}
1659         Abstract socket names:    ${ac_cv_have_abstract_sockets}
1660         System bus socket:        ${DBUS_SYSTEM_SOCKET}
1661         System bus address:       ${DBUS_SYSTEM_BUS_DEFAULT_ADDRESS}
1662         System bus PID file:      ${DBUS_SYSTEM_PID_FILE}
1663         Session bus address:      ${DBUS_SESSION_BUS_DEFAULT_ADDRESS}
1664         Console auth dir:         ${DBUS_CONSOLE_AUTH_DIR}
1665         Console owner file:       ${have_console_owner_file}
1666         Console owner file path:  ${DBUS_CONSOLE_OWNER_FILE}
1667         System bus user:          ${DBUS_USER}
1668         Session bus services dir: ${EXPANDED_DATADIR}/dbus-1/services
1669         'make check' socket dir:  ${TEST_SOCKET_DIR}
1670 "
1671 if test x$have_launchd = xyes; then
1672         echo "        launchd agent dir:        ${LAUNCHD_AGENT_DIR}"
1673 fi
1674 echo
1675
1676 if test x$enable_embedded_tests = xyes; then
1677         echo "NOTE: building with unit tests increases the size of the installed library and renders it insecure."
1678 fi
1679 if test x$enable_embedded_tests = xyes -a x$enable_asserts = xno; then
1680         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)"
1681 fi
1682 if test x$enable_compiler_coverage = xyes; then
1683         echo "NOTE: building with coverage profiling is definitely for developers only."
1684 fi
1685 if test x$enable_verbose_mode = xyes; then
1686         echo "NOTE: building with verbose mode increases library size, may slightly increase security risk, and decreases performance."
1687 fi
1688 if test x$enable_asserts = xyes; then
1689         echo "NOTE: building with assertions increases library size and decreases performance."
1690 fi
1691 if test x$enable_checks = xno; then
1692         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."
1693 fi
1694 if test x$dbus_use_libxml = xtrue; then
1695         echo
1696         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)."
1697 fi