From ecc6acd2a576fcc11d51ded532f570fb29ab475e Mon Sep 17 00:00:00 2001 From: Michael Terry Date: Wed, 6 Oct 2010 10:58:49 -0400 Subject: instead of always building gtk2 and gtk3, add a --with-gtk= flag to configure to specify which to build with --- configure.ac | 38 ++++++++++++++++++++++++-------------- libindicator/Makefile.am | 40 +++++++++++++++++++++------------------- tests/Makefile.am | 18 ++++++++++++------ tools/Makefile.am | 7 ++++++- 4 files changed, 63 insertions(+), 40 deletions(-) diff --git a/configure.ac b/configure.ac index 7c706e9..5f4d3c9 100644 --- a/configure.ac +++ b/configure.ac @@ -29,23 +29,32 @@ m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) ############################## GTK_REQUIRED_VERSION=2.18 -GTK3_REQUIRED_VERSION=2.90 +GTK3_REQUIRED_VERSION=2.91 DBUS_REQUIRED_VERSION=0.76 GIO_UNIX_REQUIRED_VERSION=2.22 -PKG_CHECK_MODULES(LIBINDICATOR, gtk+-2.0 >= $GTK_REQUIRED_VERSION - gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION - dbus-glib-1 >= $DBUS_REQUIRED_VERSION) - -AC_SUBST(LIBINDICATOR_CFLAGS) -AC_SUBST(LIBINDICATOR_LIBS) - -PKG_CHECK_MODULES(LIBINDICATOR3, gtk+-3.0 >= $GTK3_REQUIRED_VERSION - gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION - dbus-glib-1 >= $DBUS_REQUIRED_VERSION) - -AC_SUBST(LIBINDICATOR3_CFLAGS) -AC_SUBST(LIBINDICATOR3_LIBS) +AC_ARG_WITH([gtk], + [AS_HELP_STRING([--with-gtk], + [Which version of gtk to use @<:@default=2@:>@])], + [], + [with_gtk=2]) +AS_IF([test "x$with_gtk" = x3], + [PKG_CHECK_MODULES(LIBINDICATOR, gtk+-3.0 >= $GTK3_REQUIRED_VERSION + gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION + dbus-glib-1 >= $DBUS_REQUIRED_VERSION) + AC_SUBST(LIBINDICATOR_CFLAGS) + AC_SUBST(LIBINDICATOR_LIBS) + ], + [test "x$with_gtk" = x2], + [PKG_CHECK_MODULES(LIBINDICATOR, gtk+-2.0 >= $GTK_REQUIRED_VERSION + gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION + dbus-glib-1 >= $DBUS_REQUIRED_VERSION) + AC_SUBST(LIBINDICATOR_CFLAGS) + AC_SUBST(LIBINDICATOR_LIBS) + ], + [AC_MSG_FAILURE([Value for --with-gtk was neither 2 nor 3])] +) +AM_CONDITIONAL(USE_GTK3, [test "x$with_gtk" = x3]) ############################## # Custom Junk @@ -114,4 +123,5 @@ AC_MSG_NOTICE([ Libindicator Configuration: Prefix: $prefix + GTK+ Version: $with_gtk ]) diff --git a/libindicator/Makefile.am b/libindicator/Makefile.am index 172e2b2..4932f07 100644 --- a/libindicator/Makefile.am +++ b/libindicator/Makefile.am @@ -1,14 +1,20 @@ +if USE_GTK3 +VER=3 +lib_LTLIBRARIES = libindicator3.la +else +VER= +lib_LTLIBRARIES = libindicator.la +endif + BUILT_SOURCES = indicator-object-enum-types.h indicator-object-enum-types.c CLEANFILES = DISTCLEANFILES = EXTRA_DIST = \ - indicator.pc.in \ - indicator3.pc.in + indicator$(VER).pc.in include $(top_srcdir)/Makefile.am.marshal -libindicatorincludedir=$(includedir)/libindicator-0.3/libindicator -libindicator3includedir=$(includedir)/libindicator3-0.3/libindicator +libindicatorincludedir=$(includedir)/libindicator$(VER)-0.3/libindicator indicator_headers = \ indicator.h \ @@ -18,15 +24,8 @@ indicator_headers = \ indicator-service.h \ indicator-service-manager.h - libindicatorinclude_HEADERS = \ $(indicator_headers) -libindicator3include_HEADERS = \ - $(indicator_headers) - -lib_LTLIBRARIES = \ - libindicator.la \ - libindicator3.la libindicator_la_SOURCES = \ $(indicator_headers) \ @@ -39,23 +38,26 @@ libindicator_la_SOURCES = \ indicator-object-marshal.c \ indicator-service.c \ indicator-service-manager.c -libindicator3_la_SOURCES = $(libindicator_la_SOURCES) libindicator_la_CFLAGS = \ $(LIBINDICATOR_CFLAGS) \ -DG_LOG_DOMAIN=\"libindicator\" \ -Wall -Werror -libindicator3_la_CFLAGS = \ - $(LIBINDICATOR3_CFLAGS) \ - -DG_LOG_DOMAIN=\"libindicator\" \ - -Wall -Werror libindicator_la_LIBADD = \ $(LIBINDICATOR_LIBS) -libindicator3_la_LIBADD = \ - $(LIBINDICATOR3_LIBS) -pkgconfig_DATA = indicator.pc indicator3.pc +# We duplicate these here because Automake won't let us use $(VER) on the left hand side. +# Since we carefully use $(VER) in the right hand side above, we can assign the same values. +# Only one version of the library is every compiled at the same time, so it is safe to reuse +# the right hand sides like this. +libindicator3includedir = $(libindicatorincludedir) +libindicator3include_HEADERS = $(indicator_headers) +libindicator3_la_SOURCES = $(libindicator_la_SOURCES) +libindicator3_la_CFLAGS = $(libindicator_la_CFLAGS) +libindicator3_la_LIBADD = $(libindicator_la_LIBADD) + +pkgconfig_DATA = indicator$(VER).pc pkgconfigdir = $(libdir)/pkgconfig glib_marshal_list = indicator-object-marshal.list diff --git a/tests/Makefile.am b/tests/Makefile.am index 13fef2d..d6a1048 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,3 +1,9 @@ +if USE_GTK3 +INDICATOR_LIB = -lindicator3 +else +INDICATOR_LIB = -lindicator +endif + TESTS = DISTCLEANFILES = @@ -31,7 +37,7 @@ test_loader_CFLAGS = \ test_loader_LDADD = \ $(LIBINDICATOR_LIBS) \ -L$(top_builddir)/libindicator/.libs \ - -lindicator + $(INDICATOR_LIB) ############################# # Test Desktop Shortcuts @@ -51,7 +57,7 @@ test_desktop_shortcuts_CFLAGS = \ test_desktop_shortcuts_LDADD = \ $(LIBINDICATOR_LIBS) \ -L$(top_builddir)/libindicator/.libs \ - -lindicator + $(INDICATOR_LIB) DS_XML_REPORT = desktop-shortcuts-check-results.xml DS_HTML_REPORT = desktop-shortcuts-check-results.html @@ -83,7 +89,7 @@ libdummy_indicator_blank_la_CFLAGS = \ libdummy_indicator_blank_la_LIBADD = \ $(LIBINDICATOR_LIBS) \ -L$(top_builddir)/libindicator/.libs \ - -lindicator + $(INDICATOR_LIB) libdummy_indicator_blank_la_LDFLAGS = \ -module \ @@ -103,7 +109,7 @@ libdummy_indicator_null_la_CFLAGS = \ libdummy_indicator_null_la_LIBADD = \ $(LIBINDICATOR_LIBS) \ -L$(top_builddir)/libindicator/.libs \ - -lindicator + $(INDICATOR_LIB) libdummy_indicator_null_la_LDFLAGS = \ -module \ @@ -123,7 +129,7 @@ libdummy_indicator_signaler_la_CFLAGS = \ libdummy_indicator_signaler_la_LIBADD = \ $(LIBINDICATOR_LIBS) \ -L$(top_builddir)/libindicator/.libs \ - -lindicator + $(INDICATOR_LIB) libdummy_indicator_signaler_la_LDFLAGS = \ -module \ @@ -143,7 +149,7 @@ libdummy_indicator_simple_la_CFLAGS = \ libdummy_indicator_simple_la_LIBADD = \ $(LIBINDICATOR_LIBS) \ -L$(top_builddir)/libindicator/.libs \ - -lindicator + $(INDICATOR_LIB) libdummy_indicator_simple_la_LDFLAGS = \ -module \ diff --git a/tools/Makefile.am b/tools/Makefile.am index 5e5ef8d..d2964f9 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -1,3 +1,8 @@ +if USE_GTK3 +INDICATOR_LIB = -lindicator3 +else +INDICATOR_LIB = -lindicator +endif libexec_PROGRAMS = \ indicator-loader @@ -17,5 +22,5 @@ indicator_loader_CFLAGS = \ indicator_loader_LDADD = \ $(LIBINDICATOR_LIBS) \ -L$(top_builddir)/libindicator/.libs \ - -lindicator + $(INDICATOR_LIB) -- cgit v1.2.3