summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorAnas Nashif <anas.nashif@intel.com>2012-10-30 16:34:12 -0700
committerAnas Nashif <anas.nashif@intel.com>2012-10-30 16:34:12 -0700
commit7680502dee971654fd425d2c35e843232d91530a (patch)
tree6f677465ea9b10446acef3277e8b3f3ff604d58e /configure.ac
downloaddbus-glib-7680502dee971654fd425d2c35e843232d91530a.tar.gz
dbus-glib-7680502dee971654fd425d2c35e843232d91530a.tar.bz2
dbus-glib-7680502dee971654fd425d2c35e843232d91530a.zip
Imported Upstream version 0.100upstream/0.100
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac508
1 files changed, 508 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..8ea59e3
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,508 @@
+dnl -*- mode: m4 -*-
+AC_PREREQ(2.52)
+
+AC_INIT([dbus-glib], [0.100],
+ [https://bugs.freedesktop.org/enter_bug.cgi?product=dbus&component=GLib])
+
+AC_CANONICAL_HOST
+
+AM_INIT_AUTOMAKE([1.9])
+
+AM_CONFIG_HEADER(config.h)
+
+# Honor aclocal flags
+ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+AC_CONFIG_MACRO_DIR(m4)
+
+ ## must come before we use the $USE_MAINTAINER_MODE variable later
+AM_MAINTAINER_MODE
+
+m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
+
+# libtool versioning - this applies to libdbus
+#
+# See http://sources.redhat.com/autobook/autobook/autobook_91.html#SEC91 for details
+#
+
+## increment if the interface has additions, changes, removals.
+LT_CURRENT=4
+
+## increment any time the source changes; set to
+## 0 if you increment CURRENT
+LT_REVISION=2
+
+## increment if any interfaces have been added; set to 0
+## if any interfaces have been changed or removed. removal has
+## precedence over adding, so set to 0 if both happened.
+LT_AGE=2
+
+AC_SUBST(LT_CURRENT)
+AC_SUBST(LT_REVISION)
+AC_SUBST(LT_AGE)
+
+
+AC_PROG_CC
+AC_ISC_POSIX
+AC_HEADER_STDC
+
+AC_ARG_ENABLE(tests, AS_HELP_STRING([--enable-tests],[enable unit test code]),enable_tests=$enableval,enable_tests=$USE_MAINTAINER_MODE)
+AC_ARG_ENABLE(ansi, AS_HELP_STRING([--enable-ansi],[enable -ansi -pedantic gcc flags]),enable_ansi=$enableval,enable_ansi=no)
+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)
+AC_ARG_ENABLE(asserts, AS_HELP_STRING([--enable-asserts],[include assertion checks]),enable_asserts=$enableval,enable_asserts=$USE_MAINTAINER_MODE)
+AC_ARG_ENABLE(checks, AS_HELP_STRING([--enable-checks],[include sanity checks on public API]),enable_checks=$enableval,enable_checks=yes)
+AC_ARG_ENABLE(gcov, AS_HELP_STRING([--enable-gcov],[compile with coverage profiling instrumentation (gcc only)]),enable_gcov=$enableval,enable_gcov=no)
+AC_ARG_ENABLE(bash-completion, AS_HELP_STRING([--enable-bash-completion],[install bash completion scripts]),enable_bash_completion=$enableval,enable_bash_completion=yes)
+AC_ARG_WITH(test-socket-dir, AS_HELP_STRING([--with-test-socket-dir=[dirname]],[Where to put sockets for make check]))
+
+
+AC_ARG_WITH(introspect-xml, AS_HELP_STRING([--with-introspect-xml=[filename]],[Pass in a pregenerated dbus daemon introspection xml file (as generated by 'dbus-daemon --introspect') to use instead of querying the installed dbus daemon]))
+
+
+AM_CONDITIONAL(DBUS_BASH_COMPLETION, test x$enable_bash_completion = xyes)
+if test x$enable_bash_completion = xyes; then
+ AC_DEFINE(DBUS_BASH_COMPLETION,1,[Enable bash completion])
+fi
+
+if test x$enable_verbose_mode = xyes; then
+ AC_DEFINE(DBUS_ENABLE_VERBOSE_MODE,1,[Support a verbose mode])
+fi
+
+AC_ARG_WITH(dbus-binding-tool,
+ AS_HELP_STRING([--with-dbus-binding-tool=[filename]],[Use external dbus-binding-tool program]),
+ [DBUS_BINDING_TOOL=$withval],[DBUS_BINDING_TOOL=\$\(top_builddir\)/dbus/dbus-binding-tool])
+AC_SUBST(DBUS_BINDING_TOOL)
+
+
+dnl DBUS_BUILD_TESTS controls unit tests built in to .c files
+dnl and also some stuff in the test/ subdir
+AM_CONDITIONAL(DBUS_BUILD_TESTS, test x$enable_tests = xyes)
+if test x$enable_tests = xyes; then
+ AC_DEFINE(DBUS_BUILD_TESTS,1,[Build test code])
+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])
+ AC_DEFINE(G_DISABLE_ASSERT,1,[Disable GLib assertion macros])
+fi
+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])
+fi
+
+#### gcc warning flags
+
+AC_DEFUN([AC_CC_TRY_FLAG], [
+ AC_MSG_CHECKING([whether gcc understands $1])
+
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $1"
+
+ AC_COMPILE_IFELSE([ ], [ac_cc_flag=yes], [ac_cc_flag=no])
+ CFLAGS="$ac_save_CFLAGS"
+
+ if test "x$ac_cc_flag" = "xyes"; then
+ ifelse([$2], , :, [$2])
+ else
+ ifelse([$3], , :, [$3])
+ fi
+ AC_MSG_RESULT([$ac_cc_flag])
+])
+
+if test "x$GCC" = "xyes"; then
+ AC_CC_TRY_FLAG([-Wfloat-equal],
+ [ac_flag_float_equal=yes],
+ [ac_flag_float_equal=no])
+
+ changequote(,)dnl
+ case " $CFLAGS " in
+ *[\ \ ]-Wall[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -Wall" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-Wchar-subscripts[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -Wchar-subscripts" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-Wmissing-declarations[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -Wmissing-declarations" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-Wmissing-prototypes[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -Wmissing-prototypes" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-Wnested-externs[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -Wnested-externs" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-Wpointer-arith[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -Wpointer-arith" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-Wcast-align[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -Wcast-align" ;;
+ esac
+
+ if test "x$ac_flag_float_equal" = "xyes"; then
+ case " $CFLAGS " in
+ *[\ \ ]-Wfloat-equal[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -Wfloat-equal" ;;
+ esac
+ fi
+
+ case " $CFLAGS " in
+ *[\ \ ]-Wsign-compare[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -Wsign-compare" ;;
+ esac
+
+ # This one is special - it's not a warning override.
+ # http://bugs.freedesktop.org/show_bug.cgi?id=10599
+ # is the bug for DBus core.
+ case " $CFLAGS " in
+ *[\ \ ]-fno-strict-aliasing[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -fno-strict-aliasing" ;;
+ esac
+
+ if test "x$enable_ansi" = "xyes"; then
+ case " $CFLAGS " in
+ *[\ \ ]-ansi[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -ansi" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-D_POSIX_C_SOURCE*) ;;
+ *) CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=199309L" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-D_BSD_SOURCE[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -D_BSD_SOURCE" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-pedantic[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -pedantic" ;;
+ esac
+ fi
+ if test x$enable_gcov = xyes; then
+ case " $CFLAGS " in
+ *[\ \ ]-fprofile-arcs[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -fprofile-arcs" ;;
+ esac
+ case " $CFLAGS " in
+ *[\ \ ]-ftest-coverage[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -ftest-coverage" ;;
+ esac
+
+ ## remove optimization
+ CFLAGS=`echo "$CFLAGS" | sed -e 's/-O[0-9]*//g'`
+ fi
+ changequote([,])dnl
+else
+ if test x$enable_gcov = xyes; then
+ AC_MSG_ERROR([--enable-gcov can only be used with gcc])
+ fi
+fi
+
+AM_PROG_LIBTOOL
+
+changequote(,)dnl
+# compress spaces in flags
+CFLAGS=`echo "$CFLAGS" | sed -e 's/ +/ /g'`
+CPPFLAGS=`echo "$CPPFLAGS" | sed -e 's/ +/ /g'`
+changequote([,])dnl
+
+if test x$enable_gcov = xyes; then
+ # so that config.h changes when you toggle gcov support
+ AC_DEFINE_UNQUOTED([DBUS_GCOV_ENABLED],
+ [__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__],
+ [Defined to the gcc version if gcov is enabled, to force a rebuild due to config.h changing])
+fi
+
+#### Various functions
+AC_SEARCH_LIBS([socket], [socket])
+
+dnl check for socklen_t
+AC_MSG_CHECKING(whether socklen_t is defined)
+AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netdb.h>
+],[
+socklen_t foo;
+foo = 1;
+],dbus_have_socklen_t=yes,dbus_have_socklen_t=no)
+AC_MSG_RESULT($dbus_have_socklen_t)
+
+if test "x$dbus_have_socklen_t" = "xyes"; then
+ AC_DEFINE(HAVE_SOCKLEN_T,1,[Have socklen_t type])
+fi
+
+#### Abstract sockets
+
+AC_LANG_PUSH(C)
+AC_CACHE_CHECK([abstract socket namespace],
+ ac_cv_have_abstract_sockets,
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM(
+[[
+#include <sys/types.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <errno.h>
+]],
+[[
+ int listen_fd;
+ struct sockaddr_un addr;
+
+ listen_fd = socket (PF_UNIX, SOCK_STREAM, 0);
+
+ if (listen_fd < 0)
+ {
+ fprintf (stderr, "socket() failed: %s\n", strerror (errno));
+ exit (1);
+ }
+
+ memset (&addr, '\0', sizeof (addr));
+ addr.sun_family = AF_UNIX;
+ strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test");
+ addr.sun_path[0] = '\0'; /* this is what makes it abstract */
+
+ if (bind (listen_fd, (struct sockaddr*) &addr, SUN_LEN (&addr)) < 0)
+ {
+ fprintf (stderr, "Abstract socket namespace bind() failed: %s\n",
+ strerror (errno));
+ exit (1);
+ }
+ else
+ exit (0);
+]])],
+ [ac_cv_have_abstract_sockets=yes],
+ [ac_cv_have_abstract_sockets=no]
+)])
+AC_LANG_POP(C)
+
+if test x$enable_abstract_sockets = xyes; then
+ if test x$ac_cv_have_abstract_sockets = xno; then
+ AC_MSG_ERROR([Abstract sockets explicitly required, and support not detected.])
+ fi
+fi
+
+if test x$enable_abstract_sockets = xno; then
+ ac_cv_have_abstract_sockets=no;
+fi
+
+if test x$ac_cv_have_abstract_sockets = xyes ; then
+ DBUS_PATH_OR_ABSTRACT=abstract
+ AC_DEFINE(HAVE_ABSTRACT_SOCKETS,1,[Have abstract socket namespace])
+else
+ DBUS_PATH_OR_ABSTRACT=path
+fi
+
+# this is used in addresses to prefer abstract, e.g.
+# unix:path=/foo or unix:abstract=/foo
+AC_SUBST(DBUS_PATH_OR_ABSTRACT)
+
+#### Sort out XML library
+
+# see what we have
+AC_CHECK_LIB(expat, XML_ParserCreate_MM,
+ [ AC_CHECK_HEADERS(expat.h, have_expat=true, have_expat=false) ],
+ have_expat=false)
+
+if ! $have_expat ; then
+ AC_MSG_ERROR([expat library not found, check config.log for failed attempts])
+fi
+
+XML_LIBS=-lexpat
+XML_CFLAGS=
+
+
+#### Set up final flags
+
+PKG_CHECK_MODULES([DBUS], [dbus-1 >= 1.2.16])
+AC_SUBST([DBUS_CFLAGS])
+AC_SUBST([DBUS_LIBS])
+
+# Glib detection
+PKG_CHECK_MODULES([DBUS_GLIB], [gobject-2.0 >= 2.26, gio-2.0 >= 2.26])
+PKG_CHECK_MODULES(DBUS_GLIB_THREADS, gthread-2.0 >= 2.6, have_glib_threads=yes, have_glib_threads=no)
+
+AM_CONDITIONAL(HAVE_GLIB_THREADS, test x$have_glib_threads = xyes)
+
+GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
+AC_SUBST(GLIB_GENMARSHAL)
+
+dnl GLib flags
+AC_SUBST(DBUS_GLIB_CFLAGS)
+AC_SUBST(DBUS_GLIB_LIBS)
+AC_SUBST(DBUS_GLIB_THREADS_LIBS)
+
+DBUS_GLIB_TOOL_CFLAGS=$XML_CFLAGS
+DBUS_GLIB_TOOL_LIBS="$XML_LIBS"
+AC_SUBST(DBUS_GLIB_TOOL_CFLAGS)
+AC_SUBST(DBUS_GLIB_TOOL_LIBS)
+
+### gtk-doc Documentation
+GTK_DOC_CHECK(1.4)
+
+#### Have to go $localstatedir->$prefix/var->/usr/local/var
+#### someone please fix this a better way...
+
+#### find the actual value for $prefix that we'll end up with
+## (I know this is broken and should be done in the Makefile, but
+## that's a major pain and almost nobody actually seems to care)
+REAL_PREFIX=
+if test "x$prefix" = "xNONE"; then
+ REAL_PREFIX=$ac_default_prefix
+else
+ REAL_PREFIX=$prefix
+fi
+
+## temporarily change prefix and exec_prefix
+old_prefix=$prefix
+prefix=$REAL_PREFIX
+
+if test "x$exec_prefix" = xNONE ; then
+ REAL_EXEC_PREFIX=$REAL_PREFIX
+else
+ REAL_EXEC_PREFIX=$exec_prefix
+fi
+old_exec_prefix=$exec_prefix
+exec_prefix=$REAL_EXEC_PREFIX
+
+## eval everything
+LOCALSTATEDIR_TMP="$localstatedir"
+EXPANDED_LOCALSTATEDIR=`eval echo $LOCALSTATEDIR_TMP`
+AC_SUBST(EXPANDED_LOCALSTATEDIR)
+
+SYSCONFDIR_TMP="$sysconfdir"
+EXPANDED_SYSCONFDIR=`eval echo $SYSCONFDIR_TMP`
+AC_SUBST(EXPANDED_SYSCONFDIR)
+
+BINDIR_TMP="$bindir"
+EXPANDED_BINDIR=`eval echo $BINDIR_TMP`
+AC_SUBST(EXPANDED_BINDIR)
+
+LIBDIR_TMP="$libdir"
+EXPANDED_LIBDIR=`eval echo $LIBDIR_TMP`
+AC_SUBST(EXPANDED_LIBDIR)
+
+DATADIR_TMP="$datadir"
+EXPANDED_DATADIR=`eval echo $DATADIR_TMP`
+AC_SUBST(EXPANDED_DATADIR)
+
+## put prefix and exec_prefix back
+prefix=$old_prefix
+exec_prefix=$old_exec_prefix
+
+#### Tell tests where to find certain stuff in builddir
+ABSOLUTE_TOP_BUILDDIR=`cd ${ac_top_builddir}. && pwd`
+
+AC_DEFUN([TEST_PATH], [
+TEST_$1=${ABSOLUTE_TOP_BUILDDIR}/test/$2
+AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1",
+ [Full path to test file test/$2 in builddir])
+AC_SUBST(TEST_$1)
+])
+
+TEST_PATH(SERVICE_DIR, data/valid-service-files)
+TEST_PATH(SERVICE_BINARY, test-service)
+TEST_PATH(SHELL_SERVICE_BINARY, test-shell-service)
+TEST_PATH(CORE_SERVICE_BINARY, core/test-service-glib)
+TEST_PATH(INTERFACES_SERVICE_BINARY, interfaces/test-service)
+TEST_PATH(EXIT_BINARY, test-exit)
+TEST_PATH(SEGFAULT_BINARY, test-segfault)
+TEST_PATH(SLEEP_FOREVER_BINARY, test-sleep-forever)
+AC_SUBST(ABSOLUTE_TOP_BUILDDIR)
+
+if ! test -z "$with_test_socket_dir" ; then
+ TEST_SOCKET_DIR="$with_test_socket_dir"
+else
+ TEST_SOCKET_DIR=$DEFAULT_SOCKET_DIR
+fi
+AC_SUBST(TEST_SOCKET_DIR)
+AC_DEFINE_UNQUOTED(DBUS_TEST_SOCKET_DIR, "$TEST_SOCKET_DIR", [Where to put test sockets])
+
+AC_OUTPUT([
+Makefile
+m4/Makefile
+doc/Makefile
+doc/reference/Makefile
+doc/reference/version.xml
+dbus/Makefile
+dbus/examples/Makefile
+dbus/examples/statemachine/Makefile
+test/Makefile
+test/core/Makefile
+test/interfaces/Makefile
+test/data/valid-service-files/debug-glib.service
+test/data/valid-service-files/debug-echo.service
+test/data/valid-service-files/interfaces-test.service
+test/lib/Makefile
+test/manual/Makefile
+tools/Makefile
+dbus-glib-1.pc
+dbus-glib-1-uninstalled.pc
+])
+
+dnl ==========================================================================
+echo "
+ D-BUS GLIB BINDINGS $VERSION
+ ==============
+
+ prefix: ${prefix}
+ exec_prefix: ${exec_prefix}
+ libdir: ${EXPANDED_LIBDIR}
+ bindir: ${EXPANDED_BINDIR}
+ sysconfdir: ${EXPANDED_SYSCONFDIR}
+ localstatedir: ${EXPANDED_LOCALSTATEDIR}
+ datadir: ${EXPANDED_DATADIR}
+ source code location: ${srcdir}
+ compiler: ${CC}
+ cflags: ${CFLAGS}
+ cppflags: ${CPPFLAGS}
+"
+
+echo "
+ Maintainer mode: ${USE_MAINTAINER_MODE}
+ gcc coverage profiling: ${enable_gcov}
+ Building unit tests: ${enable_tests}
+ Building verbose mode: ${enable_verbose_mode}
+ Building assertions: ${enable_asserts}
+ Building checks: ${enable_checks}
+ Building Gtk-doc docs: ${enable_gtk_doc}
+ Bash Completion: ${enable_bash_completion}
+ Using XML parser: ${with_xml}
+ 'make check' socket dir: ${TEST_SOCKET_DIR}
+"
+
+if test x$enable_tests = xyes; then
+ echo "NOTE: building with unit tests increases the size of the installed library and renders it insecure."
+fi
+if test x$enable_tests = xyes -a x$enable_asserts = xno; then
+ 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)"
+fi
+if test x$enable_gcov = xyes; then
+ echo "NOTE: building with coverage profiling is definitely for developers only."
+fi
+if test x$enable_verbose_mode = xyes; then
+ echo "NOTE: building with verbose mode increases library size, may slightly increase security risk, and decreases performance."
+fi
+if test x$enable_asserts = xyes; then
+ echo "NOTE: building with assertions increases library size and decreases performance."
+fi
+if test x$enable_checks = xno; then
+ 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."
+fi