system-controller: only override dst rectangle for apps.
[profile/ivi/murphy.git] / configure.ac
index 5743f29..c5bb3ba 100644 (file)
@@ -1,17 +1,14 @@
-
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.59)
 
-AC_INIT([murphy],
-        m4_esyscmd([build-aux/git-version-gen .tarball-version]),
-        [krisztian.litkey at intel.com])
+AC_INIT([murphy], m4_esyscmd([build-aux/git-version-gen .tarball-version]))
 
-AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_SRCDIR([src])
+AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_HEADER([src/config.h])
-AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
+AM_INIT_AUTOMAKE([-Wno-portability])
 
 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4")
 
@@ -34,20 +31,60 @@ AC_DISABLE_STATIC
 # Checks for programs.
 AC_PROG_CC
 AC_PROG_CC_C99
+# We need AC_PROG_CXX if Qt support is enabled but (at least some
+# versions of autotools) cannot handle conditional use of this.
+AC_PROG_CXX
 AC_PROG_AWK
 AC_PROG_INSTALL
 AM_PROG_CC_C_O
 AM_PROG_LIBTOOL
 AC_PROG_LEX
 AC_PROG_YACC
+AM_PROG_LEX
+AC_SUBST(LEXLIB)
+
+# Check that we have flex/bison and not lex/yacc.
+AC_MSG_CHECKING([for flex vs. lex])
+case $LEX in
+    *missing\ flex*)
+        AC_MSG_ERROR([looks like you're missing flex])
+        ;;
+    *flex*)
+        AC_MSG_RESULT([ok, looks like we have flex])
+        ;;
+    *)
+        AC_MSG_ERROR([flex is required])
+        ;;
+esac
 
-if test "$LEX" != "flex" ; then
-   AC_MSG_ERROR([flex is required])
-fi
+AC_MSG_CHECKING([for bison vs. yacc])
+case $YACC in
+    *missing\ *)
+        AC_MSG_ERROR([looks like you're missing bison])
+        ;;
+    *bison*)
+        AC_MSG_RESULT([ok, looks like we have bison])
+        ;;
+    *)
+        AC_MSG_ERROR([bison is required])
+        ;;
+esac
 
-if test "$YACC" != "bison -y" ; then
-   AC_MSG_ERROR([bison is required])
+# Guesstimate native compiler if we're cross-compiling.
+if test "$cross_compiling" != "no"; then
+    AC_MSG_NOTICE([Looks like we're being cross-compiled...])
+    if test -z "$CC_FOR_BUILD"; then
+        CC_FOR_BUILD=cc
+    fi
+else
+    AC_MSG_NOTICE([Looks like we're doing a native compilation...])
+    CC_FOR_BUILD='$(CC)'
 fi
+AC_SUBST(CC_FOR_BUILD)
+UNSHAVED_CC_FOR_BUILD="$CC_FOR_BUILD"
+
+# Make first invocation of PKG_CHECK_MODULES 'if-then-else-fi'-safe.
+PKG_PROG_PKG_CONFIG
 
 # Checks for libraries.
 AC_CHECK_LIB([dl], [dlopen dlclose dlsym dlerror])
@@ -76,18 +113,15 @@ AC_CHECK_TYPES([ptrdiff_t])
 # Checks for library functions.
 AC_FUNC_ERROR_AT_LINE
 AC_HEADER_MAJOR
-AC_FUNC_MALLOC
+if test "$cross_compiling" = "no"; then
+    AC_FUNC_MALLOC
+fi
 AC_FUNC_STRTOD
 AC_CHECK_FUNCS([clock_gettime memmove memset regcomp strcasecmp strchr strdup strrchr strtol strtoul])
 
-# Check for glib.
-PKG_CHECK_MODULES(GLIB, glib-2.0)
-AC_SUBST(GLIB_CFLAGS)
-AC_SUBST(GLIB_LIBS)
-
 # Check and enable extra compiler warnings if they are supported.
 AC_ARG_ENABLE(extra-warnings,
-              [  --enable-extra-warnings         enable extra compiler warnings],
+              [  --enable-extra-warnings enable extra compiler warnings],
              [extra_warnings=$enableval], [extra_warnings=auto])
 
 WARNING_CFLAGS=""
@@ -103,75 +137,565 @@ fi
 
 AC_SUBST(WARNING_CFLAGS)
 
+# By default try to find the system default Lua (assumed to be
+# called lua(.pc). If that is not found, try to look for
+# packages lua5.2 and lua5.1, which can be found in Debian-based
+# distributions.
+#
+# You can override this using the --with-lua option. For instance
+# to use Lua 5.1 on Ubuntu while having 5.2 installed, you'd use
+# --with-lua=lua5.1.
+AC_ARG_WITH(lua,
+            [  --with-lua                build with specified Lua (pkgconfig filename without .pc suffix)],
+            [with_lua=$withval], [with_lua=default])
+
+if test "x$with_lua" = "xdefault"; then
+    # Check for "lua" first, then "lua5.2" and finally for "lua5.1"
+    AC_MSG_NOTICE([Checking for an installed Lua...])
+    PKG_CHECK_MODULES([LUA], [lua >= 5.1.1],
+        [with_lua=lua],
+        [PKG_CHECK_MODULES([LUA52], [lua5.2],
+            [with_lua=lua5.2
+             LUA_CFLAGS=$LUA52_CFLAGS
+             LUA_LIBS=$LUA52_LIBS],
+            [PKG_CHECK_MODULES([LUA51], [lua5.1 >= 5.1.1],
+                [with_lua=lua5.1
+                 LUA_CFLAGS=$LUA51_CFLAGS
+                 LUA_LIBS=$LUA51_LIBS],
+                [AC_MSG_ERROR(Package requirement (lua >= 5.1.1) was not met!)])
+         ])
+    ])
+else
+    # Check for pre-defined Lua.
+    AC_MSG_NOTICE([Compiling with Lua package $with_lua.])
+    PKG_CHECK_MODULES(LUA, $with_lua >= 5.1.1)
+fi
+
+AC_SUBST(LUA_CFLAGS)
+AC_SUBST(LUA_LIBS)
+
+# Check if potentially GPL bits are allowed to be enabled.
+AC_ARG_ENABLE(gpl,
+              [  --enable-gpl            enable linking against GPL code],
+             [enable_gpl=$enableval], [enable_gpl=no])
 
-# Check if DBUS was enabled.
-AC_ARG_ENABLE(dbus,
-              [  --enable-dbus         enable D-BUS support],
-             [enable_dbus=$enableval], [enable_dbus=no])
+# Check if original libdbus-based DBUS support was enabled.
+AC_ARG_ENABLE(libdbus,
+              [  --enable-libdbus        enable libdbus-based D-BUS support],
+             [enable_libdbus=$enableval], [enable_libdbus=no])
 
-if test "$enable_dbus" = "yes"; then
-    PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.70)
+if test "$enable_libdbus" = "yes"; then
+    if test "$enable_gpl" = "no"; then
+        AC_MSG_ERROR([libdbus D-Bus support requires the --enable-gpl option.])
+    fi
+    PKG_CHECK_MODULES(LIBDBUS, dbus-1 >= 0.70)
 
     DBUS_SESSION_DIR="`pkg-config --variable session_bus_services_dir dbus-1`"
     AC_SUBST(DBUS_SESSION_DIR)
+
+    AC_DEFINE([LIBDBUS_ENABLED], 1, [Enable libdbus D-Bus support ?])
+else
+    AC_MSG_NOTICE([libdbus-based D-Bus support is disabled.])
+fi
+
+AM_CONDITIONAL(LIBDBUS_ENABLED, [test "$enable_libdbus" = "yes"])
+AC_SUBST(LIBDBUS_ENABLED)
+AC_SUBST(LIBDBUS_CFLAGS)
+AC_SUBST(LIBDBUS_LIBS)
+
+# Check if systemd-bus-based D-Bus support was enabled.
+AC_ARG_ENABLE(sdbus,
+              [  --enable-sdbus         enable systemd-based D-BUS support],
+             [enable_sdbus=$enableval], [enable_sdbus=no])
+
+if test "$enable_sdbus" = "yes"; then
+    PKG_CHECK_MODULES(SDBUS, libsystemd-bus)
+    AC_DEFINE([SDBUS_ENABLED], 1, [Enable systemd-bus support ?])
+
+    if test -z "$DBUS_SESSION_DIR"; then
+        # Try to determine the session bus service directory.
+        DBUS_SESSION_DIR="`pkg-config --variable \
+                               session_bus_services_dir dbus-1`"
+        if test "$?" != "0" -o -z "$DBUS_SESSION_DIR"; then
+            DBUS_SESSION_DIR="/usr/share/dbus-1/services"
+        fi
+        AC_SUBST(DBUS_SESSION_DIR)
+    fi
+else
+    AC_MSG_NOTICE([libsystemd-bus based D-Bus support is disabled.])
+fi
+
+AM_CONDITIONAL(SDBUS_ENABLED, [test "$enable_sdbus" = "yes"])
+AC_SUBST(SDBUS_ENABLED)
+AC_SUBST(SDBUS_CFLAGS)
+AC_SUBST(SDBUS_LIBS)
+
+# Check if PulseAudio mainloop support was enabled.
+AC_ARG_ENABLE(pulse,
+              [  --enable-pulse          enable PulseAudio mainloop support],
+             [enable_pulse=$enableval], [enable_pulse=auto])
+
+if test "$enable_pulse" != "no"; then
+    PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.22,
+                            [have_pulse=yes], [have_pulse=no])
+    if test "$have_pulse" = "no" -a "$enable_pulse" = "yes"; then
+        AC_MSG_ERROR([PulseAudio development libraries not found.])
+    fi
+
+    if test "$enable_gpl" = "no"; then
+        if test "$enable_pulse" = "yes"; then
+           AC_MSG_ERROR([PulseAudio support requires the --enable-gpl option.])
+        else
+           enable_pulse="no"
+        fi
+    else
+        enable_pulse="$have_pulse"
+    fi
+else
+    AC_MSG_NOTICE([PulseAudio mainloop support is disabled.])
+fi
+
+if test "$enable_pulse" = "yes"; then
+    AC_DEFINE([PULSE_ENABLED], 1, [Enable PulseAudio mainloop support ?])
+fi
+AM_CONDITIONAL(PULSE_ENABLED, [test "$enable_pulse" = "yes"])
+AC_SUBST(PULSE_ENABLED)
+AC_SUBST(PULSE_CFLAGS)
+AC_SUBST(PULSE_LIBS)
+
+# Check if EFL/ecore mainloop support was enabled.
+AC_ARG_ENABLE(ecore,
+              [  --enable-ecore          enable EFL/ecore mainloop support],
+             [enable_ecore=$enableval], [enable_ecore=auto])
+
+
+if test "$enable_ecore" != "no"; then
+    # We are using features which are present only at ecore 1.2 onwards.
+    PKG_CHECK_MODULES(ECORE, ecore >= 1.2,
+                      [have_ecore=yes], [have_ecore=no])
+    if test "$have_ecore" = "no" -a "$enable_ecore" = "yes"; then
+        AC_MSG_ERROR([EFL/ecore development libraries not found.])
+    fi
+
+    enable_ecore="$have_ecore"
+else
+    AC_MSG_NOTICE([EFL/ecore mainloop support is disabled.])
+fi
+
+if test "$enable_ecore" = "yes"; then
+    AC_DEFINE([ECORE_ENABLED], 1, [Enable EFL/ecore mainloop support ?])
+fi
+AM_CONDITIONAL(ECORE_ENABLED, [test "$enable_ecore" = "yes"])
+AC_SUBST(ECORE_ENABLED)
+AC_SUBST(ECORE_CFLAGS)
+AC_SUBST(ECORE_LIBS)
+
+# Check if glib mainloop support was enabled.
+AC_ARG_ENABLE(glib,
+              [  --enable-glib           enable glib mainloop support],
+             [enable_glib=$enableval], [enable_glib=auto])
+
+if test "$enable_glib" != "no"; then
+    PKG_CHECK_MODULES(GLIB, glib-2.0,
+                      [have_glib=yes], [have_glib=no])
+    if test "$have_glib" = "no" -a "$enable_glib" = "yes"; then
+        AC_MSG_ERROR([glib development libraries not found.])
+    fi
+
+    enable_glib="$have_glib"
+else
+    AC_MSG_NOTICE([glib mainloop support is disabled.])
+fi
+
+if test "$enable_glib" = "yes"; then
+    AC_DEFINE([GLIB_ENABLED], 1, [Enable glib mainloop support ?])
+fi
+AM_CONDITIONAL(GLIB_ENABLED, [test "$enable_glib" = "yes"])
+AC_SUBST(GLIB_ENABLED)
+AC_SUBST(GLIB_CFLAGS)
+AC_SUBST(GLIB_LIBS)
+
+# Check if qt mainloop support was enabled.
+AC_ARG_ENABLE(qt,
+              [  --enable-qt             enable qt mainloop support],
+              [enable_qt=$enableval], [enable_qt=auto])
+
+if test "$enable_qt" != "no"; then
+    PKG_CHECK_MODULES(QTCORE, QtCore,
+                      [have_qt=yes], [have_qt=no])
+    if test "$have_qt" = "no" -a "$enable_qt" = "yes"; then
+        AC_MSG_ERROR([Qt(Core) development libraries not found.])
+    fi
+
+    enable_qt="$have_qt"
+else
+    AC_MSG_NOTICE([Qt mainloop support is disabled.])
+fi
+
+if test "$enable_qt" = "yes"; then
+    AC_DEFINE([QT_ENABLED], 1, [Enable qt mainloop support ?])
+    QT_MOC="`pkg-config --variable moc_location QtCore`"
+    AC_SUBST(QT_MOC)
+fi
+AM_CONDITIONAL(QT_ENABLED, [test "$enable_qt" = "yes"])
+AC_SUBST(QT_ENABLED)
+AC_SUBST(QTCORE_CFLAGS)
+AC_SUBST(QTCORE_LIBS)
+
+# Check if building murphy-console was enabled.
+AC_ARG_ENABLE(console,
+              [  --enable-console        build Murphy console],
+             [enable_console=$enableval], [enable_console=yes])
+
+if test "$enable_console" = "no"; then
+    AC_MSG_NOTICE([Murphy console binary is disabled.])
+else
+    AC_MSG_NOTICE([Murphy console binary is enabled.])
+fi
+
+if test "$enable_console" = "yes"; then
+    AC_DEFINE([CONSOLE_ENABLED], 1, [Build Murphy console ?])
+fi
+AM_CONDITIONAL(CONSOLE_ENABLED, [test "$enable_console" = "yes"])
+AC_SUBST(CONSOLE_ENABLED)
+AC_SUBST(READLINE_CFLAGS)
+AC_SUBST(READLINE_LIBS)
+
+# Check for json(-c).
+PKG_CHECK_MODULES(JSON, [json], [have_json=yes], [have_json=no])
+
+if test "$have_json" = "no"; then
+    PKG_CHECK_MODULES(JSON, [json-c >= 0.11])
+fi
+
+AC_MSG_CHECKING([if json-c has headers under json-c include path])
+saved_CFLAGS="$CFLAGS"
+saved_LIBS="$LIBS"
+CFLAGS="${JSON_CFLAGS}"
+LIBS="${JSON_LIBS}"
+AC_LINK_IFELSE(
+   [AC_LANG_PROGRAM(
+         [[#include <../json-c/json.h>]],
+         [[return 0;]])],
+    [json_include_jsonc=yes],
+    [json_include_jsonc=no])
+AC_MSG_RESULT([$json_include_jsonc])
+CFLAGS="$saved_CFLAGS"
+LIBS="$saved_LIBS"
+
+if test "$json_include_jsonc" = "yes"; then
+    AC_DEFINE([JSON_INCLUDE_PATH_JSONC], 1, [json headers under json-c ?])
+fi
+
+AC_MSG_CHECKING([for json_tokener_get_error()])
+saved_CFLAGS="$CFLAGS"
+saved_LIBS="$LIBS"
+CFLAGS="${JSON_CFLAGS}"
+LIBS="${JSON_LIBS}"
+AC_LINK_IFELSE(
+   [AC_LANG_PROGRAM(
+         [[#include <json.h>]],
+         [[json_tokener *tok = NULL;
+           if (json_tokener_get_error(tok) != json_tokener_success)
+              return 0;
+           else
+               return 1;]])],
+    [have_json_tokener_get_error=yes],
+    [have_json_tokener_get_error=no])
+AC_MSG_RESULT([$have_json_tokener_get_error])
+CFLAGS="$saved_CFLAGS"
+LIBS="$saved_LIBS"
+
+if test "$have_json_tokener_get_error" = "yes"; then
+    AC_DEFINE([HAVE_JSON_TOKENER_GET_ERROR], 1, [json_tokener_get_error ?])
+fi
+
+# Check if websocket support was/can be enabled.
+CHECK_WEBSOCKETS()
+
+# Check if SMACK support should be enabled.
+AC_ARG_ENABLE(smack,
+              [  --enable-smack          enable SMACK support],
+             [enable_smack=$enableval], [enable_smack=auto])
+
+if test "$enable_smack" != "no"; then
+    PKG_CHECK_MODULES(SMACK, libsmack, [have_smack=yes], [have_smack=no])
+    if test "$have_smack" = "no" -a "$enable_smack" = "yes"; then
+        AC_MSG_ERROR([SMACK development libraries not found.])
+    fi
+
+    enable_smack="$have_smack"
+else
+    AC_MSG_NOTICE([SMACK support is disabled.])
+fi
+
+if test "$enable_smack" = "yes"; then
+    AC_DEFINE([SMACK_ENABLED], 1, [Enable SMACK support ?])
+fi
+AM_CONDITIONAL(SMACK_ENABLED, [test "$enable_smack" = "yes"])
+AC_SUBST(SMACK_ENABLED)
+AC_SUBST(SMACK_CFLAGS)
+AC_SUBST(SMACK_LIBS)
+
+# Check if systemd support should be enabled.
+AC_ARG_ENABLE(systemd,
+              [  --enable-systemd          enable systemd support],
+             [enable_systemd=$enableval], [enable_systemd=auto])
+
+if test "$enable_systemd" != "no"; then
+    PKG_CHECK_MODULES(SYSTEMD, libsystemd-journal libsystemd-daemon,
+                      [have_systemd=yes], [have_systemd=no])
+    if test "$have_systemd" = "no" -a "$enable_systemd" = "yes"; then
+        AC_MSG_ERROR([systemd development libraries not found.])
+    fi
+
+    enable_systemd="$have_systemd"
+else
+    AC_MSG_NOTICE([systemd support is disabled.])
+fi
+
+if test "$enable_systemd" = "yes"; then
+    AC_DEFINE([SYSTEMD_ENABLED], 1, [Enable systemd support ?])
+fi
+AM_CONDITIONAL(SYSTEMD_ENABLED, [test "$enable_systemd" = "yes"])
+AC_SUBST(SYSTEMD_ENABLED)
+AC_SUBST(SYSTEMD_CFLAGS)
+AC_SUBST(SYSTEMD_LIBS)
+
+# Check if telephony was enabled.
+AC_ARG_ENABLE(telephony,
+              [  --enable-telephony           enable telephony support],
+             [enable_telephony=$enableval], [enable_telephony=no])
+
+if test "$enable_telephony" = "yes"; then
+    if test "$enable_gpl" = "no"; then
+        AC_MSG_ERROR([Telephony support requires the --enable-gpl option.])
+    fi
+    PKG_CHECK_MODULES(OFONO, ofono >= 1.1)
 else
-    AC_MSG_NOTICE([D-Bus support is disabled.])
+    AC_MSG_NOTICE([Telephony support is disabled.])
 fi
 
-AM_CONDITIONAL(DBUS_ENABLED, [test "$enable_dbus" = "yes"])
-AC_SUBST(DBUS_ENABLED)
-AC_SUBST(DBUS_CFLAGS)
-AC_SUBST(DBUS_LIBS)
+if test "$enable_telephony" = "yes"; then
+    AC_DEFINE([TELEPHONY_ENABLED], 1, [Enable D-BUS support ?])
+fi
 
+AM_CONDITIONAL(TELEPHONY_ENABLED, [test "$enable_telephony" = "yes"])
+AC_SUBST(TELEPHONY_ENABLED)
+AC_SUBST(TELEPHONY_CFLAGS)
+AC_SUBST(TELEPHONY_LIBS)
 
+PKG_CHECK_MODULES(AUL, aul,
+           [have_aul=yes], [have_aul=no])
+enable_aul="$have_aul"
+if test "$enable_aul" = "yes"; then
+    AC_DEFINE([AUL_ENABLED], 1, [Enable Application Utility Library support ?])
+fi
+AM_CONDITIONAL(AUL_ENABLED, [test "$enable_aul" = "yes"])
+AC_SUBST(AUL_ENABLED)
+AC_SUBST(AUL_CFLAGS)
+AC_SUBST(AUL_LIBS)
+
+PKG_CHECK_MODULES(TZCONFIG, libtzplatform-config,
+           [have_tzconfig=yes], [have_tzconfig=no])
+enable_tzconfig="$have_tzconfig"
+if test "$enable_tzconfig" = "yes"; then
+    AC_DEFINE([TZCONFIG_ENABLED], 1, [Enable Tizen configuration support ?])
+fi
+AM_CONDITIONAL(TZCONFIG_ENABLED, [test "$enable_tzconfig" = "yes"])
+AC_SUBST(TZCONFIG_ENABLED)
+AC_SUBST(TZCONFIG_CFLAGS)
+AC_SUBST(TZCONFIG_LIBS)
+
+# Check if system-controller (plugin) support should be enabled.
+AC_ARG_ENABLE(system-controller,
+              [  --enable-system-controller enable system-controller support],
+             [enable_systemctl=$enableval], [enable_systemctl=no])
+
+if test "$enable_systemctl" = "yes"; then
+    if test "$enable_websockets" != "yes"; then
+        AC_MSG_ERROR([System controller requires websocket support.])
+    fi
+    if test "$have_aul" != "yes"; then
+        AC_MSG_ERROR([System controller requires AUL support.])
+    fi
+    AC_MSG_NOTICE([System-controller support is enabled.])
+    AC_DEFINE([SYSTEMCTL_ENABLED], 1, [Enable system-controller support ?])
+    PKG_CHECK_MODULES(WAYLAND_CLIENT, wayland-client)
+    PKG_CHECK_MODULES(LIBXML2, libxml-2.0)
+    PKG_CHECK_MODULES(
+        IVI_EXTENSION_PROTOCOL, ivi-extension-protocol,
+        [weston_ico_plugins=no], [weston_ico_plugins=yes]
+    )
+    AC_CHECK_HEADER([ico-uxf-weston-plugin/ico_input_mgr-client-protocol.h])
+    if test "$weston_ico_plugins" != "yes"; then
+        AC_MSG_NOTICE([System-controller uses GENIVI shell.])
+    fi
+    PKG_CHECK_MODULES(AIL, ail)
+else
+    AC_MSG_NOTICE([System-controller support is disabled.])
+fi
+
+AM_CONDITIONAL(SYSTEMCTL_ENABLED, [test "$enable_systemctl" = "yes"])
+AM_CONDITIONAL(WESTON_ICO_PLUGINS,[test "$weston_ico_plugins" = "yes"])
+AC_SUBST(SYSTEMCTL_ENABLED)
+AC_SUBST(WESTON_ICO_PLUGINS)
+AC_SUBST(WAYLAND_CLIENT_CFLAGS)
+AC_SUBST(WAYLAND_CLIENT_LIBS)
+AC_SUBST(IVI_EXTENSION_PROTOCOL_CFLAGS)
+AC_SUBST(IVI_EXTENSION_PROTOCOL_LIBS)
+AC_SUBST(LIBXML2_CFLAGS)
+AC_SUBST(LIBXML2_LIBS)
+AC_SUBST(AIL_CFLAGS)
+AC_SUBST(AIL_LIBS)
+
+# Check if system-monitor (plugin) support should be enabled.
+AC_ARG_ENABLE(system-monitor,
+              [  --enable-system-monitor enable system-monitor support],
+             [enable_sysmon=$enableval], [enable_sysmon=yes])
+
+if test "$enable_sysmon" = "yes"; then
+    AC_MSG_NOTICE([System-monitor support is enabled.])
+    AC_DEFINE([SYSMON_ENABLED], 1, [Enable system-monitor support ?])
+else
+    AC_MSG_NOTICE([System-monitor support is disabled.])
+fi
+
+AM_CONDITIONAL(SYSMON_ENABLED, [test "$enable_sysmon" = "yes"])
+AC_SUBST(SYSMON_ENABLED)
+
+
+# Check if dlog support was enabled.
+AC_ARG_ENABLE(dlog,
+              [  --enable-dlog           enable dlog support],
+             [enable_dlog=$enableval], [enable_dlog=auto])
+
+if test "$enable_dlog" != "no"; then
+    PKG_CHECK_MODULES(DLOG, dlog,
+                      [have_dlog=yes], [have_dlog=no])
+    if test "$have_dlog" = "no" -a "$enable_dlog" = "yes"; then
+        AC_MSG_ERROR([dlog development libraries not found.])
+    fi
+
+    enable_dlog="$have_dlog"
+else
+    AC_MSG_NOTICE([dlog support is disabled.])
+fi
+
+if test "$enable_dlog" = "yes"; then
+    AC_DEFINE([DLOG_ENABLED], 1, [Enable dlog support ?])
+fi
+AM_CONDITIONAL(DLOG_ENABLED, [test "$enable_dlog" = "yes"])
+AC_SUBST(DLOG_ENABLED)
+AC_SUBST(DLOG_CFLAGS)
+AC_SUBST(DLOG_LIBS)
+
+# Check if Audio Session Manager plugin was enabled.
+AC_ARG_ENABLE(resource-asm,
+              [  --enable-resource-asm        build Murphy Audio Session Manager plugin],
+             [enable_resource_asm=$enableval], [enable_resource_asm=no])
+
+if test "$enable_resource_asm" != "no"; then
+    PKG_CHECK_MODULES(AUDIO_SESSION_MANAGER, audio-session-mgr,
+                      [have_resource_asm=yes], [have_resource_asm=no])
+    if test "$have_resource_asm" = "no" -a "$enable_resource_asm" = "yes"; then
+        AC_MSG_ERROR([Audio Session Manager development libraries not found.])
+    fi
+    AC_SUBST(AUDIO_SESSION_MANAGER_CFLAGS)
+    AC_SUBST(AUDIO_SESSION_MANAGER_LIBS)
+
+    enable_resource_asm="$have_resource_asm"
+else
+    AC_MSG_NOTICE([Audio Session Manager support is disabled.])
+fi
+if test "$enable_resource_asm" = "yes"; then
+    AC_DEFINE([RESOURCE_ASM_ENABLED], 1, [Enable Audio Session Manager support ?])
+fi
+AM_CONDITIONAL(RESOURCE_ASM_ENABLED, [test "$enable_resource_asm" = "yes"])
+AC_SUBST(RESOURCE_ASM_ENABLED)
 
 # Set up murphy CFLAGS and LIBS.
-MURPHY_CFLAGS="$GLIB_CFLAGS $DBUS_CFLAGS"
-MURPHY_LIBS="$GLIB_LIBS $DBUS_LIBS"
+MURPHY_CFLAGS=""
+MURPHY_LIBS=""
 AC_SUBST(MURPHY_CFLAGS)
 AC_SUBST(MURPHY_LIBS)
 
-# Add LIBDIR to config.h.
+# Allow substitution for LIBDIR and SYSCONFDIR.
 AC_MSG_CHECKING([libdir])
 AC_MSG_RESULT([$libdir])
 AC_SUBST(LIBDIR, [$libdir])
+AC_MSG_CHECKING([sysconfdir])
+AC_MSG_RESULT([$sysconfdir])
+AC_SUBST(SYSCONFDIR, [$sysconfdir])
 
+#Check whether we build resources or not
+AC_ARG_WITH(resources,
+            [  --with-resources wheter to build resource management support],
+           [with_resources=$withval],[with_resources=yes])
 
-# Check which plugins should be built in.
-AC_ARG_WITH(builtin-plugins,
-            [  --with-builtin-plugins=<plugin-list>  specify which plugins to link in],
-            [builtin_plugins=$withval],[builtin_plugins=all])
+AM_CONDITIONAL(BUILD_RESOURCES,  [ test x$with_resources = "xyes" ])
 
-all_plugins=$(ls src/plugins/*.c 2>/dev/null | \
-              sed 's#src/plugins/plugin-##g;s#\.c$##g' | tr '\n' ' ')
 
-case $builtin_plugins in
-    all)  builtin_plugins="$all_plugins";;
-    none) builtin_plugins="";;
+# Check which plugins should be disabled.
+AC_ARG_WITH(disabled-plugins,
+            [  --with-disabled-plugins=<plugin-list> specify which plugins to disable],
+            [disabled_plugins=$withval],[disabled_plugins=none])
+
+# Check which plugins should be compiled as standalone DSOs.
+AC_ARG_WITH(dynamic-plugins,
+            [  --with-dynamic-plugins=<plugin-list>  specify which plugins compile as DSOs],
+            [dynamic_plugins=$withval],[dynamic_plugins=none])
+
+all_plugins=$(find src/plugins/. -name plugin-*.c 2>/dev/null | \
+              sed 's#^.*/plugin-##g;s#\.c$##g' | tr '\n' ' ')
+
+#echo "all plugins: [$all_plugins]"
+
+case $dynamic_plugins in
+    all)  dynamic_plugins="$all_plugins";;
+    none) dynamic_plugins="";;
 esac
 
 internal=""; it=""
 external=""; et=""
-for plugin in $all_plugins; do 
-    type=external
+disabled=""; dt=""
+for plugin in $all_plugins; do
+    type=internal
 
-    for p in ${builtin_plugins//,/ }; do
+    for p in ${dynamic_plugins//,/ }; do
         if test "$plugin" = "$p"; then
-            internal="$internal$it$plugin"
-            type=internal
-            it=" "
+            type=external
         fi
     done
 
-    if test "$type" = "external"; then
-        external="$external$et$plugin"
-        et=" "
-    fi
+    for p in ${disabled_plugins//,/ }; do
+        if test "$plugin" = "$p"; then
+            type=disabled
+        fi
+    done
+
+    case $type in
+        internal) internal="$internal$it$plugin"; it=" ";;
+        external) external="$external$et$plugin"; et=" ";;
+        disabled) disabled="$disabled$dt$plugin"; dt=" ";;
+    esac
 done
 
+DISABLED_PLUGINS="$disabled"
 INTERNAL_PLUGINS="$internal"
 EXTERNAL_PLUGINS="$external"
 
+
+function check_if_disabled() {
+    for p in $DISABLED_PLUGINS; do
+        if test "$1" = "$p"; then
+            return 0
+        fi
+    done
+
+    return 1
+}
+
 function check_if_internal() {
     for p in $INTERNAL_PLUGINS; do
         if test "$1" = "$p"; then
@@ -182,13 +706,41 @@ function check_if_internal() {
     return 1
 }
 
-AM_CONDITIONAL(BUILTIN_PLUGIN_TEST,    [check_if_internal test])
-AM_CONDITIONAL(BUILTIN_PLUGIN_DBUS,    [check_if_internal dbus])
-AM_CONDITIONAL(BUILTIN_PLUGIN_GLIB,    [check_if_internal glib])
-AM_CONDITIONAL(BUILTIN_PLUGIN_CONSOLE, [check_if_internal console])
+AM_CONDITIONAL(DISABLED_PLUGIN_TEST,     [check_if_disabled test])
+AM_CONDITIONAL(DISABLED_PLUGIN_DBUS,     [check_if_disabled dbus])
+AM_CONDITIONAL(DISABLED_PLUGIN_GLIB,     [check_if_disabled glib])
+AM_CONDITIONAL(DISABLED_PLUGIN_CONSOLE,  [check_if_disabled console])
+AM_CONDITIONAL(DISABLED_PLUGIN_DLOG,     [check_if_disabled dlog])
+AM_CONDITIONAL(DISABLED_PLUGIN_RESOURCE_DBUS, [check_if_disabled resource-dbus])
+AM_CONDITIONAL(DISABLED_PLUGIN_RESOURCE_WRT, [check_if_disabled resource-wrt])
+AM_CONDITIONAL(DISABLED_PLUGIN_AMB, [check_if_disabled amb])
+AM_CONDITIONAL(DISABLED_PLUGIN_DOMAIN_CONTROL,
+               [check_if_disabled domain-control])
+AM_CONDITIONAL(DISABLED_PLUGIN_SYSTEMD,  [check_if_disabled systemd])
+AM_CONDITIONAL(DISABLED_PLUGIN_TELEPHONY, [check_if_disabled telephony])
+AM_CONDITIONAL(DISABLED_PLUGIN_RESOURCE_ASM,     [check_if_disabled resource-asm])
+AM_CONDITIONAL(DISABLED_PLUGIN_SYSTEMCTL,  [test $enable_systemctl != yes])
+AM_CONDITIONAL(DISABLED_PLUGIN_SYSMON,  [test $enable_sysmon != yes])
+
+AM_CONDITIONAL(BUILTIN_PLUGIN_TEST,     [check_if_internal test])
+AM_CONDITIONAL(BUILTIN_PLUGIN_DBUS,     [check_if_internal dbus])
+AM_CONDITIONAL(BUILTIN_PLUGIN_GLIB,     [check_if_internal glib])
+AM_CONDITIONAL(BUILTIN_PLUGIN_CONSOLE,  [check_if_internal console])
+AM_CONDITIONAL(BUILTIN_PLUGIN_DLOG,     [check_if_internal dlog])
+AM_CONDITIONAL(BUILTIN_PLUGIN_RESOURCE_DBUS, [check_if_internal resource-dbus])
+AM_CONDITIONAL(BUILTIN_PLUGIN_RESOURCE_WRT, [check_if_internal resource-wrt])
+AM_CONDITIONAL(BUILTIN_PLUGIN_AMB, [check_if_internal amb])
+AM_CONDITIONAL(BUILTIN_PLUGIN_DOMAIN_CONTROL,
+               [check_if_internal domain-control])
+AM_CONDITIONAL(BUILTIN_PLUGIN_LUA,      [check_if_internal lua])
+AM_CONDITIONAL(BUILTIN_PLUGIN_SYSTEMD,  [check_if_internal systemd])
+AM_CONDITIONAL(BUILTIN_PLUGIN_TELEPHONY, [check_if_internal telephony])
+AM_CONDITIONAL(BUILTIN_PLUGIN_RESOURCE_ASM,      [check_if_internal resource-asm])
+AM_CONDITIONAL(BUILTIN_PLUGIN_SYSTEMCTL, [check_if_internal system-controller])
+AM_CONDITIONAL(BUILTIN_PLUGIN_SYSMON, [check_if_internal system-monitor])
 
 # Check for Check (unit test framework).
-PKG_CHECK_MODULES(CHECK, 
+PKG_CHECK_MODULES(CHECK,
                   check >= 0.9.4,
                   [has_check="yes"], [has_check="no"])
 AM_CONDITIONAL(HAVE_CHECK, test "x$has_check" = "xyes")
@@ -258,6 +810,15 @@ AC_SUBST(MRP_DOXYDEPS, [$MRP_DOCSCRIPT_DIR/doxydeps.py])
 # Shave by default.
 SHAVE_INIT([build-aux], [enable])
 
+# Create murphy symlink to match domain controller's
+# placing with how it is installed.
+if test ! -L murphy/domain-control; then
+    AC_MSG_NOTICE([Symlinking src/plugins/domain-control to src/domain-control...])
+    cd src
+    ln -s plugins/domain-control domain-control
+    cd ..
+fi
+
 # Create murphy symlink to src.
 if test ! -L murphy; then
     AC_MSG_NOTICE([Symlinking src to murphy...])
@@ -268,22 +829,44 @@ fi
 AC_CONFIG_FILES([build-aux/shave
                 build-aux/shave-libtool
                 Makefile
+                utils/Makefile
                 src/Makefile
                 src/common/tests/Makefile
                 src/core/tests/Makefile
+                src/core/lua-decision/tests/Makefile
                 src/daemon/tests/Makefile
+                src/plugins/tests/Makefile
                 src/common/murphy-common.pc
+                src/common/murphy-libdbus.pc
+                src/common/murphy-dbus-libdbus.pc
+                src/common/murphy-dbus-sdbus.pc
+                src/common/murphy-pulse.pc
+                src/common/murphy-ecore.pc
+                src/common/murphy-glib.pc
+                src/common/murphy-qt.pc
                 src/core/murphy-core.pc
-                 src/murphy-db/Makefile
-                 src/murphy-db/mdb/Makefile
-                 src/murphy-db/mqi/Makefile
-                 src/murphy-db/mql/Makefile
-                 src/murphy-db/include/Makefile
-                 src/murphy-db/tests/Makefile
+                src/core/lua-utils/murphy-lua-utils.pc
+                src/core/lua-decision/murphy-lua-decision.pc
+                src/breedline/breedline.pc
+                src/breedline/breedline-murphy.pc
+                src/breedline/breedline-glib.pc
+                src/breedline/tests/Makefile
+                src/murphy-db/Makefile
+                src/murphy-db/mdb/Makefile
+                src/murphy-db/mqi/Makefile
+                src/murphy-db/mql/Makefile
+                src/murphy-db/include/Makefile
+                src/murphy-db/tests/Makefile
+                src/resolver/murphy-resolver.pc
+                src/resolver/tests/Makefile
+                src/plugins/domain-control/murphy-domain-controller.pc
+                src/plugins/resource-asm/Makefile
                 doc/Makefile
-                 doc/plugin-developer-guide/Makefile
-                 doc/plugin-developer-guide/db/Makefile
-                 doc/plugin-developer-guide/doxml/Makefile
+                doc/plugin-developer-guide/Makefile
+                doc/plugin-developer-guide/db/Makefile
+                doc/plugin-developer-guide/doxml/Makefile
+                src/plugins/resource-native/libmurphy-resource/murphy-resource.pc
+                packaging.in/org.Murphy.conf
                 ])
 AC_OUTPUT
 
@@ -291,13 +874,36 @@ AC_OUTPUT
 # Display the configuration.
 echo "----- configuration -----"
 echo "Extra C warnings flags: $WARNING_CFLAGS"
+echo "Cross-compiling: $cross_compiling"
+if test "$cross_compiling" != "no"; then
+    echo "     * native compiler: $UNSHAVED_CC_FOR_BUILD"
+fi
+echo "Lua (pkgconfig file) to use: $with_lua"
+echo "    * cflags: $LUA_CFLAGS"
+echo "    * libs: $LUA_LIBS"
+echo "D-Bus (libdbus) support: $enable_libdbus"
+echo "D-Bus (systemd-bus) support: $enable_sdbus"
+echo "PulseAudio mainloop support: $enable_pulse"
+echo "EFL/ecore mainloop support: $enable_ecore"
+echo "glib mainloop support: $enable_glib"
+echo "Qt mainloop support: $enable_qt"
+echo "Murphy console plugin and client: $enable_console"
+echo "Resource management support: $with_resources"
+echo "Websockets support: $enable_websockets"
+echo "systemd support: $enable_systemd"
+echo "Telephony support: $enable_telephony"
+echo "System controller support: $enable_systemctl"
+echo "System monitor support: $enable_sysmon"
 echo "Plugins:"
 echo "  - linked-in:"
 for plugin in ${INTERNAL_PLUGINS:-none}; do
     echo "      $plugin"
 done
-
 echo "  - dynamic:"
 for plugin in ${EXTERNAL_PLUGINS:-none}; do
     echo "      $plugin"
 done
+echo "  - disabled:"
+for plugin in ${DISABLED_PLUGINS:-none}; do
+    echo "      $plugin"
+done