c29c43772614b75abe410a1eb7440490eeec5c1d
diff --git a/ChangeLog b/ChangeLog
index d642294..521b134 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-01-21  Christian Persch  <chpe@gnome.org>
+
+	* configure.ac:
+	* libdocument/Makefile.am:
+	A libdocument/ev-version.h.in: Add version defines and version check
+	macro. Bug #568224.
+
 2009-01-21  Hiroyuki Ikezoe  <poincare@ikezoe.net>
 
 	* shell/ev-sidebar-links.c
diff --git a/configure.ac b/configure.ac
index 2c213de..c2cf3fb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,11 +1,17 @@
 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])
+m4_define([ev_major_version],[2])
+m4_define([ev_minor_version],[25])
+m4_define([ev_micro_version],[5])
+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])
 
-EV_API_VERSION=2.25
-AC_SUBST(EV_API_VERSION)
+AC_PREREQ([2.57])
+AC_INIT([Evince],[ev_version],[http://bugzilla.gnome.org/enter_bug.cgi?product=evince],[evince])
+AM_INIT_AUTOMAKE([1.9 dist-bzip2 no-dist-gzip])
 
 AM_CONFIG_HEADER(config.h)
 
@@ -413,6 +419,16 @@ 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]))
 
+# 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_CONFIG_FILES([
 backend/Makefile
 backend/comics/Makefile
@@ -455,6 +471,7 @@ help/Makefile
 help/reference/Makefile
 help/reference/version.xml
 libdocument/Makefile
+libdocument/ev-version.h
 libview/Makefile
 Makefile
 po/Makefile.in
diff --git a/libdocument/Makefile.am b/libdocument/Makefile.am
index 6ac6feb..c08f5a8 100644
--- a/libdocument/Makefile.am
+++ b/libdocument/Makefile.am
@@ -44,9 +44,10 @@ INST_H_FILES = 					\
 	ev-page.h				\
 	ev-render-context.h			\
 	ev-selection.h				\
-	ev-transition-effect.h
+	ev-transition-effect.h			\
+	ev-version.h
 
-headerdir = $(prefix)/include/evince/@EV_API_VERSION@/ev-backend
+headerdir = $(includedir)/evince/$(EV_API_VERSION)/ev-backend
 header_DATA = $(INST_H_FILES)
 
 libevbackend_la_SOURCES=			\
diff --git a/libdocument/ev-version.h.in b/libdocument/ev-version.h.in
new file mode 100644
index 0000000..2601622
--- /dev/null
+++ b/libdocument/ev-version.h.in
@@ -0,0 +1,31 @@
+/*
+ * Copyright © 2009 Christian Persch
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02110-1301  USA
+ */
+
+#ifndef EV_VERSION_H
+#define EV_VERSION_H
+
+#define EV_MAJOR_VERSION (@EV_MAJOR_VERSION@)
+#define EV_MINOR_VERSION (@EV_MINOR_VERSION@)
+#define EV_MICRO_VERSION (@EV_MICRO_VERSION@)
+
+#define EV_CHECK_VERSION(major,minor,micro) \
+  (EV_MAJOR_VERSION > (major) || \
+   (EV_MAJOR_VERSION == (major) && EV_MINOR_VERSION > (minor)) || \
+   (EV_MAJOR_VERSION == (major) && EV_MINOR_VERSION == (minor) && EV_MICRO_VERSION >= (micro)))
+
+#endif /* #ifndef EV_VERSION_H */
