summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorMike Gabriel <[email protected]>2018-01-18 04:06:28 +0100
committerMartin Wimpress <[email protected]>2018-01-18 03:06:28 +0000
commit9d6ee461f95e059a42aea9392c37f5a752e9be3d (patch)
tree4ab51362e50400e1f8e533de40d0e139e26be2fc /configure.ac
parent9ae2153657e2aee44fa6c6a70c9f3c4693a3ea20 (diff)
downloadmate-indicator-applet-9d6ee461f95e059a42aea9392c37f5a752e9be3d.tar.bz2
mate-indicator-applet-9d6ee461f95e059a42aea9392c37f5a752e9be3d.tar.xz
Support building against Ayatana Indicators and Ubuntu Indicators alike. (#24)
* If only Ayatana Indicators are present in the build env, build against them. * If only Ubuntu Indicators are present in the build env, build against them. * If both Indicator implementations are present in the build env, then we build against Ayatana Indicators. A build against this or that implementation can be enforced by configure options (--with-ayatana-indicators=yes or --with-ubuntu-indicators=yes). * If either implementation is present, but the other -with-*-indicator configure option is given, an error is thrown at configure time. * No Indicator implementation present in the build env, of course, also throws an error at configure time.
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac202
1 files changed, 182 insertions, 20 deletions
diff --git a/configure.ac b/configure.ac
index 918cef4..da97d3a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,8 +26,12 @@ m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
GTK_REQUIRED_VERSION=3.14.0
PANEL_REQUIRED_VERSION=1.17.0
-INDICATOR_REQUIRED_VERSION=0.3.90
-INDICATOR_NG_VERSION=12.10.2
+
+UBUNTU_INDICATOR_REQUIRED_VERSION=0.3.90
+UBUNTU_INDICATOR_NG_VERSION=12.10.2
+
+AYATANA_INDICATOR_REQUIRED_VERSION=0.6.0
+AYATANA_INDICATOR_NG_VERSION=0.6.0
PKG_CHECK_MODULES(APPLET, gtk+-3.0 >= $GTK_REQUIRED_VERSION
x11
@@ -37,20 +41,148 @@ PKG_CHECK_MODULES(APPLET, gtk+-3.0 >= $GTK_REQUIRED_VERSION
AC_SUBST(APPLET_CFLAGS)
AC_SUBST(APPLET_LIBS)
-PKG_CHECK_EXISTS(indicator3-0.4 >= $INDICATOR_NG_VERSION,
- [have_indicator_ng="yes"],
- [have_indicator_ng="no"])
+# Which Indicator implementation shall we use?
+
+AC_ARG_WITH([ayatana-indicators],
+ [AS_HELP_STRING([--with-ayatana-indicators],
+ [build against Ayatana Indicators])],
+ [with_ayatana_indicators='yes'],
+ [with_ayatana_indicators='no']
+)
+
+AC_ARG_WITH([ubuntu-indicators],
+ [AS_HELP_STRING([--with-ubuntu-indicators],
+ [build against Ubuntu Indicators])],
+ [with_ubuntu_indicators='yes'],
+ [with_ubuntu_indicators='no']
+)
+
+###
+### Look for Ayatana Indicators
+###
+
+PKG_CHECK_EXISTS(ayatana-indicator3-0.4,
+ [have_ayatanaindicator="yes"],
+ [have_ayatanaindicator="no"])
+
+PKG_CHECK_EXISTS(ayatana-indicator3-0.4 >= $AYATANA_INDICATOR_NG_VERSION,
+ [have_ayatanaindicator_ng="yes"],
+ [have_ayatanaindicator_ng="no"])
+
+###
+### Look for Ubuntu Indicators
+###
+
+PKG_CHECK_EXISTS(indicator3-0.4,
+ [have_ubuntuindicator="yes"],
+ [have_ubuntuindicator="no"])
+
+PKG_CHECK_EXISTS(indicator3-0.4 >= $UBUNTU_INDICATOR_NG_VERSION,
+ [have_ubuntuindicator_ng="yes"],
+ [have_ubuntuindicator_ng="no"])
+
+### decide on what Indicators implementation to use...
+
+if test "x$have_ayatanaindicator" == "xyes" &&
+ test "x$have_ubuntuindicator" != "xyes" &&
+ test "x$with_ubuntu_indicators" != "xyes"; then
+
+ # use Ayatana Indicators (because they are present, and noone is enforcing Ubuntu Indicators)
+ use_ayatanaindicator="yes";
+ indicator_enforced="no";
+
+elif test "x$have_ubuntuindicator" == "xyes" &&
+ test "x$have_ayatanaindicator" != "xyes" &&
+ test "x$with_ayatana_indicators" != "xyes"; then
+
+ # use Ubuntu Indicators (because they are present, and noone is enforcing Ayatana Indicators)
+ use_ubuntuindicator="yes";
+ indicator_enforced="no";
+
+elif test "x$have_ubuntuindicator" == "xyes" &&
+ test "x$have_ayatanaindicator" == "xyes" &&
+ test "x$with_ayatana_indicators" == "xyes"; then
+
+ # both Indicator implementations are present, and we are asked to use Ayatana Indicators
+ use_ayatanaindicator=yes;
+ indicator_enforced=yes;
+
+elif test "x$have_ubuntuindicator" == "xyes" &&
+ test "x$have_ayatanaindicator" == "xyes" &&
+ test "x$with_ubuntu_indicators" == "xyes"; then
+
+ # both Indicator implementations are present, and we are asked to use Ubuntu Indicators
+ use_ubuntuindicator=yes;
+ indicator_enforced=yes;
+
+elif test "x$have_ubuntuindicator" == "xyes" &&
+ test "x$have_ayatanaindicator" != "xyes" &&
+ test "x$with_ayatana_indicators" == "xyes"; then
+
+ AC_MSG_ERROR([Ubuntu Indicators are present, but you want to build mate-indicator-applet against Ayatana Indicators. This does not match.])
+
+elif test "x$have_ubuntuindicator" != "xyes" &&
+ test "x$have_ayatanaindicator" == "xyes" &&
+ test "x$with_ubuntu_indicators" == "xyes"; then
+
+ AC_MSG_ERROR([Ayatana Indicators are present, but you want to build mate-indicator-applet against Ubuntu Indicators. This does not match.])
-if test "x$have_indicator_ng" = "xyes"; then
- PKG_CHECK_MODULES(INDICATOR, indicator3-0.4 >= $INDICATOR_NG_VERSION
- libido3-0.1 >= 13.10,
- [AC_DEFINE(HAVE_INDICATOR_NG, 1, "New style indicators support")])
else
- PKG_CHECK_MODULES(INDICATOR, indicator3-0.4 >= $INDICATOR_REQUIRED_VERSION)
+
+ AC_MSG_ERROR([Either Ayatana Indicators or Ubuntu Indicators are required to build mate-indicator-applet.])
+
fi
-AC_SUBST(INDICATOR_CFLAGS)
-AC_SUBST(INDICATOR_LIBS)
+### prepare Ayatana or Ubuntu Indicators implementation for the build, regarding to the decision reached above...
+
+if test "x$use_ayatanaindicator" == "xyes"; then
+
+ AM_CONDITIONAL(WITH_AYATANA_INDICATOR, true)
+ AM_CONDITIONAL(WITH_UBUNTU_INDICATOR, false)
+ AC_DEFINE(HAVE_AYATANA_INDICATOR, 1, "Ayatana Indicators Support")
+
+ if test "x$indicator_enforced" == "xyes"; then
+ AC_MSG_NOTICE([Using Ayatana Indicators for this build (as requested via configure option).])
+ else
+ AC_MSG_NOTICE([Using Ayatana Indicators for this build.])
+ fi
+
+ if test "x$have_ayatanaindicator_ng" = "xyes"; then
+ PKG_CHECK_MODULES(AYATANA_INDICATOR_NG, ayatana-indicator3-0.4 >= $AYATANA_INDICATOR_NG_VERSION
+ libayatana-ido3-0.4 >= 0.4.0,
+ [AC_DEFINE(HAVE_AYATANA_INDICATOR_NG, 1, "New style indicators support")])
+ elif test "x$have_ayatanaindicator" = "xyes"; then
+ PKG_CHECK_MODULES(AYATANA_INDICATOR, ayatana-indicator3-0.4 >= $AYATANA_INDICATOR_REQUIRED_VERSION)
+ fi
+
+ AC_SUBST(AYATANA_INDICATOR_CFLAGS)
+ AC_SUBST(AYATANA_INDICATOR_LIBS)
+
+elif test "x$use_ubuntuindicator" == "xyes"; then
+
+ # both Indicator implementations are present, and we are asked to use Ubuntu Indicators
+ AM_CONDITIONAL(WITH_UBUNTU_INDICATOR, true)
+ AM_CONDITIONAL(WITH_AYATANA_INDICATOR, false)
+ AC_DEFINE(HAVE_UBUNTU_INDICATOR, 1, "Ubuntu Indicators Support")
+
+ if test "x$indicator_enforced" == "xyes"; then
+ AC_MSG_NOTICE([Using Ubuntu Indicators for this build (as requested via configure option).])
+ else
+ AC_MSG_NOTICE([Using Ubuntu Indicators for this build.])
+ fi
+
+ if test "x$have_ubuntuindicator_ng" = "xyes"; then
+ PKG_CHECK_MODULES(UBUNTU_INDICATOR_NG, indicator3-0.4 >= $UBUNTU_INDICATOR_NG_VERSION
+ libido3-0.1 >= 13.10,
+ [AC_DEFINE(HAVE_UBUNTU_INDICATOR_NG, 1, "New style indicators support")])
+ elif test "x$have_ubuntuindicator" = "xyes"; then
+ PKG_CHECK_MODULES(UBUNTU_INDICATOR, indicator3-0.4 >= $UBUNTU_INDICATOR_REQUIRED_VERSION)
+ fi
+
+ AC_SUBST(UBUNTU_INDICATOR_CFLAGS)
+ AC_SUBST(UBUNTU_INDICATOR_LIBS)
+
+fi
###########################
# Check to see if we're local
@@ -63,12 +195,24 @@ AC_ARG_ENABLE(localinstall, AS_HELP_STRING([--enable-localinstall], [install all
# Indicator Info
###########################
-if test "x$with_localinstall" = "xyes"; then
- INDICATORDIR="${libdir}/indicators/2/"
- INDICATORICONSDIR="${datadir}/indicator-applet/icons/"
-else
- INDICATORDIR=`$PKG_CONFIG --variable=indicatordir indicator3-0.4`
- INDICATORICONSDIR=`$PKG_CONFIG --variable=iconsdir indicator3-0.4`
+if test "x$use_ubuntuindicator" = "xyes"; then
+ if test "x$with_localinstall" = "xyes"; then
+ INDICATORDIR="${libdir}/indicators3/7/"
+ INDICATORICONSDIR="${datadir}/indicator-applet/icons/"
+ else
+ INDICATORDIR=`$PKG_CONFIG --variable=indicatordir indicator3-0.4`
+ INDICATORICONSDIR=`$PKG_CONFIG --variable=iconsdir indicator3-0.4`
+ fi
+fi
+
+if test "x$use_ayatanaindicator" = "xyes"; then
+ if test "x$with_localinstall" = "xyes"; then
+ INDICATORDIR="${libdir}/ayatana-indicators3/7/"
+ INDICATORICONSDIR="${datadir}/ayatana-indicator-applet/icons/"
+ else
+ INDICATORDIR=`$PKG_CONFIG --variable=indicatordir ayatana-indicator3-0.4`
+ INDICATORICONSDIR=`$PKG_CONFIG --variable=iconsdir ayatana-indicator3-0.4`
+ fi
fi
AC_SUBST(INDICATORDIR)
@@ -147,10 +291,28 @@ po/Makefile.in
# Results
###########################
+if (test "x$use_ayatanaindicator" == "xyes" &&
+ test "x$have_ayatanaindicator_ng" == "xyes") ||
+ (test "x$use_ubuntuindicator" == "xyes" &&
+ test "x$have_ubuntuindicator_ng" == "xyes"); then
+ have_indicator_ng="yes"
+else
+ have_indicator_ng="no"
+fi
+
+if test "x$use_ayatanaindicator" == "xyes"; then
+ indicator_implementation="Ayatana Indicators"
+elif test "x$use_ubuntuindicator" == "xyes"; then
+ indicator_implementation="Ubuntu Indicators"
+fi
+
AC_MSG_NOTICE([
Indicator Applet Configuration:
- Prefix: $prefix
- Indicator-ng support: $have_indicator_ng
+ Prefix: $prefix
+ Indicator implementation: $indicator_implementation
+ Indicator NG support: $have_indicator_ng
+ Indicator Directory: $INDICATORDIR
+ Indicator Icons Directory: $INDICATORICONSDIR
])