diff options
author | Dan Nicholson <dbn.lists@gmail.com> | 2012-08-08 17:07:48 -0700 |
---|---|---|
committer | Dan Nicholson <dbn.lists@gmail.com> | 2012-08-08 17:07:48 -0700 |
commit | 2c5daf59dd359f684736811b95c70d523b06b06b (patch) | |
tree | aa8f6c5a09ebd9320e7493f0e1bb90e13c157dfc | |
parent | a6d62fdebecbbe4495a3ed43b5ca0253cb14888f (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.ac | 51 | ||||
-rw-r--r-- | src/Makefile.am | 34 | ||||
-rw-r--r-- | test/Makefile.am | 14 |
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 |