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