From f045bd0d50b28c53d7bf144be65b1c0e4d83c61a Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Mon, 15 Nov 2010 11:46:12 +0900 Subject: [PATCH] Add --with-gtk configure option. --- configure.ac | 49 ++++++++++++++++++++++++++++---- eek/Makefile.am | 74 ++++++++++++++++++++++++------------------------- 2 files changed, 81 insertions(+), 42 deletions(-) diff --git a/configure.ac b/configure.ac index 57d232ba..ef9fc43f 100644 --- a/configure.ac +++ b/configure.ac @@ -25,6 +25,46 @@ AC_CONFIG_MACRO_DIR([m4]) LT_INIT IT_PROG_INTLTOOL([0.35.0]) +AC_MSG_CHECKING([which gtk+ version to compile against]) +AC_ARG_WITH([gtk], + [AS_HELP_STRING([--with-gtk=2.0|3.0],[which gtk+ version to compile against (default: 2.0)])], + [case "$with_gtk" in + 2.0|3.0) ;; + *) AC_MSG_ERROR([invalid gtk version specified]) ;; + esac], + [with_gtk=2.0]) +AC_MSG_RESULT([$with_gtk]) + +case "$with_gtk" in + 2.0) GTK_API_VERSION=2.0 + GTK_REQUIRED=2.14.0 + EEK_API_VERSION=0.1 + EEK_API_MAJOR_VERSION=0 + EEK_API_MINOR_VERSION=1 + EEK_API_PC_VERSION=0.1 + EEK_LIBRARY_SUFFIX="-$EEK_API_VERSION" + ;; + 3.0) GTK_API_VERSION=3.0 + GTK_REQUIRED=2.91.0 + EEK_API_VERSION=0.90 + EEK_API_MAJOR_VERSION=0 + EEK_API_MINOR_VERSION=90 + EEK_API_PC_VERSION=0.90 + EEK_LIBRARY_SUFFIX="-$EEK_API_VERSION" + ;; +esac + +AC_SUBST([GTK_API_VERSION]) +AC_SUBST([EEK_API_VERSION]) +AC_SUBST([EEK_API_MAJOR_VERSION]) +AC_SUBST([EEK_API_MINOR_VERSION]) +AC_SUBST([EEK_API_PC_VERSION]) +AC_SUBST([EEK_LIBRARY_SUFFIX]) +AC_SUBST([EEK_LIBRARY_SUFFIX_U],[AS_TR_SH([$EEK_LIBRARY_SUFFIX])]) + +AM_CONDITIONAL([HAVE_GTK_2],[test "$with_gtk" = "2.0"]) +AM_CONDITIONAL([HAVE_GTK_3],[test "$with_gtk" = "3.0"]) + PKG_CHECK_MODULES([GLIB2], [glib-2.0], , [AC_MSG_ERROR([GLib2 not found])]) PKG_CHECK_MODULES([GOBJECT2], [gobject-2.0], , @@ -33,8 +73,10 @@ PKG_CHECK_MODULES([CAIRO], [cairo], , [AC_MSG_ERROR([Cairo not found])]) PKG_CHECK_MODULES([PANGO], [pango], , [AC_MSG_ERROR([Pango not found])]) -PKG_CHECK_MODULES([GTK2], [gtk+-2.0 gdk-2.0], , - [AC_MSG_ERROR([GTK2 not found])]) +PKG_CHECK_MODULES([GTK], [ + gtk+-$GTK_API_VERSION >= $GTK_REQUIRED + gdk-$GTK_API_VERSION >= $GTK_REQUIRED], , + [AC_MSG_ERROR([GTK not found])]) PKG_CHECK_MODULES([GCONF2], [gconf-2.0], , [AC_MSG_ERROR([GConf not found])]) PKG_CHECK_MODULES([XKB], [x11], , @@ -87,9 +129,6 @@ AM_CONDITIONAL(HAVE_CLUTTER, [test x$enable_clutter = xyes]) GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) -EEK_API_VERSION=0.1 -AC_SUBST(EEK_API_VERSION) - dnl to re-generate eek/*-keysym-labels.txt AC_CHECK_PROGS([PYTHON], [python]) diff --git a/eek/Makefile.am b/eek/Makefile.am index aeebefe5..5847a960 100644 --- a/eek/Makefile.am +++ b/eek/Makefile.am @@ -76,22 +76,22 @@ libeek_gtk_la_SOURCES = \ $(srcdir)/eek-drawing.c \ $(srcdir)/eek-gtk.h -libeek_gtk_la_CFLAGS = $(GTK2_CFLAGS) $(CAIRO_LIBS) $(PANGO_LIBS) -libeek_gtk_la_LIBADD = libeek.la $(GTK2_LIBS) $(CAIRO_LIBS) $(PANGO_LIBS) +libeek_gtk_la_CFLAGS = $(GTK_CFLAGS) $(CAIRO_LIBS) $(PANGO_LIBS) +libeek_gtk_la_LIBADD = libeek.la $(GTK_LIBS) $(CAIRO_LIBS) $(PANGO_LIBS) libeek_xkb_la_SOURCES = \ $(srcdir)/eek-xkb-layout.h \ $(srcdir)/eek-xkb-layout.c -libeek_xkb_la_CFLAGS = $(GTK2_CFLAGS) $(XKB_CFLAGS) -libeek_xkb_la_LIBADD = libeek.la $(GTK2_LIBS) $(XKB_LIBS) +libeek_xkb_la_CFLAGS = $(XKB_CFLAGS) $(GTK_CFLAGS) +libeek_xkb_la_LIBADD = libeek.la $(XKB_LIBS) $(GTK_LIBS) libeek_xkl_la_SOURCES = \ $(srcdir)/eek-xkl-layout.h \ $(srcdir)/eek-xkl-layout.c -libeek_xkl_la_CFLAGS = $(GTK2_CFLAGS) $(LIBXKLAVIER_CFLAGS) -libeek_xkl_la_LIBADD = libeek-xkb.la $(GTK2_LIBS) $(LIBXKLAVIER_LIBS) +libeek_xkl_la_CFLAGS = $(LIBXKLAVIER_CFLAGS) $(GTK_CFLAGS) +libeek_xkl_la_LIBADD = libeek-xkb.la $(LIBXKLAVIER_LIBS) $(GTK_LIBS) eekdir = $(includedir)/eek-$(EEK_API_VERSION)/eek eek_HEADERS = \ @@ -158,48 +158,48 @@ INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) if HAVE_INTROSPECTION -Eek-0.1.gir: libeek.la -Eek_0_1_gir_SCANNERFLAGS = --strip-prefix=Eek --pkg=glib-2.0 -Eek_0_1_gir_INCLUDES = GLib-2.0 GObject-2.0 -Eek_0_1_gir_CFLAGS = $(libeek_la_CFLAGS) -Eek_0_1_gir_LIBS = libeek.la -Eek_0_1_gir_FILES = $(libeek_la_SOURCES) +Eek@EEK_LIBRARY_SUFFIX@.gir: libeek.la +Eek@EEK_LIBRARY_SUFFIX_U@_gir_SCANNERFLAGS = --strip-prefix=Eek --pkg=glib-2.0 +Eek@EEK_LIBRARY_SUFFIX_U@_gir_INCLUDES = GLib-2.0 GObject-2.0 +Eek@EEK_LIBRARY_SUFFIX_U@_gir_CFLAGS = $(libeek_la_CFLAGS) +Eek@EEK_LIBRARY_SUFFIX_U@_gir_LIBS = libeek.la +Eek@EEK_LIBRARY_SUFFIX_U@_gir_FILES = $(libeek_la_SOURCES) -EekGtk-0.1.gir: libeek-gtk.la Eek-0.1.gir -EekGtk_0_1_gir_INCLUDES = GObject-2.0 Gtk-3.0 Eek-0.1 -EekGtk_0_1_gir_CFLAGS = $(libeek_gtk_la_CFLAGS) -EekGtk_0_1_gir_LIBS = libeek-gtk.la -EekGtk_0_1_gir_FILES = $(libeek_gtk_la_SOURCES) +EekGtk@EEK_LIBRARY_SUFFIX@.gir: libeek-gtk.la Eek@EEK_LIBRARY_SUFFIX@.gir +EekGtk@EEK_LIBRARY_SUFFIX_U@_gir_INCLUDES = GObject-2.0 Gtk-@GTK_API_VERSION@ Eek@EEK_LIBRARY_SUFFIX@ +EekGtk@EEK_LIBRARY_SUFFIX_U@_gir_CFLAGS = $(libeek_gtk_la_CFLAGS) +EekGtk@EEK_LIBRARY_SUFFIX_U@_gir_LIBS = libeek-gtk.la +EekGtk@EEK_LIBRARY_SUFFIX_U@_gir_FILES = $(libeek_gtk_la_SOURCES) if HAVE_CLUTTER -EekClutter-0.1.gir: libeek-clutter.la Eek-0.1.gir -EekClutter_0_1_gir_INCLUDES = GObject-2.0 Clutter-1.0 Eek-0.1 -EekClutter_0_1_gir_CFLAGS = $(libeek_clutter_la_CFLAGS) -EekClutter_0_1_gir_LIBS = libeek-clutter.la -EekClutter_0_1_gir_FILES = $(libeek_clutter_la_SOURCES) +EekClutter@EEK_LIBRARY_SUFFIX@.gir: libeek-clutter.la Eek@EEK_LIBRARY_SUFFIX@.gir +EekClutter@EEK_LIBRARY_SUFFIX_U@_gir_INCLUDES = GObject-2.0 Clutter-1.0 Eek@EEK_LIBRARY_SUFFIX@ +EekClutter@EEK_LIBRARY_SUFFIX_U@_gir_CFLAGS = $(libeek_clutter_la_CFLAGS) +EekClutter@EEK_LIBRARY_SUFFIX_U@_gir_LIBS = libeek-clutter.la +EekClutter@EEK_LIBRARY_SUFFIX_U@_gir_FILES = $(libeek_clutter_la_SOURCES) endif -EekXkb-0.1.gir: libeek-xkb.la Eek-0.1.gir -EekXkb_0_1_gir_INCLUDES = GObject-2.0 Eek-0.1 -EekXkb_0_1_gir_CFLAGS = $(libeek_xkb_la_CFLAGS) -EekXkb_0_1_gir_LIBS = libeek-xkb.la -EekXkb_0_1_gir_FILES = $(libeek_xkb_la_SOURCES) +EekXkb@EEK_LIBRARY_SUFFIX@.gir: libeek-xkb.la Eek@EEK_LIBRARY_SUFFIX@.gir +EekXkb@EEK_LIBRARY_SUFFIX_U@_gir_INCLUDES = GObject-2.0 Eek@EEK_LIBRARY_SUFFIX@ +EekXkb@EEK_LIBRARY_SUFFIX_U@_gir_CFLAGS = $(libeek_xkb_la_CFLAGS) +EekXkb@EEK_LIBRARY_SUFFIX_U@_gir_LIBS = libeek-xkb.la +EekXkb@EEK_LIBRARY_SUFFIX_U@_gir_FILES = $(libeek_xkb_la_SOURCES) -EekXkl-0.1.gir: libeek-xkl.la EekXkb-0.1.gir -EekXkl_0_1_gir_INCLUDES = GObject-2.0 EekXkb-0.1 -EekXkl_0_1_gir_CFLAGS = $(libeek_xkl_la_CFLAGS) -EekXkl_0_1_gir_LIBS = libeek-xkl.la -EekXkl_0_1_gir_FILES = $(libeek_xkl_la_SOURCES) +EekXkl@EEK_LIBRARY_SUFFIX@.gir: libeek-xkl.la EekXkb@EEK_LIBRARY_SUFFIX@.gir +EekXkl@EEK_LIBRARY_SUFFIX_U@_gir_INCLUDES = GObject-2.0 EekXkb@EEK_LIBRARY_SUFFIX@ +EekXkl@EEK_LIBRARY_SUFFIX_U@_gir_CFLAGS = $(libeek_xkl_la_CFLAGS) +EekXkl@EEK_LIBRARY_SUFFIX_U@_gir_LIBS = libeek-xkl.la +EekXkl@EEK_LIBRARY_SUFFIX_U@_gir_FILES = $(libeek_xkl_la_SOURCES) INTROSPECTION_GIRS += \ - Eek-0.1.gir \ - EekGtk-0.1.gir \ - EekXkb-0.1.gir \ - EekXkl-0.1.gir + Eek@EEK_LIBRARY_SUFFIX@.gir \ + EekGtk@EEK_LIBRARY_SUFFIX@.gir \ + EekXkb@EEK_LIBRARY_SUFFIX@.gir \ + EekXkl@EEK_LIBRARY_SUFFIX@.gir if HAVE_CLUTTER INTROSPECTION_GIRS += \ - EekClutter-0.1.gir + EekClutter@EEK_LIBRARY_SUFFIX@.gir endif girdir = $(datadir)/gir-1.0