]> www.fi.muni.cz Git - evince.git/commitdiff
Bug 568224 – library should have version macros
authorChristian Persch <chpe@src.gnome.org>
Wed, 21 Jan 2009 16:58:15 +0000 (16:58 +0000)
committerChristian Persch <chpe@src.gnome.org>
Wed, 21 Jan 2009 16:58:15 +0000 (16:58 +0000)
svn path=/trunk/; revision=3371

ChangeLog
configure.ac
libdocument/Makefile.am
libdocument/ev-version.h.in [new file with mode: 0644]

index d64229432d08c525cf49db2cd7bebfdcee940249..521b134818495f284052eb48d6cf8d82e2e1fe68 100644 (file)
--- 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
index 2c213de47451ff2de90e91ba27e9ef74a27df197..c2cf3fbfea1ad12b46a3247dd772b0ed894b52f2 100644 (file)
@@ -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
index 6ac6feb6d6aeefe2ca92917a07d5c34dd84d1e04..c08f5a8c609bd4256e918c50ffb1f483de184a5b 100644 (file)
@@ -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 (file)
index 0000000..2601622
--- /dev/null
@@ -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 */