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