4 m4_define([dbus_major_version], [1])
5 m4_define([dbus_minor_version], [4])
6 m4_define([dbus_micro_version], [15])
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])
13 AC_CONFIG_HEADERS([config.h])
14 AC_CONFIG_MACRO_DIR([m4])
16 AM_INIT_AUTOMAKE([1.10 tar-ustar -Wno-portability])
18 GETTEXT_PACKAGE=dbus-1
19 AC_SUBST(GETTEXT_PACKAGE)
20 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[The name of the gettext domain])
22 ## must come before we use the $USE_MAINTAINER_MODE variable later
25 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
27 AC_DEFINE_UNQUOTED(DBUS_DAEMON_NAME,"dbus-daemon",[Name of executable])
29 # libtool versioning - this applies to libdbus
31 # See http://sources.redhat.com/autobook/autobook/autobook_91.html#SEC91 for details
34 ## increment if the interface has additions, changes, removals.
37 ## increment any time the source changes; set to
38 ## 0 if you increment CURRENT
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.
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
55 AC_SUBST(DBUS_MAJOR_VERSION)
56 AC_SUBST(DBUS_MINOR_VERSION)
57 AC_SUBST(DBUS_MICRO_VERSION)
58 AC_SUBST(DBUS_VERSION)
63 AC_USE_SYSTEM_EXTENSIONS
70 COMPILER_OPTIMISATIONS
74 LT_LANG([Windows Resource])
76 # Set some internal variables depending on the platform for later use.
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.])
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])
114 AC_DEFINE(DBUS_UNIX,1,[Defined if we run on a Unix-based system])
116 if test "$dbus_cygwin" = yes; then
117 AC_DEFINE(DBUS_CYGWIN,1,[Defined if we run on a cygwin API based system])
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)
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)
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]))
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 [enable_embedded_tests=$enableval; enable_modular_tests=$enableval],
169 # DBUS_ENABLE_EMBEDDED_TESTS controls unit tests built in to .c files
170 # and also some stuff in the test/ subdir. DBUS_BUILD_TESTS was an older
172 AM_CONDITIONAL([DBUS_BUILD_TESTS], [test "x$enable_embedded_tests" = xyes])
173 AM_CONDITIONAL([DBUS_ENABLE_EMBEDDED_TESTS],
174 [test "x$enable_embedded_tests" = xyes])
175 if test "x$enable_embedded_tests" = xyes; then
176 AC_DEFINE([DBUS_ENABLE_EMBEDDED_TESTS], [1],
177 [Define to build test code into the library and binaries])
178 AC_DEFINE([DBUS_BUILD_TESTS], [1],
179 [Define to build test code into the library and binaries])
182 # DBUS_ENABLE_MODULAR_TESTS controls tests that work based on public API.
183 # These use GTest, from GLib, because life's too short. They're enabled by
184 # default (unless you don't have GLib), because they don't bloat the library
186 if test "x$enable_modular_tests" != xno; then
187 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.22, gio-2.0 >= 2.22],
189 [if test "x$enable_modular_tests" = xyes; then
190 AC_MSG_ERROR([GLib is required by the modular tests])
191 else # assumed to be "auto"
192 enable_modular_tests=no
194 # If dbus-gmain.[ch] returned to libdbus then we wouldn't need this
195 PKG_CHECK_MODULES([DBUS_GLIB], [dbus-glib-1],
197 [if test "x$enable_modular_tests" = xyes; then
198 AC_MSG_ERROR([dbus-glib is required by the modular tests (for now)])
199 else # assumed to be "auto"
200 enable_modular_tests=no
202 if test "x$enable_modular_tests" != xno; then
203 # dependencies checked, switch from auto to yes
204 enable_modular_tests=yes
207 if test "x$enable_modular_tests" = xyes; then
208 AC_DEFINE([DBUS_ENABLE_MODULAR_TESTS], [1],
209 [Define to build independent test binaries (requires GLib)])
211 AM_CONDITIONAL([DBUS_ENABLE_MODULAR_TESTS],
212 [test "x$enable_modular_tests" = xyes])
214 AC_ARG_ENABLE([installed-tests],
215 AS_HELP_STRING([--enable-installed-tests],
216 [enable unit test code in the library and binaries]),
217 [], [enable_installed_tests=no])
218 AM_CONDITIONAL([DBUS_ENABLE_INSTALLED_TESTS],
219 [test "x$enable_installed_tests" = xyes])
221 if test "x$enable_tests" = xyes; then
222 # full test coverage is required, Python is a hard dependency
223 AC_MSG_NOTICE([Full test coverage (--enable-tests=yes) requires Python])
224 AM_PATH_PYTHON([2.6])
226 # --enable-tests not given: do not abort if Python is missing
227 AM_PATH_PYTHON([2.6], [], [:])
230 if test x$enable_verbose_mode = xyes; then
231 AC_DEFINE(DBUS_ENABLE_VERBOSE_MODE,1,[Support a verbose mode])
234 if test x$enable_asserts = xno; then
235 AC_DEFINE(DBUS_DISABLE_ASSERT,1,[Disable assertion checking])
238 # -rdynamic is needed for glibc's backtrace_symbols to work.
239 # No clue how much overhead this adds, but it's useful
240 # to do this on any assertion failure,
241 # so for now it's enabled anytime asserts are (currently not
242 # in production builds).
244 # To get -rdynamic you pass -export-dynamic to libtool.
245 AC_DEFINE(DBUS_BUILT_R_DYNAMIC,1,[whether -export-dynamic was passed to libtool])
246 R_DYNAMIC_LDFLAG=-export-dynamic
248 AC_SUBST(R_DYNAMIC_LDFLAG)
250 if test x$enable_checks = xno; then
251 AC_DEFINE(DBUS_DISABLE_CHECKS,1,[Disable public API sanity checking])
252 AC_DEFINE(G_DISABLE_CHECKS,1,[Disable GLib public API sanity checking])
255 if test x$enable_userdb_cache = xyes; then
256 AC_DEFINE(DBUS_ENABLE_USERDB_CACHE,1,[Build with caching of user data])
259 if test x$enable_compiler_coverage = xyes; then
260 ## so that config.h changes when you toggle gcov support
261 AC_DEFINE_UNQUOTED(DBUS_GCOV_ENABLED, 1, [Defined if gcov is enabled to force a rebuild due to config.h changing])
264 # glibc21.m4 serial 3
265 dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
266 dnl This file is free software; the Free Software Foundation
267 dnl gives unlimited permission to copy and/or distribute it,
268 dnl with or without modifications, as long as this notice is preserved.
270 # Test for the GNU C Library, version 2.1 or newer.
273 AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
274 ac_cv_gnu_library_2_1,
275 [AC_EGREP_CPP([Lucky GNU user],
277 #include <features.h>
278 #ifdef __GNU_LIBRARY__
279 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
284 ac_cv_gnu_library_2_1=yes,
285 ac_cv_gnu_library_2_1=no)
291 AC_CHECK_SIZEOF(char)
292 AC_CHECK_SIZEOF(short)
293 AC_CHECK_SIZEOF(long)
295 AC_CHECK_SIZEOF(void *)
296 AC_CHECK_SIZEOF(long long)
297 AC_CHECK_SIZEOF(__int64)
299 ### See what our 64 bit type is called
300 AC_MSG_CHECKING([64-bit integer type])
305 dbusint64_constant='(val)'
306 dbusuint64_constant='(val)'
307 dbusint64_printf_modifier='""'
311 dbusint64_constant='(val##L)'
312 dbusuint64_constant='(val##UL)'
313 dbusint64_printf_modifier='"l"'
315 $ac_cv_sizeof_long_long)
316 dbusint64='long long'
317 dbusint64_constant='(val##LL)'
318 dbusuint64_constant='(val##ULL)'
319 # Ideally we discover what the format is, but this is
320 # only used in verbose mode, so eh...
321 if test x"$ac_cv_gnu_library_2_1" = xyes; then
322 dbusint64_printf_modifier='"ll"'
325 $ac_cv_sizeof___int64)
327 dbusint64_constant='(val##i64)'
328 dbusuint64_constant='(val##ui64)'
330 if test x"$ac_cv_gnu_library_2_1" = xyes; then
331 dbusint64_printf_modifier='"ll"'
336 if test -z "$dbusint64" ; then
337 DBUS_INT64_TYPE="no_int64_type_detected"
340 DBUS_UINT64_CONSTANT=
341 AC_MSG_RESULT([none found])
343 DBUS_INT64_TYPE="$dbusint64"
345 DBUS_INT64_CONSTANT="$dbusint64_constant"
346 DBUS_UINT64_CONSTANT="$dbusuint64_constant"
347 if test x"$dbusint64_printf_modifier" != x; then
348 AC_DEFINE_UNQUOTED(DBUS_INT64_PRINTF_MODIFIER, [$dbusint64_printf_modifier], [Define to printf modifier for 64 bit integer type])
350 AC_MSG_RESULT($DBUS_INT64_TYPE)
353 AC_SUBST(DBUS_INT64_TYPE)
354 AC_SUBST(DBUS_INT64_CONSTANT)
355 AC_SUBST(DBUS_UINT64_CONSTANT)
356 AC_SUBST(DBUS_HAVE_INT64)
358 ### see what 32-bit int is called
359 AC_MSG_CHECKING([32-bit integer type])
373 if test -z "$dbusint32" ; then
374 DBUS_INT32_TYPE="no_int32_type_detected"
375 AC_MSG_ERROR([No 32-bit integer type found])
377 DBUS_INT32_TYPE="$dbusint32"
378 AC_MSG_RESULT($DBUS_INT32_TYPE)
381 AC_SUBST(DBUS_INT32_TYPE)
383 ### see what 16-bit int is called
384 AC_MSG_CHECKING([16-bit integer type])
395 if test -z "$dbusint16" ; then
396 DBUS_INT16_TYPE="no_int16_type_detected"
397 AC_MSG_ERROR([No 16-bit integer type found])
399 DBUS_INT16_TYPE="$dbusint16"
400 AC_MSG_RESULT($DBUS_INT16_TYPE)
403 AC_SUBST(DBUS_INT16_TYPE)
408 # check at compile-time, so that it is possible to build universal
409 # (with multiple architectures at once on the compile line)
410 AH_VERBATIM([WORDS_BIGENDIAN_DARWIN], [
411 /* Use the compiler-provided endianness defines to allow universal compiling. */
412 #if defined(__BIG_ENDIAN__)
413 #define WORDS_BIGENDIAN 1
422 dnl **********************************
423 dnl *** va_copy checks (from GLib) ***
424 dnl **********************************
425 dnl we currently check for all three va_copy possibilities, so we get
426 dnl all results in config.log for bug reports.
427 AC_CACHE_CHECK([for an implementation of va_copy()],dbus_cv_va_copy,[
428 AC_LINK_IFELSE([AC_LANG_SOURCE([#include <stdarg.h>
430 static void f (int i, ...) {
431 va_list args1, args2;
433 va_copy (args2, args1);
434 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
436 va_end (args1); va_end (args2);
442 [dbus_cv_va_copy=yes],
443 [dbus_cv_va_copy=no])
445 AC_CACHE_CHECK([for an implementation of __va_copy()],dbus_cv___va_copy,[
446 AC_LINK_IFELSE([AC_LANG_SOURCE([#include <stdarg.h>
448 static void f (int i, ...) {
449 va_list args1, args2;
451 __va_copy (args2, args1);
452 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
454 va_end (args1); va_end (args2);
460 [dbus_cv___va_copy=yes],
461 [dbus_cv___va_copy=no])
464 if test "x$dbus_cv_va_copy" = "xyes"; then
465 dbus_va_copy_func=va_copy
466 else if test "x$dbus_cv___va_copy" = "xyes"; then
467 dbus_va_copy_func=__va_copy
471 if test -n "$dbus_va_copy_func"; then
472 AC_DEFINE_UNQUOTED(DBUS_VA_COPY,$dbus_va_copy_func,[A 'va_copy' style function])
476 AC_CACHE_CHECK([whether va_lists can be copied by value],
478 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
484 static void f (int i, ...) {
485 va_list args1, args2;
488 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
490 va_end (args1); va_end (args2);
497 [dbus_cv_va_val_copy=yes],
498 [dbus_cv_va_val_copy=no],
499 [dbus_cv_va_val_copy=yes])
503 if test "x$dbus_cv_va_val_copy" = "xno"; then
504 AC_DEFINE(DBUS_VA_COPY_AS_ARRAY,1, ['va_lists' cannot be copies as values])
510 AC_CACHE_CHECK([whether $CC knows __sync_sub_and_fetch()],
511 dbus_cv_sync_sub_and_fetch,
513 AC_LANG_PROGRAM([[]], [[int a = 4; int b = __sync_sub_and_fetch(&a, 4); exit(b); ]])],
514 [dbus_cv_sync_sub_and_fetch=yes],
515 [dbus_cv_sync_sub_and_fetch=no])
518 if test "x$dbus_cv_sync_sub_and_fetch" = "xyes" ; then
524 AC_DEFINE_UNQUOTED([DBUS_USE_SYNC], [$have_sync], [Use the gcc __sync extension])
526 #### Various functions
527 AC_SEARCH_LIBS(socket,[socket network])
528 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
530 AC_CHECK_FUNCS(vsnprintf vasprintf nanosleep usleep setenv clearenv unsetenv socketpair getgrouplist fpathconf setrlimit poll setlocale localeconv strtoll strtoull)
532 AC_CHECK_HEADERS([syslog.h])
533 if test "x$ac_cv_header_syslog_h" = "xyes"; then
534 AC_CHECK_DECLS([LOG_PERROR], [], [], [[#include <syslog.h>]])
537 #### Check for broken poll; taken from Glib's configure
539 AC_MSG_CHECKING([for broken poll])
540 AC_RUN_IFELSE([AC_LANG_SOURCE([[
544 #ifdef HAVE_SYS_POLL_H
545 #include <sys/poll.h>
548 struct pollfd fds[1];
550 fd = open("/dev/null", 1);
552 fds[0].events = POLLIN;
554 if (poll(fds, 1, 0) < 0 || (fds[0].revents & POLLNVAL) != 0) {
555 exit(1); /* Does not work for devices -- fail */
561 AC_DEFINE(BROKEN_POLL,1,[poll doesn't work on devices])],
562 [broken_poll="no (cross compiling)"])
563 AC_MSG_RESULT($broken_poll)
565 AC_MSG_CHECKING(for dirfd)
566 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
567 #include <sys/types.h>
575 [dbus_have_dirfd=yes],
576 [dbus_have_dirfd=no])
577 AC_MSG_RESULT($dbus_have_dirfd)
578 if test "$dbus_have_dirfd" = yes; then
579 AC_DEFINE(HAVE_DIRFD,1,[Have dirfd function])
581 AC_MSG_CHECKING(for DIR *dirp->dd_fd)
582 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
583 #include <sys/types.h>
592 [dbus_have_ddfd=yes],
594 AC_MSG_RESULT($dbus_have_ddfd)
595 if test "$dbus_have_ddfd" = yes; then
596 AC_DEFINE(HAVE_DDFD,1,[Have the ddfd member of DIR])
600 AC_CHECK_HEADERS(sys/resource.h)
602 AC_CHECK_HEADERS(dirent.h)
604 AC_CHECK_HEADERS(execinfo.h, [AC_CHECK_FUNCS(backtrace)])
606 AC_CHECK_HEADERS(errno.h)
608 AC_CHECK_HEADERS(signal.h)
610 AC_CHECK_HEADERS(locale.h)
612 AC_CHECK_HEADERS(byteswap.h)
614 AC_CHECK_HEADERS(unistd.h)
616 AC_CHECK_HEADERS(ws2tcpip.h)
618 AC_CHECK_HEADERS(wspiapi.h)
620 # Add -D_POSIX_PTHREAD_SEMANTICS if on Solaris
624 CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS" ;;
627 # checking for a posix version of getpwnam_r
628 # if we are cross compiling and can not run the test
629 # assume getpwnam_r is the posix version
630 # it is up to the person cross compiling to change
631 # this behavior if desired
633 AC_CACHE_CHECK([for posix getpwnam_r],
634 ac_cv_func_posix_getpwnam_r,
635 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
642 struct passwd pwd, *pwptr = &pwd;
645 error = getpwnam_r ("", &pwd, buffer,
646 sizeof (buffer), &pwptr);
647 return (error < 0 && errno == ENOSYS)
650 [ac_cv_func_posix_getpwnam_r=yes],
651 [ac_cv_func_posix_getpwnam_r=no],
652 [ac_cv_func_posix_getpwnam_r=yes]
656 if test "$ac_cv_func_posix_getpwnam_r" = yes; then
657 AC_DEFINE(HAVE_POSIX_GETPWNAM_R,1,
658 [Have POSIX function getpwnam_r])
660 AC_CACHE_CHECK([for nonposix getpwnam_r],
661 ac_cv_func_nonposix_getpwnam_r,
662 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pwd.h>]], [[char buffer[10000];
664 getpwnam_r ("", &pwd, buffer,
665 sizeof (buffer));]])],
666 [ac_cv_func_nonposix_getpwnam_r=yes],
667 [ac_cv_func_nonposix_getpwnam_r=no])])
668 if test "$ac_cv_func_nonposix_getpwnam_r" = yes; then
669 AC_DEFINE(HAVE_NONPOSIX_GETPWNAM_R,1,
670 [Have non-POSIX function getpwnam_r])
674 dnl check for socklen_t
675 AC_MSG_CHECKING(whether socklen_t is defined)
676 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
677 #include <sys/types.h>
678 #include <sys/socket.h>
684 [dbus_have_socklen_t=yes],
685 [dbus_have_socklen_t=no])
686 AC_MSG_RESULT($dbus_have_socklen_t)
688 if test "x$dbus_have_socklen_t" = "xyes"; then
689 AC_DEFINE(HAVE_SOCKLEN_T,1,[Have socklen_t type])
692 dnl check for writev header and writev function so we're
693 dnl good to go if HAVE_WRITEV gets defined.
694 AC_CHECK_HEADERS(sys/uio.h, [AC_CHECK_FUNCS(writev)])
696 dnl needed on darwin for NAME_MAX
697 AC_CHECK_HEADERS(sys/syslimits.h)
699 dnl Make it easy to check if we have MSG_NOSIGNAL without actually having to include sys/socket.h
700 AC_CHECK_DECLS([MSG_NOSIGNAL], [], [], [[ #include <sys/socket.h> ]])
702 dnl check for flavours of varargs macros (test from GLib)
703 AC_MSG_CHECKING(for ISO C99 varargs macros in C)
704 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
705 int a(int p1, int p2, int p3);
706 #define call_a(...) a(1,__VA_ARGS__)
709 [dbus_have_iso_c_varargs=yes],
710 [dbus_have_iso_c_varargs=no])
711 AC_MSG_RESULT($dbus_have_iso_c_varargs)
713 AC_MSG_CHECKING(for GNUC varargs macros)
714 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
715 int a(int p1, int p2, int p3);
716 #define call_a(params...) a(1,params)
719 [dbus_have_gnuc_varargs=yes],
720 [dbus_have_gnuc_varargs=no])
721 AC_MSG_RESULT($dbus_have_gnuc_varargs)
723 dnl Output varargs tests
724 if test x$dbus_have_iso_c_varargs = xyes; then
725 AC_DEFINE(HAVE_ISO_VARARGS,1,[Have ISO C99 varargs macros])
727 if test x$dbus_have_gnuc_varargs = xyes; then
728 AC_DEFINE(HAVE_GNUC_VARARGS,1,[Have GNU-style varargs macros])
731 dnl Check for various credentials.
732 AC_MSG_CHECKING(for struct cmsgcred)
733 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
734 #include <sys/types.h>
735 #include <sys/socket.h>
737 struct cmsgcred cred;
741 [dbus_have_struct_cmsgcred=yes],
742 [dbus_have_struct_cmsgcred=no])
743 AC_MSG_RESULT($dbus_have_struct_cmsgcred)
745 if test x$dbus_have_struct_cmsgcred = xyes; then
746 AC_DEFINE(HAVE_CMSGCRED,1,[Have cmsgcred structure])
749 AC_CHECK_FUNCS(getpeerucred getpeereid)
751 AC_CHECK_FUNCS(pipe2 accept4)
753 #### Abstract sockets
755 if test x$enable_abstract_sockets = xauto; then
758 AC_CACHE_CHECK([abstract socket namespace],
759 ac_cv_have_abstract_sockets,
760 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
762 #include <sys/types.h>
766 #include <sys/socket.h>
773 struct sockaddr_un addr;
775 listen_fd = socket (PF_UNIX, SOCK_STREAM, 0);
779 fprintf (stderr, "socket() failed: %s\n", strerror (errno));
783 memset (&addr, '\0', sizeof (addr));
784 addr.sun_family = AF_UNIX;
785 strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test");
786 /* SUN_LEN uses strlen() so need to calculate it before adding \0 at the
789 slen = SUN_LEN(&addr);
790 addr.sun_path[0] = '\0'; /* this is what makes it abstract */
792 if (bind (listen_fd, (struct sockaddr*) &addr, slen) < 0)
794 fprintf (stderr, "Abstract socket namespace bind() failed: %s\n",
801 [ac_cv_have_abstract_sockets=yes],
802 [ac_cv_have_abstract_sockets=no],
804 ac_cv_have_abstract_sockets=no
808 if test x$warn_on_xcompile = xyes ; then
809 AC_MSG_WARN([Cannot check for abstract sockets when cross-compiling, please use --enable-abstract-sockets])
814 if test x$enable_abstract_sockets = xyes; then
815 if test x$ac_cv_have_abstract_sockets = xno; then
816 AC_MSG_ERROR([Abstract sockets explicitly required, and support not detected.])
820 if test x$enable_abstract_sockets = xno; then
821 ac_cv_have_abstract_sockets=no;
824 if test x$ac_cv_have_abstract_sockets = xyes ; then
825 DBUS_PATH_OR_ABSTRACT=abstract
826 AC_DEFINE(HAVE_ABSTRACT_SOCKETS,1,[Have abstract socket namespace])
828 DBUS_PATH_OR_ABSTRACT=path
831 # this is used in addresses to prefer abstract, e.g.
832 # unix:path=/foo or unix:abstract=/foo
833 AC_SUBST(DBUS_PATH_OR_ABSTRACT)
837 #### Sort out XML library
840 AC_CHECK_LIB(expat, XML_ParserCreate_MM,
841 [ AC_CHECK_HEADERS(expat.h, have_expat=true, have_expat=false) ],
844 # see what we want to use
845 dbus_use_libxml=false
847 if test x$with_xml = xexpat; then
848 if ! $have_expat ; then
849 AC_MSG_ERROR([Explicitly requested expat but expat not found])
852 elif test x$with_xml = xlibxml; then
853 PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= 2.6.0, have_libxml=true, have_libxml=false)
854 if ! $have_libxml ; then
855 AC_MSG_ERROR([Explicitly requested libxml but libxml not found])
859 ### expat is the default because libxml can't currently survive
860 ### our brutal OOM-handling unit test setup.
861 ### http://bugzilla.gnome.org/show_bug.cgi?id=109368
862 if test x$have_expat = xfalse; then
863 AC_MSG_ERROR([Could not find expat.h, check config.log for failed attempts])
865 ### By default, only use Expat since it's tested and known to work. If you're a
866 ### general-purpose OS vendor, please don't enable libxml. For embedded use
867 ### if your OS is built around libxml, that's another case.
871 AM_CONDITIONAL(DBUS_USE_EXPAT, $dbus_use_expat)
872 AM_CONDITIONAL(DBUS_USE_LIBXML, $dbus_use_libxml)
874 if $dbus_use_expat; then
878 if $dbus_use_libxml; then
879 XML_LIBS=$LIBXML_LIBS
880 XML_CFLAGS=$LIBXML_CFLAGS
883 # Thread lib detection
884 AC_CHECK_FUNC(pthread_cond_timedwait,[AC_CHECK_LIB(pthread,pthread_cond_timedwait,
885 [THREAD_LIBS="-lpthread"])])
887 LIBS="$LIBS $THREAD_LIBS"
888 AC_CHECK_FUNC(pthread_condattr_setclock,have_pthread_condattr_setclock=true,have_pthread_condattr_setclock=false)
889 if test x$have_pthread_condattr_setclock = xtrue; then
890 AC_SEARCH_LIBS([clock_getres],[rt],[THREAD_LIBS="$THREAD_LIBS -lrt"])
891 AC_MSG_CHECKING([for CLOCK_MONOTONIC])
892 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>
895 struct timespec monotonic_timer;
896 pthread_condattr_t attr;
897 pthread_condattr_init (&attr);
898 pthread_condattr_setclock (&attr, CLOCK_MONOTONIC);
899 clock_getres (CLOCK_MONOTONIC,&monotonic_timer);
901 [have_clock_monotonic=true],
902 [have_clock_monotonic=false])
903 if test x$have_clock_monotonic = xtrue; then
904 AC_MSG_RESULT([found])
905 AC_DEFINE(HAVE_MONOTONIC_CLOCK, 1, [Define if we have CLOCK_MONOTONIC])
907 AC_MSG_RESULT([not found])
913 if test x$enable_selinux = xno ; then
916 # See if we have SELinux library
917 AC_CHECK_LIB(selinux, is_selinux_enabled,
918 have_selinux=yes, have_selinux=no)
920 # see if we have the SELinux header with the new D-Bus stuff in it
921 if test x$have_selinux = xyes ; then
922 AC_MSG_CHECKING([for DBUS Flask permissions in selinux/av_permissions.h])
923 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <selinux/av_permissions.h>]],
924 [[#ifdef DBUS__ACQUIRE_SVC return 0;
926 #error DBUS__ACQUIRE_SVC not defined
930 AC_MSG_RESULT($have_selinux)
933 if test x$enable_selinux = xauto ; then
934 if test x$have_selinux = xno ; then
935 AC_MSG_WARN([Sufficiently new SELinux library not found])
938 if test x$have_selinux = xno ; then
939 AC_MSG_ERROR([SElinux explicitly required, and SELinux library not found])
944 AM_CONDITIONAL(HAVE_SELINUX, test x$have_selinux = xyes)
946 if test x$have_selinux = xyes ; then
947 # the selinux code creates threads
948 # which requires libpthread even on linux
949 AC_CHECK_FUNC(pthread_create,,[AC_CHECK_LIB(pthread,pthread_create,
950 [SELINUX_THREAD_LIBS="-lpthread"])])
952 SELINUX_LIBS="-lselinux $SELINUX_THREAD_LIBS"
953 AC_DEFINE(HAVE_SELINUX,1,[SELinux support])
959 if test x$enable_inotify = xno ; then
962 AC_CHECK_HEADERS(sys/inotify.h, have_inotify=yes, have_inotify=no)
965 dnl check if inotify backend is enabled
966 if test x$have_inotify = xyes; then
967 AC_DEFINE(DBUS_BUS_ENABLE_INOTIFY,1,[Use inotify])
968 AC_CHECK_FUNCS(inotify_init1)
971 AM_CONDITIONAL(DBUS_BUS_ENABLE_INOTIFY, test x$have_inotify = xyes)
974 if test x$enable_dnotify = xno ; then
977 if test x$have_inotify = xno -a x$host_os = xlinux-gnu -o x$host_os = xlinux; then
984 dnl check if dnotify backend is enabled
985 if test x$have_dnotify = xyes; then
986 AC_DEFINE(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX,1,[Use dnotify on Linux])
989 AM_CONDITIONAL(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX, test x$have_dnotify = xyes)
992 if test x$enable_kqueue = xno ; then
996 AC_CHECK_HEADER(sys/event.h, , have_kqueue=no)
997 AC_CHECK_FUNC(kqueue, , have_kqueue=no)
999 if test x$enable_kqueue = xyes -a x$have_kqueue = xno; then
1000 AC_MSG_ERROR(kqueue support explicitly enabled but not available)
1004 dnl check if kqueue backend is enabled
1005 if test x$have_kqueue = xyes; then
1006 AC_DEFINE(DBUS_BUS_ENABLE_KQUEUE,1,[Use kqueue])
1009 AM_CONDITIONAL(DBUS_BUS_ENABLE_KQUEUE, test x$have_kqueue = xyes)
1012 if test x$enable_launchd = xno ; then
1016 AC_CHECK_HEADER([launch.h], , have_launchd=no)
1017 AC_PATH_PROG([LAUNCHCTL], [launchctl])
1018 if test "x$LAUNCHCTL" = "x"; then
1022 if test x$enable_launchd = xyes && test x$have_launchd = xno ; then
1023 AC_MSG_ERROR([launchd support explicitly enabled but not available])
1027 dnl check if launchd is enabled
1028 if test x$have_launchd = xyes; then
1029 AC_DEFINE(DBUS_ENABLE_LAUNCHD,1,[Use launchd autolaunch])
1032 AM_CONDITIONAL(DBUS_ENABLE_LAUNCHD, test x$have_launchd = xyes)
1034 #### Directory to place launchd agent file
1035 if test "x$with_launchd_agent_dir" = "x"; then
1036 LAUNCHD_AGENT_DIR="/Library/LaunchAgents"
1038 LAUNCHD_AGENT_DIR="$with_launchd_agent_dir"
1041 AC_SUBST(LAUNCHD_AGENT_DIR)
1043 dnl console owner file
1044 if test x$enable_console_owner_file = xno ; then
1045 have_console_owner_file=no;
1049 have_console_owner_file=yes;
1050 AC_DEFINE(HAVE_CONSOLE_OWNER_FILE,1,[Have console owner file])
1053 have_console_owner_file=no;;
1057 AM_CONDITIONAL(HAVE_CONSOLE_OWNER_FILE, test x$have_console_owner_file = xyes)
1059 # libaudit detection
1060 if test x$enable_libaudit = xno ; then
1063 # See if we have audit daemon & capabilities library
1064 AC_CHECK_LIB(audit, audit_log_user_avc_message,
1065 have_libaudit=yes, have_libaudit=no)
1066 if test x$have_libaudit = xyes ; then
1067 AC_CHECK_LIB(cap-ng, capng_clear,
1068 have_libaudit=yes, have_libaudit=no)
1072 AM_CONDITIONAL(HAVE_LIBAUDIT, test x$have_libaudit = xyes)
1074 if test x$have_libaudit = xyes ; then
1075 SELINUX_LIBS="$SELINUX_LIBS -laudit -lcap-ng"
1076 AC_DEFINE(HAVE_LIBAUDIT,1,[audit daemon SELinux support])
1080 AC_MSG_CHECKING(for ADT API)
1081 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1082 #include <bsm/adt.h>
1083 adt_user_context = ADT_USER;
1084 ]], [[]])], [ check_adt_audit=yes ], [ check_adt_audit=no ])
1086 if test ${check_adt_audit} = yes
1088 AC_DEFINE([HAVE_ADT], [], [Adt audit API])
1096 # Check for SCM_RIGHTS
1097 AC_MSG_CHECKING([for SCM_RIGHTS])
1098 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1099 #include <sys/socket.h>
1101 static int x = SCM_RIGHTS;
1103 [ AC_MSG_RESULT([supported])
1104 AC_DEFINE([HAVE_UNIX_FD_PASSING], [1], [Supports sending UNIX file descriptors]) ],
1105 [ AC_MSG_RESULT([not supported]) ])
1108 if test x$dbus_win = xyes ; then
1109 if test x$dbus_wince = xyes ; then
1110 NETWORK_libs="-lws2"
1112 NETWORK_libs="-lws2_32"
1116 #### Set up final flags
1118 DBUS_CLIENT_LIBS="$THREAD_LIBS $NETWORK_libs"
1119 AC_SUBST(DBUS_CLIENT_CFLAGS)
1120 AC_SUBST(DBUS_CLIENT_LIBS)
1122 DBUS_BUS_CFLAGS="$XML_CFLAGS"
1123 DBUS_BUS_LIBS="$XML_LIBS $SELINUX_LIBS $THREAD_LIBS $ADT_LIBS $NETWORK_libs"
1124 AC_SUBST(DBUS_BUS_CFLAGS)
1125 AC_SUBST(DBUS_BUS_LIBS)
1127 DBUS_LAUNCHER_CFLAGS="$XML_CFLAGS"
1128 DBUS_LAUNCHER_LIBS="$XML_LIBS $THREAD_LIBS $NETWORK_libs"
1129 AC_SUBST(DBUS_LAUNCHER_CFLAGS)
1130 AC_SUBST(DBUS_LAUNCHER_LIBS)
1133 DBUS_TEST_LIBS="$THREAD_LIBS $NETWORK_libs"
1134 AC_SUBST(DBUS_TEST_CFLAGS)
1135 AC_SUBST(DBUS_TEST_LIBS)
1141 AC_ARG_ENABLE([x11-autolaunch],
1142 AS_HELP_STRING([--enable-x11-autolaunch], [build with X11 auto-launch support]),
1143 [], [enable_x11_autolaunch=auto])
1145 if test "x$dbus_win" = xyes; then
1146 if test "x$enable_x11_autolaunch" = xyes; then
1147 AC_MSG_ERROR([X11 auto-launch is not supported on Windows])
1150 enable_x11_autolaunch=no
1155 if test "x$no_x" = xyes; then
1159 DBUS_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
1160 DBUS_X_CFLAGS="$X_CFLAGS"
1164 if test "x$enable_x11_autolaunch,$have_x11" = xyes,no; then
1165 AC_MSG_ERROR([X11 auto-launch requires X headers/libraries])
1167 # move from "auto" to "yes" or "no" if necessary
1168 if test "x$enable_x11_autolaunch" != xno; then
1169 enable_x11_autolaunch="$have_x11"
1173 if test "x$have_x11" = xyes ; then
1174 AC_DEFINE([DBUS_BUILD_X11], [1], [Define to build X11 functionality])
1177 if test "x$enable_x11_autolaunch" = xyes ; then
1178 AC_DEFINE([DBUS_ENABLE_X11_AUTOLAUNCH], [1], [Define to enable X11 auto-launch])
1181 AC_SUBST([DBUS_X_CFLAGS])
1182 AC_SUBST([DBUS_X_LIBS])
1184 #### gcc warning flags
1186 cc_supports_flag() {
1187 AC_MSG_CHECKING(whether $CC supports "$*")
1188 save_CFLAGS="$CFLAGS"
1190 AC_TRY_COMPILE([], [], [rc=yes], [rc=no])
1191 CFLAGS="$save_CFLAGS"
1192 AC_MSG_RESULT([$rc])
1196 TP_COMPILER_WARNINGS([WARNING_CFLAGS],
1197 dnl Use -Werror by default if:
1198 dnl - we're not on Windows (too many warnings), and
1199 dnl - we're in maintainer mode (a D-Bus developer, not a distro or end-user)
1200 dnl Override with --enable-Werror or --disable-Werror
1201 [test x$dbus_win != xyes -a x$dbus_cygwin != xyes -a x$USE_MAINTAINER_MODE = xyes],
1203 dnl enable these warnings if possible:
1206 missing-declarations \
1207 missing-prototypes \
1213 declaration-after-statement \
1216 dnl disable these warnings if possible, make them non-fatal if possible,
1217 dnl and don't enable -Werror unless we succeeded:
1218 dnl (unused is by design, sign-compare and pointer-sign are fd.o #17433)
1224 if test "x$GCC" = "xyes"; then
1225 # We're treating -fno-common like a warning: it makes the linker more
1226 # strict, because on some systems the linker is *always* this strict
1227 TP_ADD_COMPILER_FLAG([WARNING_CFLAGS], [-fno-common])
1229 # http://bugs.freedesktop.org/show_bug.cgi?id=10599
1230 TP_ADD_COMPILER_FLAG([WARNING_CFLAGS], [-fno-strict-aliasing])
1232 if test "x$enable_ansi" = "xyes"; then
1233 TP_ADD_COMPILER_FLAG([WARNING_CFLAGS],
1234 [-ansi -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE -pedantic])
1238 dnl In principle we should put WARNING_CFLAGS in each Makefile.am like
1239 dnl telepathy-glib does, since CFLAGS is meant to be reserved for the user...
1240 dnl but prepending to CFLAGS (so the user can override it with later CFLAGS)
1241 dnl is the next best thing
1242 CFLAGS="$WARNING_CFLAGS $CFLAGS"
1246 # Solaris' C library apparently needs these runes to be threadsafe...
1247 CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT"
1248 # ... and this opt-in to get file descriptor passing support
1249 CFLAGS="$CFLAGS -D_XOPEN_SOURCE=500"
1253 ### Doxygen Documentation
1255 AC_PATH_PROG(DOXYGEN, doxygen, no)
1257 AC_MSG_CHECKING([whether to build Doxygen documentation])
1259 if test x$DOXYGEN = xno ; then
1265 if test x$enable_doxygen_docs = xauto ; then
1266 if test x$have_doxygen = xno ; then
1267 enable_doxygen_docs=no
1269 enable_doxygen_docs=yes
1273 if test x$enable_doxygen_docs = xyes; then
1274 if test x$have_doxygen = xno; then
1275 AC_MSG_ERROR([Building Doxygen docs explicitly required, but Doxygen not found])
1279 AM_CONDITIONAL(DBUS_DOXYGEN_DOCS_ENABLED, test x$enable_doxygen_docs = xyes)
1280 AC_MSG_RESULT($enable_doxygen_docs)
1282 AC_CHECK_PROGS([XSLTPROC], [xsltproc])
1283 AM_CONDITIONAL([DBUS_HAVE_XSLTPROC], [test "x$XSLTPROC" != "x"])
1285 ### XML Documentation
1287 AC_PATH_PROG(XMLTO, xmlto, no)
1289 AC_MSG_CHECKING([whether to build XML documentation])
1291 if test x$XMLTO = xno ; then
1297 if test x$enable_xml_docs = xauto ; then
1298 if test x$have_xmlto = xno ; then
1305 if test x$enable_xml_docs = xyes; then
1306 if test x$have_xmlto = xno; then
1307 AC_MSG_ERROR([Building XML docs explicitly required, but xmlto not found])
1311 AM_CONDITIONAL(DBUS_XML_DOCS_ENABLED, test x$enable_xml_docs = xyes)
1312 AC_MSG_RESULT($enable_xml_docs)
1314 AC_PATH_PROG([MAN2HTML], [man2html])
1315 AC_ARG_VAR([MAN2HTML], [Path to man2html (optional)])
1316 AM_CONDITIONAL(DBUS_HAVE_MAN2HTML, test x$MAN2HTML != x)
1318 AM_CONDITIONAL(DBUS_CAN_UPLOAD_DOCS,
1319 test x$enable_doxygen_docs = xyes -a x$enable_xml_docs = xyes -a \
1322 #### Have to go $localstatedir->$prefix/var->/usr/local/var
1324 #### find the actual value for $prefix that we'll end up with
1325 ## (I know this is broken and should be done in the Makefile, but
1326 ## that's a major pain and almost nobody actually seems to care)
1327 AS_AC_EXPAND(EXPANDED_PREFIX, "$prefix")
1328 AS_AC_EXPAND(EXPANDED_LOCALSTATEDIR, "$localstatedir")
1329 AS_AC_EXPAND(EXPANDED_SYSCONFDIR, "$sysconfdir")
1330 AS_AC_EXPAND(EXPANDED_BINDIR, "$bindir")
1331 AS_AC_EXPAND(EXPANDED_LIBDIR, "$libdir")
1332 AS_AC_EXPAND(EXPANDED_LIBEXECDIR, "$libexecdir")
1333 AS_AC_EXPAND(EXPANDED_DATADIR, "$datadir")
1335 #### Check our operating system
1336 operating_system=unknown
1337 if test -f /etc/redhat-release || test -f $EXPANDED_SYSCONFDIR/redhat-release ; then
1338 operating_system=redhat
1341 if test -f /etc/slackware-version || test -f $EXPANDED_SYSCONFDIR/slackware-version ; then
1342 operating_system=slackware
1345 if test -f /usr/bin/cygwin1.dll || test -f $EXPANDED_BINDIR/cygwin1.dll ; then
1346 operating_system=cygwin
1349 #### Sort out init scripts
1351 if test x$with_init_scripts = x; then
1352 case x$operating_system in
1353 xredhat) with_init_scripts=redhat ;;
1354 xslackware) with_init_scripts=slackware ;;
1355 xcygwin) with_init_scripts=cygwin ;;
1356 *) with_init_scripts=none ;;
1360 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_RED_HAT, test x$with_init_scripts = xredhat)
1361 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_SLACKWARE, test x$with_init_scripts = xslackware)
1362 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_CYGWIN, test x$with_init_scripts = xcygwin)
1364 ##### systemd unit files
1365 AC_ARG_WITH([systemdsystemunitdir],
1366 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
1367 [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
1368 if test "x$with_systemdsystemunitdir" != xno; then
1369 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
1371 AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])
1373 ##### Set up location for system bus socket
1374 if ! test -z "$with_system_socket"; then
1375 DBUS_SYSTEM_SOCKET=$with_system_socket
1377 DBUS_SYSTEM_SOCKET=${EXPANDED_LOCALSTATEDIR}/run/dbus/system_bus_socket
1380 AC_SUBST(DBUS_SYSTEM_SOCKET)
1381 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_SOCKET,"$DBUS_SYSTEM_SOCKET",[The name of the socket the system bus listens on by default])
1383 ## system bus only listens on local domain sockets, and never
1384 ## on an abstract socket (so only root can create the socket)
1385 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS="unix:path=$DBUS_SYSTEM_SOCKET"
1386 AC_SUBST(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS)
1387 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS, "$DBUS_SYSTEM_BUS_DEFAULT_ADDRESS",[The default D-Bus address of the system bus])
1389 #### Set up the pid file
1390 if ! test -z "$with_system_pid_file"; then
1391 DBUS_SYSTEM_PID_FILE=$with_system_pid_file
1392 elif test x$with_init_scripts = xredhat ; then
1393 DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/messagebus.pid
1395 DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/dbus/pid
1398 AC_SUBST(DBUS_SYSTEM_PID_FILE)
1400 #### Directory to check for console ownership
1401 if ! test -z "$with_console_auth_dir"; then
1402 DBUS_CONSOLE_AUTH_DIR=$with_console_auth_dir
1404 DBUS_CONSOLE_AUTH_DIR=/var/run/console/
1407 AC_SUBST(DBUS_CONSOLE_AUTH_DIR)
1408 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_AUTH_DIR, "$DBUS_CONSOLE_AUTH_DIR", [Directory to check for console ownerhip])
1410 #### File to check for console ownership
1411 if test x$have_console_owner_file = xyes; then
1412 if ! test -z "$with_console_owner_file"; then
1413 DBUS_CONSOLE_OWNER_FILE=$with_console_owner_file
1415 DBUS_CONSOLE_OWNER_FILE=/dev/console
1418 DBUS_CONSOLE_OWNER_FILE=
1421 AC_SUBST(DBUS_CONSOLE_OWNER_FILE)
1422 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_OWNER_FILE, "$DBUS_CONSOLE_OWNER_FILE", [File to check for console ownerhip])
1424 #### User to start the system bus as
1425 if test -z "$with_dbus_user" ; then
1426 DBUS_USER=messagebus
1428 DBUS_USER=$with_dbus_user
1431 AC_DEFINE_UNQUOTED(DBUS_USER,"$DBUS_USER", [User for running the system BUS daemon])
1433 #### Prefix to install into
1434 DBUS_PREFIX=$EXPANDED_PREFIX
1435 AC_SUBST(DBUS_PREFIX)
1436 AC_DEFINE_UNQUOTED(DBUS_PREFIX,"$DBUS_PREFIX", [Prefix for installing DBUS])
1438 #### Direcotry to install data files into
1439 DBUS_DATADIR=$EXPANDED_DATADIR
1440 AC_SUBST(DBUS_DATADIR)
1441 AC_DEFINE_UNQUOTED(DBUS_DATADIR,"$DBUS_DATADIR", [Directory for installing DBUS data files])
1443 #### Directory to install dbus-daemon
1444 if test -z "$with_dbus_daemondir" ; then
1445 DBUS_DAEMONDIR=$EXPANDED_BINDIR
1447 DBUS_DAEMONDIR=$with_dbus_daemondir
1449 AC_SUBST(DBUS_DAEMONDIR)
1450 AC_DEFINE_UNQUOTED(DBUS_DAEMONDIR,"$DBUS_DAEMONDIR", [Directory for installing the DBUS daemon])
1452 #### Directory to install the other binaries
1453 DBUS_BINDIR="$EXPANDED_BINDIR"
1454 AC_SUBST(DBUS_BINDIR)
1455 AC_DEFINE_UNQUOTED(DBUS_BINDIR,"$DBUS_BINDIR", [Directory for installing the binaries])
1457 #### Directory to install the libexec binaries
1458 DBUS_LIBEXECDIR="$EXPANDED_LIBEXECDIR"
1459 AC_SUBST(DBUS_LIBEXECDIR)
1460 AC_DEFINE_UNQUOTED(DBUS_LIBEXECDIR,"$DBUS_LIBEXECDIR", [Directory for installing the libexec binaries])
1462 #### Tell tests where to find certain stuff in builddir
1465 # Useful in a cross-compilation environment, where the tests are run on the host system.
1466 AC_ARG_WITH(dbus-test-dir, AS_HELP_STRING([--with-dbus-test-dir=[dirname]],[path where the tests tools are available]),
1468 AC_DEFUN([TEST_PATH], [
1469 TEST_$1=${DBUS_PWD}/test/$2
1470 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1",
1471 [Full path to test file test/$2 in builddir])
1474 AC_DEFUN([TEST_PROG], [
1475 TEST_$1=${DBUS_PWD}/test/$2
1476 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1$EXEEXT",
1477 [Full path to test file test/$2 in builddir])
1481 TEST_PATH(VALID_SERVICE_DIR, data/valid-service-files)
1482 TEST_PATH(INVALID_SERVICE_DIR, data/invalid-service-files)
1483 TEST_PATH(VALID_SERVICE_SYSTEM_DIR, data/valid-service-files-system)
1484 TEST_PATH(INVALID_SERVICE_SYSTEM_DIR, data/invalid-service-files-system)
1485 TEST_PROG(SERVICE_BINARY, test-service)
1486 TEST_PROG(SHELL_SERVICE_BINARY, test-shell-service)
1487 TEST_PROG(EXIT_BINARY, test-exit)
1488 TEST_PROG(SEGFAULT_BINARY, test-segfault)
1489 TEST_PROG(SLEEP_FOREVER_BINARY, test-sleep-forever)
1490 TEST_PROG(PRIVSERVER_BINARY, name-test/test-privserver)
1492 AC_DEFINE_UNQUOTED(TEST_BUS_BINARY, "$DBUS_PWD/bus/dbus-daemon$EXEEXT",
1493 [Full path to the daemon in the builddir])
1494 AC_SUBST(TEST_BUS_BINARY)
1496 ## Export the non-setuid external helper
1497 TEST_LAUNCH_HELPER_BINARY="$DBUS_PWD/bus/dbus-daemon-launch-helper-test$EXEEXT"
1498 AC_SUBST(TEST_LAUNCH_HELPER_BINARY)
1499 AC_DEFINE_UNQUOTED(DBUS_TEST_LAUNCH_HELPER_BINARY, "$TEST_LAUNCH_HELPER_BINARY",
1500 [Full path to the launch helper test program in the builddir])
1502 #### Find socket directories
1503 if ! test -z "$TMPDIR" ; then
1504 DEFAULT_SOCKET_DIR=$TMPDIR
1505 elif ! test -z "$TEMP" ; then
1506 DEFAULT_SOCKET_DIR=$TEMP
1507 elif ! test -z "$TMP" ; then
1508 DEFAULT_SOCKET_DIR=$TMP
1510 DEFAULT_SOCKET_DIR=/tmp
1513 DEFAULT_SOCKET_DIR=`echo $DEFAULT_SOCKET_DIR | sed 's/+/%2B/g'`
1515 if ! test -z "$with_test_socket_dir" ; then
1516 TEST_SOCKET_DIR="$with_test_socket_dir"
1518 TEST_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1520 AC_SUBST(TEST_SOCKET_DIR)
1521 AC_DEFINE_UNQUOTED(DBUS_TEST_SOCKET_DIR, "$TEST_SOCKET_DIR", [Where to put test sockets])
1523 if ! test -z "$with_session_socket_dir" ; then
1524 DBUS_SESSION_SOCKET_DIR="$with_session_socket_dir"
1526 DBUS_SESSION_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1528 AC_DEFINE_UNQUOTED(DBUS_SESSION_SOCKET_DIR, "$DBUS_SESSION_SOCKET_DIR", [Where per-session bus puts its sockets])
1529 AC_SUBST(DBUS_SESSION_SOCKET_DIR)
1531 if test x$dbus_win = xyes; then
1532 DBUS_SESSION_BUS_DEFAULT_ADDRESS="nonce-tcp:"
1533 elif test x$have_launchd = xyes; then
1534 DBUS_SESSION_BUS_DEFAULT_ADDRESS="launchd:env=DBUS_LAUNCHD_SESSION_BUS_SOCKET"
1536 DBUS_SESSION_BUS_DEFAULT_ADDRESS="unix:tmpdir=$DBUS_SESSION_SOCKET_DIR"
1538 AC_SUBST(DBUS_SESSION_BUS_DEFAULT_ADDRESS)
1540 # darwin needs this to initialize the environment
1541 AC_CHECK_HEADERS(crt_externs.h)
1542 AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])])
1543 AH_VERBATIM(_DARWIN_ENVIRON,
1545 #if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
1546 # include <sys/time.h>
1547 # include <crt_externs.h>
1548 # define environ (*_NSGetEnviron())
1555 dbus/dbus-arch-deps.h
1559 bus/messagebus-config
1560 bus/org.freedesktop.dbus-session.plist
1569 test/name-test/Makefile
1573 dbus-1-uninstalled.pc
1574 test/data/valid-config-files/debug-allow-all.conf
1575 test/data/valid-config-files/debug-allow-all-sha1.conf
1576 test/data/valid-config-files-system/debug-allow-all-pass.conf
1577 test/data/valid-config-files-system/debug-allow-all-fail.conf
1578 test/data/valid-service-files/org.freedesktop.DBus.TestSuite.PrivServer.service
1579 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteEchoService.service
1580 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteForkingEchoService.service
1581 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteSegfaultService.service
1582 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service
1583 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service
1584 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteEchoService.service
1585 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteSegfaultService.service
1586 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service
1587 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service
1588 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoExec.service
1589 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoUser.service
1590 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoService.service
1594 dnl ==========================================================================
1599 prefix: ${EXPANDED_PREFIX}
1600 exec_prefix: ${exec_prefix}
1601 libdir: ${EXPANDED_LIBDIR}
1602 libexecdir: ${EXPANDED_LIBEXECDIR}
1603 bindir: ${EXPANDED_BINDIR}
1604 sysconfdir: ${EXPANDED_SYSCONFDIR}
1605 localstatedir: ${EXPANDED_LOCALSTATEDIR}
1606 datadir: ${EXPANDED_DATADIR}
1607 source code location: ${srcdir}
1610 cppflags: ${CPPFLAGS}
1611 cxxflags: ${CXXFLAGS}
1612 64-bit int: ${DBUS_INT64_TYPE}
1613 32-bit int: ${DBUS_INT32_TYPE}
1614 16-bit int: ${DBUS_INT16_TYPE}
1615 Doxygen: ${DOXYGEN:-not found}
1616 xmlto: ${XMLTO:-not found}
1617 man2html: ${MAN2HTML:-not found}"
1620 Maintainer mode: ${USE_MAINTAINER_MODE}
1621 gcc coverage profiling: ${enable_compiler_coverage}
1622 Building embedded tests: ${enable_embedded_tests}
1623 Building modular tests: ${enable_modular_tests}
1624 Building verbose mode: ${enable_verbose_mode}
1625 Building assertions: ${enable_asserts}
1626 Building checks: ${enable_checks}
1627 Building SELinux support: ${have_selinux}
1628 Building inotify support: ${have_inotify}
1629 Building dnotify support: ${have_dnotify}
1630 Building kqueue support: ${have_kqueue}
1631 Building X11 code: ${enable_x11}
1632 Building Doxygen docs: ${enable_doxygen_docs}
1633 Building XML docs: ${enable_xml_docs}
1634 Building cache support: ${enable_userdb_cache}
1635 Building launchd support: ${have_launchd}
1636 Using XML parser: ${with_xml}
1637 Init scripts style: ${with_init_scripts}
1638 Abstract socket names: ${ac_cv_have_abstract_sockets}
1639 System bus socket: ${DBUS_SYSTEM_SOCKET}
1640 System bus address: ${DBUS_SYSTEM_BUS_DEFAULT_ADDRESS}
1641 System bus PID file: ${DBUS_SYSTEM_PID_FILE}
1642 Session bus address: ${DBUS_SESSION_BUS_DEFAULT_ADDRESS}
1643 Console auth dir: ${DBUS_CONSOLE_AUTH_DIR}
1644 Console owner file: ${have_console_owner_file}
1645 Console owner file path: ${DBUS_CONSOLE_OWNER_FILE}
1646 System bus user: ${DBUS_USER}
1647 Session bus services dir: ${EXPANDED_DATADIR}/dbus-1/services
1648 'make check' socket dir: ${TEST_SOCKET_DIR}
1650 if test x$have_launchd = xyes; then
1651 echo " launchd agent dir: ${LAUNCHD_AGENT_DIR}"
1655 if test x$enable_embedded_tests = xyes; then
1656 echo "NOTE: building with unit tests increases the size of the installed library and renders it insecure."
1658 if test x$enable_embedded_tests = xyes -a x$enable_asserts = xno; then
1659 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)"
1661 if test x$enable_compiler_coverage = xyes; then
1662 echo "NOTE: building with coverage profiling is definitely for developers only."
1664 if test x$enable_verbose_mode = xyes; then
1665 echo "NOTE: building with verbose mode increases library size, may slightly increase security risk, and decreases performance."
1667 if test x$enable_asserts = xyes; then
1668 echo "NOTE: building with assertions increases library size and decreases performance."
1670 if test x$enable_checks = xno; then
1671 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."
1673 if test x$dbus_use_libxml = xtrue; then
1675 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)."