summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Nicholson <dbn.lists@gmail.com>2012-08-08 17:07:48 -0700
committerDan Nicholson <dbn.lists@gmail.com>2012-08-08 17:07:48 -0700
commit2c5daf59dd359f684736811b95c70d523b06b06b (patch)
treeaa8f6c5a09ebd9320e7493f0e1bb90e13c157dfc
parenta6d62fdebecbbe4495a3ed43b5ca0253cb14888f (diff)
Allow building both gtk2 and gtk3 versions of plugin
To make things more useful for GNOME/epiphany, which is squarely in gtk3 land, allow building both the gtk2 and gtk3 versions of the plugin. I'm not sure what will happen when both plugin's are in the browser's path. A subsequent patch will allow finer grained control of the installation directory.
-rw-r--r--configure.ac51
-rw-r--r--src/Makefile.am34
-rw-r--r--test/Makefile.am14
3 files changed, 71 insertions, 28 deletions
diff --git a/configure.ac b/configure.ac
index 028a0c7..56de4f0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -24,29 +24,48 @@ dnl want their headers from MOZILLA_CFLAGS.
mozilla_pkgs="mozilla-plugin nspr"
PKG_CHECK_MODULES([MOZILLA], [$mozilla_pkgs])
-dnl See if we want gtk2/evince2 or gtk3/evince3. This is important
+dnl See if we want gtk2/evince2 and/or gtk3/evince3. This is important
dnl because mozilla currently only support gtk2 plugins and epiphany
dnl only supports gtk3 plugins. Default to gtk2 for now since firefox is
dnl the more likely browser.
-AC_MSG_CHECKING([which GTK+ version to use])
+AC_MSG_CHECKING([if gtk+-2.0 should be used])
+AC_ARG_ENABLE([gtk2],
+ [AC_HELP_STRING([--enable-gtk2],
+ [use gtk+/evince version 2 (default: yes)])],
+ [case "$enable_gtk2" in
+ yes|no) ;;
+ *) AC_MSG_ERROR([invalid option "$enable_gtk2"]) ;;
+ esac],
+ [enable_gtk2=yes])
+AC_MSG_RESULT([$enable_gtk2])
+AC_MSG_CHECKING([if gtk+-3.0 should be used])
AC_ARG_ENABLE([gtk3],
[AC_HELP_STRING([--enable-gtk3],
- [use GTK+ version 3 (default: no, gtk2)])],
- [],
+ [use gtk+/evince version 3 (default: no)])],
+ [case "$enable_gtk3" in
+ yes|no) ;;
+ *) AC_MSG_ERROR([invalid option "$enable_gtk3"]) ;;
+ esac],
[enable_gtk3=no])
-if test "x$enable_gtk3" = xno; then
- gtk=gtk+-2.0
- gtk_required=$GTK2_REQUIRED
- evince_api=$EVINCE2_API
-else
- gtk=gtk+-3.0
- gtk_required=$GTK3_REQUIRED
- evince_api=$EVINCE3_API
+AC_MSG_RESULT([$enable_gtk3])
+
+dnl Make sure we have one available toolkit
+if test $enable_gtk2 = no && test $enable_gtk3 = no; then
+ AC_MSG_ERROR([cannot disable both gtk2 and gtk3])
+fi
+
+evince2_pkgs="gtk+-2.0 >= $GTK2_REQUIRED gio-2.0 >= $GLIB_REQUIRED \
+ evince-view-$EVINCE2_API evince-document-$EVINCE2_API"
+evince3_pkgs="gtk+-3.0 >= $GTK3_REQUIRED gio-2.0 >= $GLIB_REQUIRED \
+ evince-view-$EVINCE3_API evince-document-$EVINCE3_API"
+if test $enable_gtk2 = yes; then
+ PKG_CHECK_MODULES([EVINCE2], [$evince2_pkgs])
+fi
+AM_CONDITIONAL([ENABLE_GTK2], [test $enable_gtk2 = yes])
+if test $enable_gtk3 = yes; then
+ PKG_CHECK_MODULES([EVINCE3], [$evince3_pkgs])
fi
-AC_MSG_RESULT([$gtk])
-evince_pkgs="$gtk >= $gtk_required gio-2.0 >= $GLIB_REQUIRED \
- evince-view-$evince_api evince-document-$evince_api"
-PKG_CHECK_MODULES([EVINCE], [$evince_pkgs])
+AM_CONDITIONAL([ENABLE_GTK3], [test $enable_gtk3 = yes])
GETTEXT_PACKAGE="$PACKAGE"
AC_SUBST(GETTEXT_PACKAGE)
diff --git a/src/Makefile.am b/src/Makefile.am
index 2fd2fd7..d6b2266 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,15 +1,31 @@
-AM_CFLAGS = $(MOZILLA_CFLAGS) $(EVINCE_CFLAGS) $(E_CFLAGS)
-
-noinst_LTLIBRARIES = libevbp-viewer.la
-libevbp_viewer_la_LIBADD = $(EVINCE_LIBS)
-libevbp_viewer_la_SOURCES = \
+libevbp2_viewer_la_CFLAGS = $(E_CFLAGS) $(MOZILLA_CFLAGS) $(EVINCE2_CFLAGS)
+libevbp2_viewer_la_LIBADD = $(EVINCE2_LIBS)
+libevbp2_viewer_la_SOURCES = \
evbp-viewer.h evbp-viewer.c \
evbp-mime.h evbp-mime.c \
ev-page-action.h ev-page-action.c \
ev-page-action-widget.h ev-page-action-widget.c
+libevbp3_viewer_la_CFLAGS = $(E_CFLAGS) $(MOZILLA_CFLAGS) $(EVINCE3_CFLAGS)
+libevbp3_viewer_la_LIBADD = $(EVINCE3_LIBS)
+libevbp3_viewer_la_SOURCES = $(libevbp2_viewer_la_SOURCES)
+
+libevince2_plugin_la_CFLAGS = $(E_CFLAGS) $(MOZILLA_CFLAGS) $(EVINCE2_CFLAGS)
+libevince2_plugin_la_LDFLAGS = -avoid-version -module
+libevince2_plugin_la_LIBADD = libevbp2-viewer.la
+libevince2_plugin_la_SOURCES = evbp.c
+libevince3_plugin_la_CFLAGS = $(E_CFLAGS) $(MOZILLA_CFLAGS) $(EVINCE3_CFLAGS)
+libevince3_plugin_la_LDFLAGS = $(libevince2_plugin_la_LDFLAGS)
+libevince3_plugin_la_LIBADD = libevbp3-viewer.la
+libevince3_plugin_la_SOURCES = $(libevince2_plugin_la_SOURCES)
+noinst_LTLIBRARIES =
plugindir = $(libdir)/mozilla/plugins
-plugin_LTLIBRARIES = libevince-plugin.la
-libevince_plugin_la_LDFLAGS = -avoid-version -module
-libevince_plugin_la_LIBADD = libevbp-viewer.la
-libevince_plugin_la_SOURCES = evbp.c
+plugin_LTLIBRARIES =
+if ENABLE_GTK2
+noinst_LTLIBRARIES += libevbp2-viewer.la
+plugin_LTLIBRARIES += libevince2-plugin.la
+endif
+if ENABLE_GTK3
+noinst_LTLIBRARIES += libevbp3-viewer.la
+plugin_LTLIBRARIES += libevince3-plugin.la
+endif
diff --git a/test/Makefile.am b/test/Makefile.am
index 2f5bc40..fa84755 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1,5 +1,13 @@
-AM_CFLAGS = -I$(top_srcdir)/src $(MOZILLA_CFLAGS) $(EVINCE_CFLAGS) \
- $(E_CFLAGS) -DPLUG_PROCESS=\"$(abs_builddir)/previewer-plug$(EXEEXT)\"
-LDADD = $(top_builddir)/src/libevbp-viewer.la
+AM_CFLAGS = -I$(top_srcdir)/src $(E_CFLAGS) $(MOZILLA_CFLAGS) \
+ -DPLUG_PROCESS=\"$(abs_builddir)/previewer-plug$(EXEEXT)\"
+
+# use gtk3 if it's available
+if ENABLE_GTK3
+AM_CFLAGS += $(EVINCE3_CFLAGS)
+LDADD = $(top_builddir)/src/libevbp3-viewer.la
+else
+AM_CFLAGS += $(EVINCE2_CFLAGS)
+LDADD = $(top_builddir)/src/libevbp2-viewer.la
+endif
noinst_PROGRAMS = mime previewer previewer-plug