From f6cda0f5feec730e08c2abf60ce9560e3b167b7f Mon Sep 17 00:00:00 2001 From: Thomas Zimmermann Date: Fri, 12 Aug 2016 22:53:46 +0200 Subject: Add configure option '--enable-debug' to control debugging and profiling The command-line option '--enable-debug' controls the debugging and profiling flags of the build. Debugging is disabled by default and only enabled on developer builds. Profiling is always disabled. Both options can be overridden from the command line (e.g., for profiling of release builds). Signed-off-by: Thomas Zimmermann --- configure.ac | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index 460b32b..926d6bf 100644 --- a/configure.ac +++ b/configure.ac @@ -7,6 +7,7 @@ m4_define([dbus_micro_version], [5]) 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]) + AC_CONFIG_AUX_DIR([build-aux]) m4_pattern_forbid([^AX_], @@ -64,6 +65,33 @@ AC_SUBST(DBUS_MINOR_VERSION) AC_SUBST(DBUS_MICRO_VERSION) AC_SUBST(DBUS_VERSION) +dnl +dnl Build configuration +dnl + +dnl This must come first: other options use this to set their defaults. Don't +dnl enable developer mode on production builds. +AC_ARG_ENABLE([developer], + [AS_HELP_STRING([--enable-developer], + [set defaults to be appropriate for a D-Bus developer instead of a distribution/end-user])], + [enable_developer=$enableval], + [enable_developer=no]) + +dnl ax_is_release means 'release build' not 'release version.' So its +dnl value only depends on the setting of 'enable_developer', but never +dnl on the package's micro version. Several AX_ macros depend on this. +dnl See https://bugs.freedesktop.org/show_bug.cgi?id=97357 +AS_IF([test "x$enable_developer" = "xyes"],[ + ax_is_release=no + ],[ + ax_is_release=yes + ]) + +# The debugging check must run before the compiler tests. Other command-line +# options also use it to set their defaults. We disable debugging by default, +# expect for non-release builds. +AX_CHECK_ENABLE_DEBUG([$enable_developer]) + AC_PROG_CC AM_PROG_CC_C_O AC_PROG_CXX @@ -149,13 +177,6 @@ AM_CONDITIONAL(DBUS_WINCE, test "$dbus_wince" = yes) AM_CONDITIONAL(DBUS_UNIX, test "$dbus_unix" = yes) AM_CONDITIONAL(DBUS_CYGWIN, test "$dbus_cygwin" = yes) -# this must come first: other options use this to set their defaults -AC_ARG_ENABLE([developer], - [AS_HELP_STRING([--enable-developer], - [set defaults to be appropriate for a D-Bus developer instead of a distribution/end-user])], - [], - [enable_developer=no]) - DBUS_STATIC_BUILD_CPPFLAGS= if test "x$enable_shared" = xno; then # On Windows, linking against the static library requires special effort -- 2.7.4