]> www.fi.muni.cz Git - evince.git/blobdiff - configure.ac
[windows/build] Add -mwindows flag for true Windows apps
[evince.git] / configure.ac
index 2c213de47451ff2de90e91ba27e9ef74a27df197..4653db98c90f8c201e15ce240c2fed30adbb50a0 100644 (file)
@@ -1,21 +1,62 @@
-dnl Process this file with autoconf to produce a configure script.
-
-AC_PREREQ(2.57)
-AC_INIT([Evince],[2.25.5],[http://bugzilla.gnome.org/enter_bug.cgi?product=evince],[evince])
-AM_INIT_AUTOMAKE([1.9 dist-bzip2 no-dist-gzip])
-
-EV_API_VERSION=2.25
-AC_SUBST(EV_API_VERSION)
-
-AM_CONFIG_HEADER(config.h)
-
-AM_MAINTAINER_MODE
+# *****************************************************************************
+# Versioning
+# *****************************************************************************
+
+m4_define([ev_major_version],[2])
+m4_define([ev_minor_version],[27])
+m4_define([ev_micro_version],[1])
+m4_define([ev_extra_version],[])
+m4_define([ev_version],[ev_major_version.ev_minor_version.ev_micro_version()ev_extra_version])
+
+# The evince API version
+m4_define([ev_api_version], [2.25])
+
+# Libtool versioning. The backend and view libraries have separate versions.
+# Before making a release, the libtool version should be modified.
+# The string is of the form C:R:A.
+# - If interfaces have been changed or added, but binary compatibility has
+#   been preserved, change to C+1:0:A+1
+# - If binary compatibility has been broken (eg removed or changed interfaces)
+#   change to C+1:0:0
+# - If the interface is the same as the previous version, change to C:R+1:A
+
+# Libtool version of the backend library
+m4_define([ev_document_lt_current],[1])
+m4_define([ev_document_lt_revision],[0])
+m4_define([ev_document_lt_age],[0])
+m4_define([ev_document_lt_version_info],[ev_document_lt_current:ev_document_lt_revision:ev_document_lt_age])
+m4_define([ev_document_lt_current_minus_age],[m4_eval(ev_document_lt_current - ev_document_lt_age)])
+
+# Libtool version of the view library
+m4_define([ev_view_lt_current],[1])
+m4_define([ev_view_lt_revision],[0])
+m4_define([ev_view_lt_age],[0])
+m4_define([ev_view_lt_version_info],[ev_view_lt_current:ev_view_lt_revision:ev_view_lt_age])
+m4_define([ev_view_lt_current_minus_age],[m4_eval(ev_view_lt_current - ev_view_lt_age)])
+
+# Binary version for the document backends
+m4_define([ev_binary_version],[ev_document_lt_current])
+
+# *****************************************************************************
+
+AC_PREREQ([2.57])
+AC_INIT([Evince],[ev_version],[http://bugzilla.gnome.org/enter_bug.cgi?product=evince],[evince])
+AM_INIT_AUTOMAKE([1.9 foreign dist-bzip2 no-dist-gzip])
+
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_MACRO_DIR([m4])
+
+if test -z "$enable_maintainer_mode"; then
+  enable_maintainer_mode=yes
+fi
+AM_MAINTAINER_MODE([enable])
 
 AM_PROG_LIBTOOL
 
 AC_ISC_POSIX
 AC_PROG_CC
 AM_PROG_CC_STDC
+AM_PROG_CC_C_O
 AC_PROG_CXX
 AC_STDC_HEADERS
 IT_PROG_INTLTOOL([0.35.0])
@@ -35,34 +76,113 @@ AC_SUBST(GETTEXT_PACKAGE)
 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
 AM_GLIB_GNU_GETTEXT
 
-dnl Check dependencies
+# Check which platform to use
+
+AC_MSG_CHECKING([for which platform to build])
+AC_ARG_WITH([platform],
+  [AS_HELP_STRING([--with-platform=gnome|win32|hildon (default: gnome)])],
+  [case "$withval" in
+    gnome|win32|hildon) ;;
+    *) AC_MSG_ERROR([invalid argument "$withval" for --with-platform]) ;;
+   esac],
+  [case "$host" in
+     *-*-mingw*|*-*-cygwin*) with_platform="win32" ;;
+     *) with_platform=gnome ;;
+   esac])
+
+AC_MSG_RESULT([$with_platform])
+
+if test "$with_platform" = "win32"; then
+  AC_CHECK_TOOL([WINDRES],[windres])
+  AC_MSG_CHECKING([for native Win32])
+  case "$host" in
+    *-*-mingw*)
+      os_win32=yes
+      ;;
+    *)
+      os_win32=no
+      ;;
+  esac
+  AC_MSG_RESULT([$os_win32])
+fi
 
-# LIB_CFLAGS       for helpers and generic widgets. (libdocument, cut-and-paste)
-# BACKEND_CFLAGS   for backend implementations.
-# FRONTEND_CFLAGS  for frontend implementations. (properties, thumbnailer)
-# FRONTEND_LIBS
-# SHELL_CFLAGS     for shell implementation.
-# SHELL_LIBS
+AM_CONDITIONAL([PLATFORM_HILDON],[test "$with_platform" = "hildon"])
+AM_CONDITIONAL([PLATFORM_WIN32],[test "$with_platform" = "win32"])
 
+dnl Specify required versions of dependencies
 DBUS_GLIB_REQUIRED=0.70
 GTK_REQUIRED=2.12.0
 GLIB_REQUIRED=2.18.0
 KEYRING_REQUIRED=2.22.0
+AC_SUBST([GLIB_REQUIRED])
+AC_SUBST([GTK_REQUIRED])
 
 GNOME_ICON_THEME_REQUIRED=2.17.1
 LIBXML_REQUIRED=2.5.0
 
+dnl Check dependencies
+
+# LIB_CFLAGS       for helpers and generic widgets. (libdocument, cut-and-paste)
+# BACKEND_CFLAGS   for backend implementations.
+# FRONTEND_CFLAGS  for frontend implementations. (properties, thumbnailer)
+# FRONTEND_LIBS
+# SHELL_CFLAGS     for shell implementation.
+# SHELL_LIBS
+
 PKG_CHECK_MODULES(LIBDOCUMENT, gtk+-2.0 >= $GTK_REQUIRED gio-2.0 >= $GLIB_REQUIRED)
 PKG_CHECK_MODULES(LIBVIEW, gtk+-2.0 >= $GTK_REQUIRED gthread-2.0 gio-2.0 >= $GLIB_REQUIRED)
 PKG_CHECK_MODULES(BACKEND, gtk+-2.0 >= $GTK_REQUIRED)
 PKG_CHECK_MODULES(FRONTEND_CORE, gtk+-2.0 >= $GTK_REQUIRED gthread-2.0 gio-2.0 >= $GLIB_REQUIRED)
-PKG_CHECK_MODULES(SHELL_CORE, libxml-2.0 >= $LIBXML_REQUIRED gtk+-2.0 >= $GTK_REQUIRED gtk+-unix-print-2.0 >= $GTK_REQUIRED gio-2.0 >= $GLIB_REQUIRED gnome-icon-theme >= $GNOME_ICON_THEME_REQUIRED gthread-2.0 gconf-2.0)
+PKG_CHECK_MODULES(PREVIEWER, gtk+-2.0 >= $GTK_REQUIRED gthread-2.0 gio-2.0 >= $GLIB_REQUIRED)
+
+SHELL_PLATFORM_PKGS=
+case "$with_platform" in
+  hildon) AC_DEFINE([PLATFORM_HILDON],[1],[Define if building for the hildon platform])
+          SHELL_PLATFORM_PKGS="hildon-1 hildon-fm-2 libosso"
+          ;;
+  *) SHELL_PLATFORM_PKGS="gnome-icon-theme >= $GNOME_ICON_THEME_REQUIRED"
+     ;;
+esac
+
+PKG_CHECK_MODULES([SHELL_CORE],[libxml-2.0 >= $LIBXML_REQUIRED gtk+-2.0 >= $GTK_REQUIRED gio-2.0 >= $GLIB_REQUIRED gthread-2.0 $SHELL_PLATFORM_PKGS])
+
+# *********
+# SM client
+# *********
+
+GDK_TARGET="$($PKG_CONFIG --variable target gdk-2.0)"
+
+SMCLIENT_PKGS=
+AC_MSG_CHECKING([which smclient backend to use])
+AC_ARG_WITH([smclient],
+  [AS_HELP_STRING([--with-smclient-backend],[which smclient backend to use (no|xsmp|win32|quartz)])],
+  [],
+  [case "$GDK_TARGET" in
+    x11) case "$with_platform" in
+           gnome) with_smclient=xsmp SMCLIENT_PKGS="sm >= 1.0.0" ;;
+           *) with_smclient=no ;;
+         esac ;;
+    win32|quartz) with_smclient=$GDK_TARGET ;;
+    *) with_smclient=no ;;
+   esac])
+AC_MSG_RESULT([$with_smclient])
+
+if test "$with_smclient" != "no"; then
+  AC_DEFINE([WITH_SMCLIENT],[1],[Define if smclient is enabled])
+
+  PKG_CHECK_MODULES([SMCLIENT],[gtk+-2.0 gthread-2.0 $SMCLIENT_PKGS])
+  AC_SUBST([SMCLIENT_CFLAGS])
+  AC_SUBST([SMCLIENT_LIBS])
+fi
+
+AM_CONDITIONAL([WITH_SMCLIENT],[test "$with_smclient" != "no"])
+AM_CONDITIONAL([WITH_SMCLIENT_XSMP],[test "$with_smclient" = "xsmp"])
+AM_CONDITIONAL([WITH_SMCLIENT_WIN32],[test "$with_smclient" = "win32"])
+AM_CONDITIONAL([WITH_SMCLIENT_QUARTZ],[test "$with_smclient" = "quartz"])
 
-PKG_CHECK_MODULES(SMCLIENT, gtk+-2.0 gthread-2.0)
-AC_SUBST(SMCLIENT_CFLAGS)
-AC_SUBST(SMCLIENT_LIBS)
+# ***
 
-BACKEND_LIBTOOL_FLAGS="-module -avoid-version"
+BACKEND_LIBTOOL_FLAGS="-module -avoid-version -no-undefined -export-symbols \$(top_srcdir)/backend/backend.symbols"
 AC_SUBST(BACKEND_LIBTOOL_FLAGS)
 
 dnl ===== Check special functions
@@ -71,17 +191,39 @@ LIBS="$LIBS $BACKEND_LIBS"
 AC_CHECK_FUNCS(cairo_format_stride_for_width)
 LIBS=$evince_save_LIBS
 
+# ******************
+# GKT+ Unix Printing
+# ******************
+
+AC_MSG_CHECKING([whether gtk+-unix-print support is requested])
+AC_ARG_WITH([gtk-unix-print],
+  [AS_HELP_STRING([--without-gtk-unix-print],[disable the use of gtk-unix-print])],
+  [],[case "$os_win32" in
+        yes) with_gtk_unix_print=no ;;
+        *) with_gtk_unix_print=yes ;;
+      esac])
+AC_MSG_RESULT([$with_gtk_unix_print])
+
+if test "$with_gtk_unix_print" = "yes"; then
+   PKG_CHECK_MODULES(GTKUNIXPRINT, [gtk+-unix-print-2.0 >= $GTK_REQUIRED])
+   AC_DEFINE([GTKUNIXPRINT_ENABLED], [1], [Define if gtk+-unix-print is enabled.])
+fi
+
+# *********************
+# GNOME Keyring support
+# *********************
+
 AC_ARG_WITH(keyring,
-        AC_HELP_STRING([--without-keyring],[disable the use of gnome-keyring]),
-       [case "${withval}" in
-       yes) WITH_KEYRING=yes ;;
-       no) WITH_KEYRING=no ;;
-       *) AC_MSG_ERROR(bad value ${withval} for --with-keyring) ;;
-       esac],
-       [WITH_KEYRING=yes]) dnl Default value
-AM_CONDITIONAL(WITH_KEYRING, test x$WITH_KEYRING = "xyes")
-
-if test x$WITH_KEYRING = "xyes"; then
+        [AS_HELP_STRING([--without-keyring],[disable the use of gnome-keyring])],
+        [],
+        [case "$with_platform" in
+           gnome) with_keyring=yes ;;
+           hildon|win32) with_keyring=no ;;
+         esac])
+
+AM_CONDITIONAL([WITH_KEYRING],[test "$with_keyring" = "yes"])
+
+if test "$with_keyring" = "yes"; then
         PKG_CHECK_MODULES(KEYRING, gnome-keyring-1 >= $KEYRING_REQUIRED)
         AC_DEFINE([WITH_KEYRING],[1],[Define if KEYRING support is enabled])
 fi
@@ -89,36 +231,63 @@ fi
 GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`  
 AC_SUBST(GLIB_GENMARSHAL)
 
-dnl ========= Check for DBUS
-AC_ARG_ENABLE(dbus,
-       [AC_HELP_STRING([--enable-dbus], [Compile with support for dbus])],
-       enable_dbus="$enableval",enable_dbus=yes)
-if test "x$enable_dbus" != "xno"; then
-       PKG_CHECK_MODULES([DBUS], [dbus-glib-1 >= $DBUS_GLIB_REQUIRED],
-       [enable_dbus=yes],[enable_dbus=no])
+# ****
+# DBUS
+# ****
 
-       if test "x$enable_dbus" = "xno"; then
-          AC_MSG_WARN([DBUS support is disabled since dbus $DBUS_GLIB_REQUIRED or higher was not found])
-       fi         
+AC_ARG_ENABLE([dbus],
+  [AS_HELP_STRING([--enable-dbus], [Compile with support for dbus])],
+  [],
+  [case "$with_platform" in
+      gnome) enable_dbus=yes ;;
+      hildon) enable_dbus=no ;;
+    esac])
 
-       if test "x$enable_dbus" = "xyes" ; then
-               AC_PATH_PROG([DBUS_BINDING_TOOL], [dbus-binding-tool], [no])
+if test "$enable_dbus" = "yes"; then
+  PKG_CHECK_MODULES([DBUS],[dbus-glib-1 >= $DBUS_GLIB_REQUIRED],[],
+                    [AC_MSG_ERROR([DBUS not found; use --disable-dbus to disable DBUS support])])
 
-               if test x$DBUS_BINDING_TOOL = "xno" ; then
-                       AC_MSG_ERROR([dbus-binding-tool executable not found in your path - should be installed with dbus glib bindings])
-               fi                                            
+  AC_PATH_PROG([DBUS_BINDING_TOOL], [dbus-binding-tool], [no])
+  if test x$DBUS_BINDING_TOOL = "xno" ; then
+          AC_MSG_ERROR([dbus-binding-tool executable not found in your path - should be installed with dbus glib bindings])
+  fi
 
-               AC_DEFINE([ENABLE_DBUS],[1],[Define if DBUS support is enabled])
-       fi
+  AC_DEFINE([ENABLE_DBUS],[1],[Define if DBUS support is enabled])
 fi
 
 AC_SUBST([DBUS_CFLAGS])
 AC_SUBST([DBUS_LIBS])
 
-AM_CONDITIONAL([ENABLE_DBUS], [test "x$enable_dbus" = "xyes"])
-AM_CONDITIONAL([DBUS_TOOL_NO_PREFIX], [test "x$DBUS_VERSION" = "x33"])
+AM_CONDITIONAL([ENABLE_DBUS], [test "$enable_dbus" = "yes"])
+
+dnl ========= Check for GConf
+
+AC_MSG_CHECKING([whether GConf support is requested])
+AC_ARG_WITH([gconf],
+  [AS_HELP_STRING([--without-gconf],[disable the use of gconf])],
+  [],
+  [case "$os_win32" in
+     yes) with_gconf=no ;;
+     *) with_gconf=yes ;;
+   esac])
+AC_MSG_RESULT([$with_gconf])
+
+AM_CONDITIONAL([WITH_GCONF],[test "$with_gconf" = "yes"])
+
+if test "$with_gconf" = "yes"; then
+   PKG_CHECK_MODULES([GCONF],[gconf-2.0])
+   AC_DEFINE([WITH_GCONF],[1],[Define if GConf support is enabled])
+fi
+
+AM_GCONF_SOURCE_2
+
+AC_PATH_PROG([GCONFTOOL], [gconftool-2], [false])
+if test "$with_gconf" = "yes" -a "$GCONFTOOL" = "false"; then
+  AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf])
+fi
 
 dnl Debug mode
+
 AC_ARG_ENABLE([debug],
        AC_HELP_STRING([--enable-debug],
                        [Turn on evince debug mode]),,
@@ -143,8 +312,8 @@ BACKEND_CFLAGS="$BACKEND_CFLAGS -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE $DEBUG
 AC_SUBST(BACKEND_CFLAGS)
 AC_SUBST(BACKEND_LIBS)
 
-SHELL_CFLAGS="$SHELL_CORE_CFLAGS $DBUS_CFLAGS $KEYRING_CFLAGS -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE $DEBUG_FLAGS"
-SHELL_LIBS="$SHELL_CORE_LIBS $DBUS_LIBS $KEYRING_LIBS -lz"
+SHELL_CFLAGS="$SHELL_CORE_CFLAGS $GTKUNIXPRINT_CFLAGS $DBUS_CFLAGS $KEYRING_CFLAGS $GCONF_CFLAGS -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE $DEBUG_FLAGS"
+SHELL_LIBS="$SHELL_CORE_LIBS $GTKUNIXPRINT_CFLAGS $DBUS_LIBS $KEYRING_LIBS $GCONF_LIBS -lz"
 AC_SUBST(SHELL_CFLAGS)
 AC_SUBST(SHELL_LIBS)
 
@@ -153,50 +322,97 @@ FRONTEND_LIBS="$FRONTEND_CORE_LIBS -lz"
 AC_SUBST(FRONTEND_CFLAGS)
 AC_SUBST(FRONTEND_LIBS)
 
-dnl Check for Nautilus property page build
-AC_ARG_ENABLE(nautilus,
-       AC_HELP_STRING([--enable-nautilus],[compile the nautilus plugin]),
-       [case "${enableval}" in
-       yes) ENABLE_NAUTILUS=yes ;;
-       no) ENABLE_NAUTILUS=no ;;
-       *) AC_MSG_ERROR(bad value ${enableval} for --enable-nautilus) ;;
-       esac],
-       [ENABLE_NAUTILUS=yes]) dnl Default value
-
-if test x$ENABLE_NAUTILUS = "xyes" ; then
-       PKG_CHECK_MODULES(NAUTILUS, gtk+-x11-2.0 $MM gthread-2.0 libnautilus-extension,
-                       [HAVE_NAUTILUS=yes], [HAVE_NAUTILUS=no])
-       NAUTILUS_EXTENSION_DIR=`$PKG_CONFIG --variable=extensiondir libnautilus-extension`
-       AC_SUBST(NAUTILUS_EXTENSION_DIR)
+# Check for Nautilus property page build
+AC_ARG_ENABLE([nautilus],
+  [AS_HELP_STRING([--disable-nautilus],[Build the nautilus extensions])],
+  [],
+  [case "$with_platform" in
+     gnome) enable_nautilus=yes ;;
+     *) enable_nautilus=no ;;
+    esac])
+
+if test "$enable_nautilus" = "yes" ; then
+  PKG_CHECK_MODULES([NAUTILUS],[gtk+-x11-2.0 $MM gthread-2.0 libnautilus-extension],
+                    [],[AC_MSG_ERROR([libnautilus-extension not found; use --disable-nautilus to disable the nautilus extensions])])
+  NAUTILUS_EXTENSION_DIR=`$PKG_CONFIG --variable=extensiondir libnautilus-extension`
+  AC_SUBST([nautilusextensiondir],[$NAUTILUS_EXTENSION_DIR])
+  AC_SUBST(NAUTILUS_CFLAGS)
+  AC_SUBST(NAUTILUS_LIBS)
+
+  AC_DEFINE([HAVE_NAUTILUS],[1], [defined if you build the nautilus plugin])
 fi
 
-AC_SUBST(NAUTILUS_CFLAGS)
-AC_SUBST(NAUTILUS_LIBS)
-if test x$HAVE_NAUTILUS = "xyes"; then
-       AC_DEFINE(HAVE_NAUTILUS, 1, [defined if you build the nautilus plugin])
-fi
-AM_CONDITIONAL(HAVE_NAUTILUS, test x$HAVE_NAUTILUS = "xyes")
+AM_CONDITIONAL([ENABLE_NAUTILUS],[test "$enable_nautilus" = "yes"])
 
+# Check for thumbnailer build
 
-dnl Check for thumbnailer build
-AC_ARG_ENABLE(thumbnailer,
-        AC_HELP_STRING([--disable-thumbnailer],[disable the GNOME thumbnailer]),
-       [case "${enableval}" in
-       yes) ENABLE_THUMBNAILER=yes ;;
-       no) ENABLE_THUMBNAILER=no ;;
-       *) AC_MSG_ERROR(bad value ${enableval} for --enable-thumbnailer) ;;
-       esac],
-       [ENABLE_THUMBNAILER=yes]) dnl Default value
-AM_CONDITIONAL(ENABLE_THUMBNAILER, test x$ENABLE_THUMBNAILER = "xyes")
+AC_ARG_ENABLE([thumbnailer],
+  [AS_HELP_STRING([--disable-thumbnailer],[disable the GNOME thumbnailer])],
+  [],
+  [case "$with_platform" in
+     gnome) enable_thumbnailer=yes ;;
+     *) enable_thumbnailer=no ;;
+    esac])
 
-dnl GConf configuration
-AM_GCONF_SOURCE_2
+AM_CONDITIONAL([ENABLE_THUMBNAILER],[test "$enable_thumbnailer" = "yes"])
+
+# ***************
+# Print Previewer
+# ***************
+
+AC_ARG_ENABLE([previewer],
+  [AS_HELP_STRING([--disable-previewer],[disable the GNOME Document Previewer])],
+  [],
+  [case "$with_platform" in
+      gnome) enable_previewer=yes ;;
+      *) enable_previewer=no ;;
+    esac])
 
-AC_PATH_PROG([GCONFTOOL], [gconftool-2], [no])
-if test "x$GCONFTOOL" = "xno"; then
-       AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf])
+if test x$enable_previewer = "xyes" ; then
+  PKG_CHECK_MODULES([PREVIEWER],[gtk+-2.0 >= $GTK_REQUIRED gtk+-unix-print-2.0 >= $GTK_REQUIRED gthread-2.0 gio-2.0 >= $GLIB_REQUIRED])
 fi
 
+AM_CONDITIONAL([ENABLE_PREVIEWER],[test "$enable_previewer" = "yes"])
+PREVIEWER_CFLAGS="$PREVIEWER_CFLAGS $GTKUNIXPRINT_CFLAGS $DEBUG_FLAGS"
+PREVIEWER_LIBS="$PREVIEWER_LIBS $GTKUNIXPRINT_LIBS -lz"
+AC_SUBST(PREVIEWER_CFLAGS)
+AC_SUBST(PREVIEWER_LIBS)
+
+# ***
+# GIR
+# ***
+
+AC_MSG_CHECKING([whether GObject introspection is requested])
+AC_ARG_ENABLE([introspection],
+        AS_HELP_STRING([--enable-introspection],[Enable GObject introspection]),
+        [],[enable_introspection=no])
+AC_MSG_RESULT([$enable_introspection])
+
+G_IR_SCANNER=
+G_IR_COMPILER=
+G_IR_GENERATE=
+GIRDIR=
+GIRTYPELIBDIR=
+
+if test "$enable_introspection" = "yes"; then
+  GOBJECT_INTROSPECTION_REQUIRED=0.6
+  PKG_CHECK_MODULES([GOBJECT_INTROSPECTION],[gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_REQUIRED])
+
+  G_IR_SCANNER="$($PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0)"
+  G_IR_COMPILER="$($PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0)"
+  G_IR_GENERATE="$($PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0)"
+  GIRDIR="$($PKG_CONFIG --variable=girdir gobject-introspection-1.0)"
+  GIRTYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
+fi
+
+AC_SUBST([G_IR_SCANNER])
+AC_SUBST([G_IR_COMPILER])
+AC_SUBST([G_IR_GENERATE])
+AC_SUBST([GIRDIR])
+AC_SUBST([GIRTYPELIBDIR])
+
+AM_CONDITIONAL([ENABLE_INTROSPECTION],[test "$enable_introspection" = "yes"])
+
 dnl ================== portability checks ===========================================
 
 dnl for backtrace()
@@ -211,8 +427,8 @@ AC_ARG_ENABLE(pdf,
               [AC_HELP_STRING([--enable-pdf], [Compile with pdf support])],enable_pdf="$enableval",enable_pdf=yes)
 
 if test "x$enable_pdf" = "xyes"; then
-    POPPLER_REQUIRED=0.8.0
-    PKG_CHECK_MODULES(POPPLER, poppler-glib >= $POPPLER_REQUIRED,enable_pdf=yes,enable_pdf=no)
+    POPPLER_REQUIRED=0.11.0
+    PKG_CHECK_MODULES(POPPLER, poppler-glib >= $POPPLER_REQUIRED libxml-2.0 >= $LIBXML_REQUIRED,enable_pdf=yes,enable_pdf=no)
 
     if test "x$enable_pdf" = "xyes"; then
            AC_DEFINE([ENABLE_PDF], [1], [Enable pdf support.])
@@ -222,7 +438,7 @@ if test "x$enable_pdf" = "xyes"; then
            evince_save_LIBS=$LIBS
            LIBS="$LIBS $POPPLER_LIBS"
            AC_CHECK_FUNCS(poppler_page_render)
-           AC_CHECK_FUNCS(poppler_layers_iter_new)
+           AC_CHECK_FUNCS(poppler_page_get_image)
            LIBS=$evince_save_LIBS
 
            PKG_CHECK_MODULES(CAIRO_PDF, cairo-pdf, enable_cairo_pdf=yes, enable_cairo_pdf=no)
@@ -366,7 +582,15 @@ dnl ================== comic book checks =======================================
 AC_ARG_ENABLE(comics,
        [AC_HELP_STRING([--enable-comics], [Compile with support for comic book archives])],enable_comics="$enableval",enable_comics=yes)
 if test "x$enable_comics" = "xyes"; then
-       AC_DEFINE([ENABLE_COMICS], [1], [Enable support for comics.])
+       if test "x$os_win32" = "xyes"; then
+               # The comics backend is disabled on windows because:
+               # 1) it uses unix functions from sys/wait.h.
+               # 2) it uses external decompression tools not generally available on windows.
+               enable_comics=no
+               AC_MSG_WARN(The comics backend is not supported on windows.)
+       else
+               AC_DEFINE([ENABLE_COMICS], [1], [Enable support for comics.])
+       fi
 fi 
 AM_CONDITIONAL(ENABLE_COMICS, test x$enable_comics = xyes)
 
@@ -413,6 +637,29 @@ AC_SUBST(EVINCE_MIME_TYPES)
 
 AC_CHECK_FUNC(localtime_r, AC_DEFINE(HAVE_LOCALTIME_R, 1, [Defines if localtime_r is available on your system]))
 
+# Backends directory
+
+AC_SUBST([backenddir],"\$(libdir)/evince/ev_binary_version/backends")
+AC_SUBST([backend_binary_version],"ev_binary_version")
+
+# Versioning
+
+AC_SUBST([EV_MAJOR_VERSION],[ev_major_version])
+AC_SUBST([EV_MINOR_VERSION],[ev_minor_version])
+AC_SUBST([EV_MICRO_VERSION],[ev_micro_version])
+
+AC_SUBST([EV_API_VERSION],[ev_api_version])
+AC_SUBST([EV_BINARY_VERSION],[ev_binary_version])
+
+AC_SUBST([EV_DOCUMENT_LT_VERSION_INFO],[ev_document_lt_version_info])
+AC_SUBST([EV_DOCUMENT_LT_CURRENT_MINUS_AGE],[ev_document_lt_current_minus_age])
+AC_SUBST([EV_VIEW_LT_VERSION_INFO],[ev_view_lt_version_info])
+AC_SUBST([EV_VIEW_LT_CURRENT_MINUS_AGE],[ev_view_lt_current_minus_age])
+
+# *****************************************************************************
+
+SHAVE_INIT([], [enable])
+
 AC_CONFIG_FILES([
 backend/Makefile
 backend/comics/Makefile
@@ -425,7 +672,6 @@ backend/pixbuf/Makefile
 backend/ps/Makefile
 backend/tiff/Makefile
 cut-n-paste/Makefile
-cut-n-paste/evmountoperation/Makefile
 cut-n-paste/gedit-message-area/Makefile
 cut-n-paste/gimpcellrenderertoggle/Makefile
 cut-n-paste/smclient/Makefile
@@ -453,27 +699,46 @@ data/icons/scalable/Makefile
 data/icons/scalable/apps/Makefile
 help/Makefile
 help/reference/Makefile
-help/reference/version.xml
+help/reference/libdocument/Makefile
+help/reference/libdocument/version.xml
+help/reference/libview/Makefile
+help/reference/libview/version.xml
+help/reference/shell/Makefile
+help/reference/shell/version.xml
 libdocument/Makefile
+libdocument/ev-version.h
+libmisc/Makefile
 libview/Makefile
 Makefile
 po/Makefile.in
+previewer/Makefile
 properties/Makefile
+shave
+shave-libtool
 shell/Makefile
 test/Makefile
 thumbnailer/Makefile
 ])
 
+AC_CONFIG_FILES(evince-document-[]ev_api_version[].pc:evince-document.pc.in)
+AC_CONFIG_FILES(evince-view-[]ev_api_version[].pc:evince-view.pc.in)
+
 AC_OUTPUT
 
 echo "
 Configure summary:
-       Keyring Support....:  $WITH_KEYRING
+        Platform...........:  $with_platform
+        GConf Support......:  $with_gconf
+       GTK+ Unix Print....:  $with_gtk_unix_print
+       Keyring Support....:  $with_keyring
        DBUS Support.......:  $enable_dbus
-       Nautilus Plugin....:  $HAVE_NAUTILUS
-       Thumbnailer........:  $ENABLE_THUMBNAILER
+       SM client support..:  $with_smclient
+       Nautilus Plugin....:  $enable_nautilus
+       Thumbnailer........:  $enable_thumbnailer
+       Previewer..........:  $enable_previewer
        Gtk-Doc Support....:  $enable_gtk_doc
        Debug mode.........:  $enable_debug
+       GObj. Introspection:  $enable_introspection
 
        PDF Backend........:  $enable_pdf
        PostScript Backend.:  $enable_ps