X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=configure.ac;h=7bd4ddf8d013f3e76576ea6e7e7ab440b75a8684;hb=b3f2ee5c6bade555630e52b8aa18fd639e047a80;hp=382d71f86918401415eb0c67e40149cd4a73fddd;hpb=fa9bf406b408e2310703612a83bd0aa63c116ace;p=platform%2Fupstream%2Fdbus.git diff --git a/configure.ac b/configure.ac index 382d71f..7bd4ddf 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.63]) m4_define([dbus_major_version], [1]) m4_define([dbus_minor_version], [5]) -m4_define([dbus_micro_version], [5]) +m4_define([dbus_micro_version], [9]) m4_define([dbus_version], [dbus_major_version.dbus_minor_version.dbus_micro_version]) AC_INIT([dbus],[dbus_version],[https://bugs.freedesktop.org/enter_bug.cgi?product=dbus],[dbus]) @@ -36,7 +36,7 @@ LT_CURRENT=9 ## increment any time the source changes; set to ## 0 if you increment CURRENT -LT_REVISION=2 +LT_REVISION=4 ## increment if any interfaces have been added; set to 0 ## if any interfaces have been changed or removed. removal has @@ -137,6 +137,7 @@ AC_ARG_ENABLE(kqueue, AS_HELP_STRING([--enable-kqueue],[build with kqueue suppor 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) AC_ARG_ENABLE(userdb-cache, AS_HELP_STRING([--enable-userdb-cache],[build with userdb-cache support]),enable_userdb_cache=$enableval,enable_userdb_cache=yes) AC_ARG_ENABLE(launchd, AS_HELP_STRING([--enable-launchd],[build with launchd auto-launch support]),enable_launchd=$enableval,enable_launchd=auto) +AC_ARG_ENABLE(systemd, AS_HELP_STRING([--enable-systemd],[build with systemd at_console support]),enable_systemd=$enableval,enable_systemd=auto) AC_ARG_WITH(xml, AS_HELP_STRING([--with-xml=[libxml/expat]],[XML library to use (libxml may be named libxml2 on some systems)])) AC_ARG_WITH(init-scripts, AS_HELP_STRING([--with-init-scripts=[redhat]],[Style of init scripts to install])) @@ -149,6 +150,7 @@ AC_ARG_WITH(console-owner-file, AS_HELP_STRING([--with-console-owner-file=[filen AC_ARG_WITH(launchd-agent-dir, AS_HELP_STRING([--with-launchd-agent-dir=[dirname]],[directory to put the launchd agent (default: /Library/LaunchAgents)])) AC_ARG_WITH(dbus_user, AS_HELP_STRING([--with-dbus-user=],[User for running the DBUS daemon (messagebus)])) AC_ARG_WITH(dbus_daemondir, AS_HELP_STRING([--with-dbus-daemondir=[dirname]],[Directory for installing the DBUS daemon])) +AC_ARG_WITH(dbus_session_bus_default_address, AS_HELP_STRING([--with-dbus-session-bus-default-address=[nonce-tcp:/autolaunch:/tcp:host:port]],[Transport Type to be used (default: nonce-tcp:)]),with_dbus_session_bus_default_address=$withval,with_dbus_session_bus_default_address=nonce-tcp:) AC_ARG_ENABLE([embedded-tests], AS_HELP_STRING([--enable-embedded-tests], @@ -163,7 +165,14 @@ AC_ARG_ENABLE([modular-tests], AC_ARG_ENABLE([tests], AS_HELP_STRING([--enable-tests], [enable/disable all tests, overriding embedded-tests/modular-tests]), - [enable_embedded_tests=$enableval; enable_modular_tests=$enableval], + [ + if test "x$enableval" = xyes; then + AC_MSG_NOTICE([Full test coverage was requested with --enable-tests=yes]) + AC_MSG_NOTICE([This has many dependencies (GLib, dbus-glib, Python)]) + fi + enable_embedded_tests=$enableval + enable_modular_tests=$enableval + ], []) # DBUS_ENABLE_EMBEDDED_TESTS controls unit tests built in to .c files @@ -184,10 +193,11 @@ fi # default (unless you don't have GLib), because they don't bloat the library # or binaries. if test "x$enable_modular_tests" != xno; then - PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.22, gio-2.0 >= 2.22], + PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.24, gio-2.0 >= 2.24], [], [if test "x$enable_modular_tests" = xyes; then - AC_MSG_ERROR([GLib is required by the modular tests]) + AC_MSG_NOTICE([Full test coverage (--enable-modular-tests=yes or --enable-tests=yes) requires GLib]) + AC_MSG_ERROR([$GLIB_ERRORS]) else # assumed to be "auto" enable_modular_tests=no fi]) @@ -195,7 +205,8 @@ if test "x$enable_modular_tests" != xno; then PKG_CHECK_MODULES([DBUS_GLIB], [dbus-glib-1], [], [if test "x$enable_modular_tests" = xyes; then - AC_MSG_ERROR([dbus-glib is required by the modular tests (for now)]) + AC_MSG_NOTICE([Full test coverage (--enable-modular-tests=yes or --enable-tests=yes) requires dbus-glib]) + AC_MSG_ERROR([$DBUS_GLIB_ERRORS]) else # assumed to be "auto" enable_modular_tests=no fi]) @@ -218,12 +229,29 @@ AC_ARG_ENABLE([installed-tests], AM_CONDITIONAL([DBUS_ENABLE_INSTALLED_TESTS], [test "x$enable_installed_tests" = xyes]) +if test "x$enable_tests" = xyes; then + # full test coverage is required, Python is a hard dependency + AC_MSG_NOTICE([Full test coverage (--enable-tests=yes) requires Python, dbus-python, pygobject]) + AM_PATH_PYTHON([2.6]) + AC_MSG_CHECKING([for Python modules for full test coverage]) + if "$PYTHON" -c "import dbus, gobject, dbus.mainloop.glib"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + AC_MSG_ERROR([cannot import dbus, gobject, dbus.mainloop.glib Python modules]) + fi +else + # --enable-tests not given: do not abort if Python is missing + AM_PATH_PYTHON([2.6], [], [:]) +fi + if test x$enable_verbose_mode = xyes; then AC_DEFINE(DBUS_ENABLE_VERBOSE_MODE,1,[Support a verbose mode]) fi if test x$enable_asserts = xno; then AC_DEFINE(DBUS_DISABLE_ASSERT,1,[Disable assertion checking]) + DISABLE_UNUSED_WARNINGS="unused-label" R_DYNAMIC_LDFLAG="" else # -rdynamic is needed for glibc's backtrace_symbols to work. @@ -241,6 +269,7 @@ AC_SUBST(R_DYNAMIC_LDFLAG) if test x$enable_checks = xno; then AC_DEFINE(DBUS_DISABLE_CHECKS,1,[Disable public API sanity checking]) AC_DEFINE(G_DISABLE_CHECKS,1,[Disable GLib public API sanity checking]) + DISABLE_UNUSED_WARNINGS="unused-label" fi if test x$enable_userdb_cache = xyes; then @@ -545,6 +574,11 @@ AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)]) AC_CHECK_FUNCS(vsnprintf vasprintf nanosleep usleep setenv clearenv unsetenv socketpair getgrouplist fpathconf setrlimit poll setlocale localeconv strtoll strtoull) +AC_CHECK_HEADERS([syslog.h]) +if test "x$ac_cv_header_syslog_h" = "xyes"; then + AC_CHECK_DECLS([LOG_PERROR], [], [], [[#include ]]) +fi + #### Check for broken poll; taken from Glib's configure AC_MSG_CHECKING([for broken poll]) @@ -890,6 +924,8 @@ if $dbus_use_libxml; then XML_LIBS=$LIBXML_LIBS XML_CFLAGS=$LIBXML_CFLAGS fi +AC_SUBST([XML_CFLAGS]) +AC_SUBST([XML_LIBS]) # Thread lib detection AC_CHECK_FUNC(pthread_cond_timedwait,[AC_CHECK_LIB(pthread,pthread_cond_timedwait, @@ -920,6 +956,8 @@ fi fi LIBS="$save_libs" +AC_SUBST([THREAD_LIBS]) + # SELinux detection if test x$enable_selinux = xno ; then have_selinux=no; @@ -999,6 +1037,36 @@ fi AM_CONDITIONAL(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX, test x$have_dnotify = xyes) +# For simplicity, we require the userland API for epoll_create1 at +# compile-time (glibc 2.9), but we'll run on kernels that turn out +# not to have it at runtime. +AC_ARG_ENABLE([epoll], + [AS_HELP_STRING([--enable-epoll],[use epoll(4) on Linux])], + [enable_epoll=$enableval], [enable_epoll=auto]) +if test x$enable_epoll = xno; then + have_linux_epoll=no +else + AC_MSG_CHECKING([for Linux epoll(4)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM( + [ + #ifndef __linux__ + #error This is not Linux + #endif + #include + ], + [epoll_create1 (EPOLL_CLOEXEC);])], + [have_linux_epoll=yes], + [have_linux_epoll=no]) + AC_MSG_RESULT([$have_linux_epoll]) +fi +if test x$enable_epoll,$have_linux_epoll = xyes,no; then + AC_MSG_ERROR([epoll support explicitly enabled but not available]) +fi +if test x$have_linux_epoll = xyes; then + AC_DEFINE([DBUS_HAVE_LINUX_EPOLL], 1, [Define to use epoll(4) on Linux]) +fi +AM_CONDITIONAL([HAVE_LINUX_EPOLL], [test x$have_linux_epoll = xyes]) + # kqueue checks if test x$enable_kqueue = xno ; then have_kqueue=no @@ -1067,6 +1135,26 @@ fi AM_CONDITIONAL(HAVE_CONSOLE_OWNER_FILE, test x$have_console_owner_file = xyes) +dnl systemd detection +if test x$enable_systemd = xno ; then + have_systemd=no; +else + PKG_CHECK_MODULES(SYSTEMD, + [libsystemd-login >= 32, libsystemd-daemon >= 32], + have_systemd=yes, + have_systemd=no) + AC_SUBST(SYSTEMD_CFLAGS) + AC_SUBST(SYSTEMD_LIBS) +fi + +if test x$have_systemd = xyes; then + AC_DEFINE(HAVE_SYSTEMD,1,[Have systemd]) +fi + +if test x$enable_systemd = xyes -a x$have_systemd != xyes ; then + AC_MSG_ERROR([Explicitly requested systemd support, but systemd not found]) +fi + # libaudit detection if test x$enable_libaudit = xno ; then have_libaudit=no; @@ -1087,7 +1175,9 @@ if test x$have_libaudit = xyes ; then AC_DEFINE(HAVE_LIBAUDIT,1,[audit daemon SELinux support]) fi -# Check for ADT API +AC_SUBST([SELINUX_LIBS]) + +# Check for ADT API (Solaris Basic Security Mode auditing) AC_MSG_CHECKING(for ADT API) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include @@ -1103,6 +1193,7 @@ then else AC_MSG_RESULT(no) fi +AC_SUBST([ADT_LIBS]) # Check for SCM_RIGHTS AC_MSG_CHECKING([for SCM_RIGHTS]) @@ -1124,24 +1215,22 @@ if test x$dbus_win = xyes ; then fi fi -#### Set up final flags -DBUS_CLIENT_CFLAGS= -DBUS_CLIENT_LIBS="$THREAD_LIBS $NETWORK_libs" -AC_SUBST(DBUS_CLIENT_CFLAGS) -AC_SUBST(DBUS_CLIENT_LIBS) +AC_SUBST([NETWORK_libs]) -DBUS_BUS_CFLAGS="$XML_CFLAGS" -DBUS_BUS_LIBS="$XML_LIBS $SELINUX_LIBS $THREAD_LIBS $ADT_LIBS $NETWORK_libs" -AC_SUBST(DBUS_BUS_CFLAGS) -AC_SUBST(DBUS_BUS_LIBS) +AC_ARG_WITH([valgrind], + [AS_HELP_STRING([--with-valgrind], + [Add instrumentation to help valgrind to understand our allocator])], + [], + [with_valgrind=no]) -DBUS_LAUNCHER_CFLAGS="$XML_CFLAGS" -DBUS_LAUNCHER_LIBS="$XML_LIBS $THREAD_LIBS $NETWORK_libs" -AC_SUBST(DBUS_LAUNCHER_CFLAGS) -AC_SUBST(DBUS_LAUNCHER_LIBS) +if test x$with_valgrind != xno; then + PKG_CHECK_MODULES([VALGRIND], [valgrind >= 3.6]) + AC_DEFINE([WITH_VALGRIND], [1], [Define to add Valgrind instrumentation]) +fi -DBUS_TEST_LIBS="$THREAD_LIBS $NETWORK_libs" -AC_SUBST(DBUS_TEST_LIBS) +#### Set up final flags +LIBDBUS_LIBS="$THREAD_LIBS $NETWORK_libs" +AC_SUBST([LIBDBUS_LIBS]) ### X11 detection DBUS_X_LIBS= @@ -1209,8 +1298,9 @@ TP_COMPILER_WARNINGS([WARNING_CFLAGS], dnl Override with --enable-Werror or --disable-Werror [test x$dbus_win != xyes -a x$dbus_cygwin != xyes -a x$USE_MAINTAINER_MODE = xyes], - dnl enable these warnings if possible: + dnl Enable these warnings if possible: [all \ + extra \ char-subscripts \ missing-declarations \ missing-prototypes \ @@ -1222,12 +1312,25 @@ TP_COMPILER_WARNINGS([WARNING_CFLAGS], declaration-after-statement \ ], - dnl disable these warnings if possible, make them non-fatal if possible, - dnl and don't enable -Werror unless we succeeded: - dnl (unused is by design, sign-compare and pointer-sign are fd.o #17433) - [unused \ + dnl Disable these warnings if possible, make them non-fatal if possible, + dnl and don't enable -Werror unless we succeeded. + dnl + dnl Intentional: + dnl - $DISABLE_UNUSED_WARNINGS disables unused-label warnings if not + dnl checking or not asserting + dnl - missing field initializers being 0 is a C feature, not a bug + dnl - unused-parameter is to make writing callbacks less annoying + dnl + dnl To be fixed one day: + dnl - sign-compare and pointer-sign are workarounds for fd.o #17433 + dnl - type-limits is probably a bug too, but having the rest of -Wextra + dnl is better than nothing + [$DISABLE_UNUSED_WARNINGS \ + missing-field-initializers \ + unused-parameter \ sign-compare \ pointer-sign \ + type-limits \ ]) if test "x$GCC" = "xyes"; then @@ -1373,7 +1476,12 @@ AM_CONDITIONAL(DBUS_INIT_SCRIPTS_CYGWIN, test x$with_init_scripts = xcygwin) ##### systemd unit files AC_ARG_WITH([systemdsystemunitdir], AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), - [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) + [], + [ + PKG_CHECK_EXISTS([systemd], + [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)], + [with_systemdsystemunitdir=no]) + ]) if test "x$with_systemdsystemunitdir" != xno; then AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) fi @@ -1474,31 +1582,19 @@ DBUS_PWD=`pwd` # Useful in a cross-compilation environment, where the tests are run on the host system. AC_ARG_WITH(dbus-test-dir, AS_HELP_STRING([--with-dbus-test-dir=[dirname]],[path where the tests tools are available]), DBUS_PWD=$withval) -AC_DEFUN([TEST_PATH], [ -TEST_$1=${DBUS_PWD}/test/$2 -AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1", - [Full path to test file test/$2 in builddir]) -AC_SUBST(TEST_$1) -]) -AC_DEFUN([TEST_PROG], [ -TEST_$1=${DBUS_PWD}/test/$2 -AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1$EXEEXT", - [Full path to test file test/$2 in builddir]) -AC_SUBST(TEST_$1) -]) -TEST_PATH(VALID_SERVICE_DIR, data/valid-service-files) -TEST_PATH(INVALID_SERVICE_DIR, data/invalid-service-files) -TEST_PATH(VALID_SERVICE_SYSTEM_DIR, data/valid-service-files-system) -TEST_PATH(INVALID_SERVICE_SYSTEM_DIR, data/invalid-service-files-system) -TEST_PROG(SERVICE_BINARY, test-service) -TEST_PROG(SHELL_SERVICE_BINARY, test-shell-service) -TEST_PROG(EXIT_BINARY, test-exit) -TEST_PROG(SEGFAULT_BINARY, test-segfault) -TEST_PROG(SLEEP_FOREVER_BINARY, test-sleep-forever) -TEST_PROG(PRIVSERVER_BINARY, name-test/test-privserver) - -AC_DEFINE_UNQUOTED(TEST_BUS_BINARY, "$DBUS_PWD/bus/dbus-daemon$EXEEXT", +DBUS_TEST_EXEC="$DBUS_PWD/test" +DBUS_TEST_DATA="$DBUS_PWD/test/data" + +AC_SUBST([DBUS_TEST_DATA]) +AC_SUBST([DBUS_TEST_EXEC]) + +AC_DEFINE_UNQUOTED([DBUS_TEST_EXEC], ["$DBUS_TEST_EXEC"], + [Full path to the daemon in the builddir]) +AC_DEFINE_UNQUOTED([DBUS_EXEEXT], ["$EXEEXT"], + [Extension for executables, typically empty or .exe]) + +AC_DEFINE_UNQUOTED(TEST_BUS_BINARY, ["$DBUS_PWD/bus/dbus-daemon$EXEEXT"], [Full path to the daemon in the builddir]) AC_SUBST(TEST_BUS_BINARY) @@ -1529,6 +1625,15 @@ fi AC_SUBST(TEST_SOCKET_DIR) AC_DEFINE_UNQUOTED(DBUS_TEST_SOCKET_DIR, "$TEST_SOCKET_DIR", [Where to put test sockets]) +if test "x$dbus_unix" = xyes; then + TEST_LISTEN="unix:tmpdir=$TEST_SOCKET_DIR" +else + TEST_LISTEN="tcp:host=localhost" +fi +AC_SUBST([TEST_LISTEN]) +AC_DEFINE_UNQUOTED([TEST_LISTEN], ["$TEST_LISTEN"], + [Listening address for regression tests]) + if ! test -z "$with_session_socket_dir" ; then DBUS_SESSION_SOCKET_DIR="$with_session_socket_dir" else @@ -1538,7 +1643,7 @@ AC_DEFINE_UNQUOTED(DBUS_SESSION_SOCKET_DIR, "$DBUS_SESSION_SOCKET_DIR", [Where p AC_SUBST(DBUS_SESSION_SOCKET_DIR) if test x$dbus_win = xyes; then - DBUS_SESSION_BUS_DEFAULT_ADDRESS="nonce-tcp:" + DBUS_SESSION_BUS_DEFAULT_ADDRESS="$with_dbus_session_bus_default_address" elif test x$have_launchd = xyes; then DBUS_SESSION_BUS_DEFAULT_ADDRESS="launchd:env=DBUS_LAUNCHD_SESSION_BUS_SOCKET" else @@ -1647,6 +1752,7 @@ echo " Building inotify support: ${have_inotify} Building dnotify support: ${have_dnotify} Building kqueue support: ${have_kqueue} + Building systemd support: ${have_systemd} Building X11 code: ${enable_x11} Building Doxygen docs: ${enable_doxygen_docs} Building XML docs: ${enable_xml_docs}