diff options
author | Mike Gabriel <[email protected]> | 2018-01-18 04:06:28 +0100 |
---|---|---|
committer | Martin Wimpress <[email protected]> | 2018-01-18 03:06:28 +0000 |
commit | 9d6ee461f95e059a42aea9392c37f5a752e9be3d (patch) | |
tree | 4ab51362e50400e1f8e533de40d0e139e26be2fc /configure.ac | |
parent | 9ae2153657e2aee44fa6c6a70c9f3c4693a3ea20 (diff) | |
download | mate-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.ac | 202 |
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 ]) |