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