As ACEDB has been restructured into a set of stand alone libraries it has become necessary to introduce version numbers for the individual libraries as well as produce an overall version number for the benefit of the user.
e.g. bin.hp.4_5c.tar.Z bin.irix5.4_5e.tar.Z bin.solaris.4_5e.tar.Z bin.sunos.4_5d.tar.Z bin.alpha.4_5e.tar.Z bin.linux.4_5e.tar.Z etc. etc.
This has been achieved by using the ACEDB kernel version/update as the version number that the user sees and the version number for public updates and the ACEDB kernel. Thus the public version number is the version number of the ACEDB kernel. Individual libraries on the other hand have an internal version which is normally only seen by developers.
Every executable also has embedded in it strings which show the ACEDB version/build date and also the version/build date of any ACEDB package libraries used in the application. This information can be seen on a unix system using the what command, e.g.
griffin[edgrif]45: what xace xace: ------------------------------------------------------------------------ ACEDB Version 4.6e, compiled on: Dec 10 1998 10:32:47 Copyright (c): J Thierry-Mieg and R Durbin, 1998 This file contains the above Sanger Informatics Group library, written by Richard Durbin (Sanger Centre, UK) rd@sanger.ac.uk Jean Thierry-Mieg (CRBM du CNRS, France) mieg@kaa.crbm.cnrs-mop.fr Ed Griffiths (Sanger Centre, UK) edgrif@sanger.ac.uk Fred Wobus (Sanger Centre, UK) fw@sanger.ac.uk You may redistribute this software subject to the conditions in the accompanying copyright file. Anyone interested in obtaining an up to date version should contact one of the authors at the above email addresses. ------------------------------------------------------------------------ -------------------------------------------------------------------------- Title/Version: Free library - 1.1.1 Compiled: Dec 9 1998 10:47:26 Description: Sanger Centre Informatics utilities library. Copyright (c): J Thierry-Mieg and R Durbin, 1998 This file contains the above Sanger Informatics Group library, written by Richard Durbin (Sanger Centre, UK) rd@sanger.ac.uk Jean Thierry-Mieg (CRBM du CNRS, France) mieg@kaa.crbm.cnrs-mop.fr Ed Griffiths (Sanger Centre, UK) edgrif@sanger.ac.uk Fred Wobus (Sanger Centre, UK) fw@sanger.ac.uk You may redistribute this software subject to the conditions in the accompanying copyright file. Anyone interested in obtaining an up to date version should contact one of the authors at the above email addresses. -------------------------------------------------------------------------- -------------------------------------------------------------------------- Title/Version: Graph library - 1.1.1 Compiled: Dec 9 1998 10:47:36 Description: Sanger Centre Informatics graph library for window control Copyright (c): J Thierry-Mieg and R Durbin, 1998 This file contains the above Sanger Informatics Group library, written by Richard Durbin (Sanger Centre, UK) rd@sanger.ac.uk Jean Thierry-Mieg (CRBM du CNRS, France) mieg@kaa.crbm.cnrs-mop.fr Ed Griffiths (Sanger Centre, UK) edgrif@sanger.ac.uk Fred Wobus (Sanger Centre, UK) fw@sanger.ac.uk You may redistribute this software subject to the conditions in the accompanying copyright file. Anyone interested in obtaining an up to date version should contact one of the authors at the above email addresses. --------------------------------------------------------------------------Hence the user will see just one unified ACEDB version whereas the developer can get more detailed information about how the application was built.
The interface, defined in aceversion.h allows each element of the version to be retrieved individually or provides compound strings:
"ACEDB Version _"
e.g. "ACEDB Version 4_6d"
which is the full version/release/update of
the ACEDB kernel and also the ACEDB package in general.
"compiled on: __DATE__ __TIME__"
e.g. "compiled on: Dec 3 1998 13:59:07"
which is the date the ACEDB kernel
was last built on.
#define ACEDB_VERSION 4
#define ACEDB_RELEASE 6
#define ACEDB_UPDATE "e"
changing the version simply requires editting the file and updating these
#define
values, the makefile will then rebuild the ACEDB library
with the new version information.
The following rules should be followed for ACEDB applications and libraries:
UT_MAKE_GETCOMPILEDATEROUTINE()
int main(int argc, char *argv[])
{
.....
}
/* free package version and copyright string. */
/* */
#define FREE_TITLE "Free library"
#define FREE_DESC "Sanger Centre Informatics utilities library."
#define FREE_VERSION 1
#define FREE_RELEASE 1
#define FREE_UPDATE 1
#define FREE_VERSION_NUMBER UT_MAKE_VERSION_NUMBER(FREE_VERSION, FREE_RELEASE, FREE_UPDATE)
UT_COPYRIGHT_STRING(FREE_TITLE, FREE_VERSION, FREE_RELEASE, FREE_UPDATE, FREE_DESC)
Note that UT_MAKE_VERSION_NUMBER
will make a single integer value out of
version, release and update that can be used to test library with a single comparison.