X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Fversion.h;h=b784c9db46f737fa0ad7ad7aca86dc87a689e14d;hp=35801017b943d60d1f5b253b6797efc0817bde76;hb=55a08d9cb9005bb10def92d5e8f5a816003da16b;hpb=bd2d7351b89743eb68ce7d3bfa7ab62c331f9522 diff --git a/ginac/version.h b/ginac/version.h index 35801017..b784c9db 100644 --- a/ginac/version.h +++ b/ginac/version.h @@ -3,7 +3,7 @@ * GiNaC library version information. */ /* - * GiNaC Copyright (C) 1999-2000 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2014 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,15 +17,76 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef __GINAC_VERSION_H__ -#define __GINAC_VERSION_H__ +#ifndef GINAC_VERSION_H +#define GINAC_VERSION_H -/* Major, minor, and micro version number of the GiNaC library. */ -#define GINACLIB_MAJOR_VERSION 0 +/* Major version of GiNaC */ +#define GINACLIB_MAJOR_VERSION 1 + +/* Minor version of GiNaC */ #define GINACLIB_MINOR_VERSION 6 + +/* Micro version of GiNaC */ #define GINACLIB_MICRO_VERSION 3 -#endif // ndef __GINAC_VERSION_H__ +// GiNaC library version information. It has very little to do with GiNaC +// version number. In particular, library version is OS dependent. +// +// When making releases, do +// 1. Increment GINAC_LT_REVISION +// 2. If any interfaces have been added, removed, or changed since the last +// release, increment GINAC_LT_CURRENT and set GINAC_LT_REVISION to 0. +// 3. If any interfaces have been added since the last release, increment +// GINAC_LT_AGE. +// 4. If any interfaces have been removed since the last release, set +// GINAC_LT_AGE to 0. +// +// Please note: the libtool naming scheme cannot guarantee that on all +// systems, the numbering is consecutive. It only guarantees that it is +// increasing. This doesn't matter, though: there is not incurred cost +// for numbers that are omitted, except for shrinking the available space +// of leftover numbers. Not something we need to worry about yet. ;-) +#define GINAC_LT_CURRENT 4 +#define GINAC_LT_REVISION 0 +#define GINAC_LT_AGE 0 + +/* + * GiNaC archive file version information. + * + * The current archive version is GINACLIB_ARCHIVE_VERSION. This is + * the version of archives created by the current version of GiNaC. + * Archives version (GINACLIB_ARCHIVE_VERSION - GINACLIB_ARCHIVE_AGE) + * thru * GINACLIB_ARCHIVE_VERSION can be read by current version + * of GiNaC. + * + * Backward compatibility notes: + * If new properties have been added: + * GINACLIB_ARCHIVE_VERSION += 1 + * GINACLIB_ARCHIVE_AGE += 1 + * If backwards compatibility has been broken, i.e. some properties + * has been removed, or their type and/or meaning changed: + * GINACLIB_ARCHIVE_VERSION += 1 + * GINACLIB_ARCHIVE_AGE = 0 + */ +#define GINACLIB_ARCHIVE_VERSION 3 +#define GINACLIB_ARCHIVE_AGE 3 + +#define GINACLIB_STR_HELPER(x) #x +#define GINACLIB_STR(x) GINACLIB_STR_HELPER(x) +#define GINACLIB_VERSION \ + GINACLIB_STR(GINACLIB_MAJOR_VERSION) "." \ + GINACLIB_STR(GINACLIB_MINOR_VERSION) "." \ + GINACLIB_STR(GINACLIB_MICRO_VERSION) + +namespace GiNaC { + +extern const int version_major; +extern const int version_minor; +extern const int version_micro; + +} // namespace GiNaC + +#endif // ndef GINAC_VERSION_H