/* config.h.in.  Generated from configure.ac by autoheader.  */

/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD

/* poll doesn't work on devices */
#undef BROKEN_POLL

/* Directory for installing the binaries */
#undef DBUS_BINDIR

/* Build test code */
#undef DBUS_BUILD_TESTS

/* Define to build X11 functionality */
#undef DBUS_BUILD_X11

/* whether -export-dynamic was passed to libtool */
#undef DBUS_BUILT_R_DYNAMIC

/* Use dnotify on Linux */
#undef DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX

/* Use inotify */
#undef DBUS_BUS_ENABLE_INOTIFY

/* Use kqueue */
#undef DBUS_BUS_ENABLE_KQUEUE

/* Directory to check for console ownerhip */
#undef DBUS_CONSOLE_AUTH_DIR

/* File to check for console ownerhip */
#undef DBUS_CONSOLE_OWNER_FILE

/* Defined if we run on a cygwin API based system */
#undef DBUS_CYGWIN

/* Directory for installing the DBUS daemon */
#undef DBUS_DAEMONDIR

/* Name of executable */
#undef DBUS_DAEMON_NAME

/* Directory for installing DBUS data files */
#undef DBUS_DATADIR

/* Disable assertion checking */
#undef DBUS_DISABLE_ASSERT

/* Disable public API sanity checking */
#undef DBUS_DISABLE_CHECKS

/* Use launchd autolaunch */
#undef DBUS_ENABLE_LAUNCHD

/* Build with caching of user data */
#undef DBUS_ENABLE_USERDB_CACHE

/* Support a verbose mode */
#undef DBUS_ENABLE_VERBOSE_MODE

/* Define to enable X11 auto-launch */
#undef DBUS_ENABLE_X11_AUTOLAUNCH

/* Defined if gcov is enabled to force a rebuild due to config.h changing */
#undef DBUS_GCOV_ENABLED

/* Define to printf modifier for 64 bit integer type */
#undef DBUS_INT64_PRINTF_MODIFIER

/* Directory for installing the libexec binaries */
#undef DBUS_LIBEXECDIR

/* Prefix for installing DBUS */
#undef DBUS_PREFIX

/* Where per-session bus puts its sockets */
#undef DBUS_SESSION_SOCKET_DIR

/* The default D-Bus address of the system bus */
#undef DBUS_SYSTEM_BUS_DEFAULT_ADDRESS

/* The name of the socket the system bus listens on by default */
#undef DBUS_SYSTEM_SOCKET

/* Full path to the launch helper test program in the builddir */
#undef DBUS_TEST_LAUNCH_HELPER_BINARY

/* Where to put test sockets */
#undef DBUS_TEST_SOCKET_DIR

/* Defined if we run on a Unix-based system */
#undef DBUS_UNIX

/* User for running the system BUS daemon */
#undef DBUS_USER

/* Use the gcc __sync extension */
#undef DBUS_USE_SYNC

/* A 'va_copy' style function */
#undef DBUS_VA_COPY

/* 'va_lists' cannot be copies as values */
#undef DBUS_VA_COPY_AS_ARRAY

/* Defined if we run on a W32 API based system */
#undef DBUS_WIN

/* Defined if we run on a W32 CE API based system */
#undef DBUS_WINCE

/* The name of the gettext domain */
#undef GETTEXT_PACKAGE

/* Disable GLib assertion macros */
#undef G_DISABLE_ASSERT

/* Disable GLib public API sanity checking */
#undef G_DISABLE_CHECKS

/* Have abstract socket namespace */
#undef HAVE_ABSTRACT_SOCKETS

/* Define to 1 if you have the `accept4' function. */
#undef HAVE_ACCEPT4

/* Adt audit API */
#undef HAVE_ADT

/* Define to 1 if you have the `backtrace' function. */
#undef HAVE_BACKTRACE

/* Define to 1 if you have the <byteswap.h> header file. */
#undef HAVE_BYTESWAP_H

/* Define to 1 if you have the `clearenv' function. */
#undef HAVE_CLEARENV

/* Have cmsgcred structure */
#undef HAVE_CMSGCRED

/* Have console owner file */
#undef HAVE_CONSOLE_OWNER_FILE

/* Define to 1 if you have the <crt_externs.h> header file. */
#undef HAVE_CRT_EXTERNS_H

/* Have the ddfd member of DIR */
#undef HAVE_DDFD

/* Define to 1 if you have the declaration of `MSG_NOSIGNAL', and to 0 if you
   don't. */
#undef HAVE_DECL_MSG_NOSIGNAL

/* Define to 1 if you have the <dirent.h> header file. */
#undef HAVE_DIRENT_H

/* Have dirfd function */
#undef HAVE_DIRFD

/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H

/* Define to 1 if you have the <errno.h> header file. */
#undef HAVE_ERRNO_H

/* Define to 1 if you have the <execinfo.h> header file. */
#undef HAVE_EXECINFO_H

/* Define to 1 if you have the <expat.h> header file. */
#undef HAVE_EXPAT_H

/* Define to 1 if you have the `fpathconf' function. */
#undef HAVE_FPATHCONF

/* Define to 1 if you have the `getgrouplist' function. */
#undef HAVE_GETGROUPLIST

/* Define to 1 if you have the `getpeereid' function. */
#undef HAVE_GETPEEREID

/* Define to 1 if you have the `getpeerucred' function. */
#undef HAVE_GETPEERUCRED

/* Have GNU-style varargs macros */
#undef HAVE_GNUC_VARARGS

/* Define to 1 if you have the `inotify_init1' function. */
#undef HAVE_INOTIFY_INIT1

/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H

/* Have ISO C99 varargs macros */
#undef HAVE_ISO_VARARGS

/* audit daemon SELinux support */
#undef HAVE_LIBAUDIT

/* Define to 1 if you have the `nsl' library (-lnsl). */
#undef HAVE_LIBNSL

/* Define to 1 if you have the `localeconv' function. */
#undef HAVE_LOCALECONV

/* Define to 1 if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H

/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H

/* Define if we have CLOCK_MONOTONIC */
#undef HAVE_MONOTONIC_CLOCK

/* Define to 1 if you have the `nanosleep' function. */
#undef HAVE_NANOSLEEP

/* Have non-POSIX function getpwnam_r */
#undef HAVE_NONPOSIX_GETPWNAM_R

/* Define if your system needs _NSGetEnviron to set up the environment */
#undef HAVE_NSGETENVIRON

/* Define to 1 if you have the `pipe2' function. */
#undef HAVE_PIPE2

/* Define to 1 if you have the `poll' function. */
#undef HAVE_POLL

/* Have POSIX function getpwnam_r */
#undef HAVE_POSIX_GETPWNAM_R

/* SELinux support */
#undef HAVE_SELINUX

/* Define to 1 if you have the `setenv' function. */
#undef HAVE_SETENV

/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE

/* Define to 1 if you have the `setrlimit' function. */
#undef HAVE_SETRLIMIT

/* Define to 1 if you have the <signal.h> header file. */
#undef HAVE_SIGNAL_H

/* Define to 1 if you have the `socketpair' function. */
#undef HAVE_SOCKETPAIR

/* Have socklen_t type */
#undef HAVE_SOCKLEN_T

/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H

/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H

/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H

/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H

/* Define to 1 if you have the `strtoll' function. */
#undef HAVE_STRTOLL

/* Define to 1 if you have the `strtoull' function. */
#undef HAVE_STRTOULL

/* Define to 1 if you have the <sys/inotify.h> header file. */
#undef HAVE_SYS_INOTIFY_H

/* Define to 1 if you have the <sys/resource.h> header file. */
#undef HAVE_SYS_RESOURCE_H

/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H

/* Define to 1 if you have the <sys/syslimits.h> header file. */
#undef HAVE_SYS_SYSLIMITS_H

/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H

/* Define to 1 if you have the <sys/uio.h> header file. */
#undef HAVE_SYS_UIO_H

/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H

/* Supports sending UNIX file descriptors */
#undef HAVE_UNIX_FD_PASSING

/* Define to 1 if you have the `unsetenv' function. */
#undef HAVE_UNSETENV

/* Define to 1 if you have the `usleep' function. */
#undef HAVE_USLEEP

/* Define to 1 if you have the `vasprintf' function. */
#undef HAVE_VASPRINTF

/* Define to 1 if you have the `vsnprintf' function. */
#undef HAVE_VSNPRINTF

/* Define to 1 if you have the `writev' function. */
#undef HAVE_WRITEV

/* Define to 1 if you have the <ws2tcpip.h> header file. */
#undef HAVE_WS2TCPIP_H

/* Define to 1 if you have the <wspiapi.h> header file. */
#undef HAVE_WSPIAPI_H

/* Define to the sub-directory in which libtool stores uninstalled libraries.
   */
#undef LT_OBJDIR

/* Define to 1 if your C compiler doesn't accept -c and -o together. */
#undef NO_MINUS_C_MINUS_O

/* Name of package */
#undef PACKAGE

/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT

/* Define to the full name of this package. */
#undef PACKAGE_NAME

/* Define to the full name and version of this package. */
#undef PACKAGE_STRING

/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME

/* Define to the home page for this package. */
#undef PACKAGE_URL

/* Define to the version of this package. */
#undef PACKAGE_VERSION

/* The size of `char', as computed by sizeof. */
#undef SIZEOF_CHAR

/* The size of `int', as computed by sizeof. */
#undef SIZEOF_INT

/* The size of `long', as computed by sizeof. */
#undef SIZEOF_LONG

/* The size of `long long', as computed by sizeof. */
#undef SIZEOF_LONG_LONG

/* The size of `short', as computed by sizeof. */
#undef SIZEOF_SHORT

/* The size of `void *', as computed by sizeof. */
#undef SIZEOF_VOID_P

/* The size of `__int64', as computed by sizeof. */
#undef SIZEOF___INT64

/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS

/* Full path to the daemon in the builddir */
#undef TEST_BUS_BINARY

/* Full path to test file test/test-exit in builddir */
#undef TEST_EXIT_BINARY

/* Full path to test file test/data/invalid-service-files in builddir */
#undef TEST_INVALID_SERVICE_DIR

/* Full path to test file test/data/invalid-service-files-system in builddir
   */
#undef TEST_INVALID_SERVICE_SYSTEM_DIR

/* Full path to test file test/name-test/test-privserver in builddir */
#undef TEST_PRIVSERVER_BINARY

/* Full path to test file test/test-segfault in builddir */
#undef TEST_SEGFAULT_BINARY

/* Full path to test file test/test-service in builddir */
#undef TEST_SERVICE_BINARY

/* Full path to test file test/test-shell-service in builddir */
#undef TEST_SHELL_SERVICE_BINARY

/* Full path to test file test/test-sleep-forever in builddir */
#undef TEST_SLEEP_FOREVER_BINARY

/* Full path to test file test/data/valid-service-files in builddir */
#undef TEST_VALID_SERVICE_DIR

/* Full path to test file test/data/valid-service-files-system in builddir */
#undef TEST_VALID_SERVICE_SYSTEM_DIR

/* Enable extensions on AIX 3, Interix.  */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
/* Enable GNU extensions on systems that have them.  */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif
/* Enable threading extensions on Solaris.  */
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
/* Enable extensions on HP NonStop.  */
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
#endif
/* Enable general extensions on Solaris.  */
#ifndef __EXTENSIONS__
# undef __EXTENSIONS__
#endif


/* Version number of package */
#undef VERSION

/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
   significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
#  define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
#  undef WORDS_BIGENDIAN
# endif
#endif


			/* Use the compiler-provided endianness defines to allow universal compiling. */
			#if defined(__BIG_ENDIAN__)
			#define WORDS_BIGENDIAN 1
			#endif
		

/* Define to 1 if the X Window System is missing or not being used. */
#undef X_DISPLAY_MISSING


#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
# include <sys/time.h>
# include <crt_externs.h>
# define environ (*_NSGetEnviron())
#endif


/* Define to 1 if on MINIX. */
#undef _MINIX

/* Define to 2 if the system does not provide POSIX.1 features except with
   this defined. */
#undef _POSIX_1_SOURCE

/* Define to 1 if you need to in order for `stat' and other things to work. */
#undef _POSIX_SOURCE

/* Defined to get newer W32 CE APIs */
#undef _WIN32_WCE

/* Define to `__inline__' or `__inline' if that's what the C compiler
   calls it, or to nothing if 'inline' is not supported under any name.  */
#ifndef __cplusplus
#undef inline
#endif
