|
|
|
@ -1,4 +1,4 @@
|
|
|
|
|
AC_INIT([libburn], [0.4.1], [http://libburnia-project.org])
|
|
|
|
|
AC_INIT([libburn], [0.4.3], [http://libburnia-project.org])
|
|
|
|
|
AC_PREREQ([2.50])
|
|
|
|
|
dnl AC_CONFIG_HEADER([config.h])
|
|
|
|
|
|
|
|
|
@ -7,85 +7,79 @@ AC_CANONICAL_TARGET
|
|
|
|
|
|
|
|
|
|
AM_INIT_AUTOMAKE([subdir-objects])
|
|
|
|
|
|
|
|
|
|
dnl Note by ts A71207:
|
|
|
|
|
dnl Notes by ts A71207 - A80126 :
|
|
|
|
|
dnl
|
|
|
|
|
dnl BURN_MICRO_VERSION was _not_ the third component Z of libburn-X.Y.Z
|
|
|
|
|
dnl but an eternal counter which leads to CURRENT. This misunderstanding
|
|
|
|
|
dnl caused a messed up sequence of CURRENTs.
|
|
|
|
|
dnl Regrettably the meaning of the various version types was misunderstood
|
|
|
|
|
dnl before version 0.4.1.
|
|
|
|
|
dnl
|
|
|
|
|
dnl CURRENT and AGE describe the binary compatibility interval of a
|
|
|
|
|
dnl dynamic library.
|
|
|
|
|
dnl See also http://www.gnu.org/software/libtool/manual.html#Interfaces
|
|
|
|
|
dnl In the past MAJOR.MINOR.MICRO versions led to the following SONAME numbers:
|
|
|
|
|
dnl 0.2.2 = 2 , 0.2.3 = 3 , 0.2.6 = 6
|
|
|
|
|
dnl 0.3.0 = 0 , 0.3.2 = 2 , 0.3.4 = 4 . 0.3.6 = 6 , 0.3.8 = 4
|
|
|
|
|
dnl 0.4.0 = 0 (also released as SONAME 4)
|
|
|
|
|
dnl
|
|
|
|
|
dnl The name of the library will be libburn.so.$CURRENT-$AGE.$AGE.$REV
|
|
|
|
|
dnl In the terminology of this file:
|
|
|
|
|
dnl CURRENT = LT_CURRENT
|
|
|
|
|
dnl REV = LT_REVISION
|
|
|
|
|
dnle AGE = LT_AGE
|
|
|
|
|
dnl Meanwhile the following schemes are maintained in parallel:
|
|
|
|
|
dnl
|
|
|
|
|
dnl In the past the following CURRENTs of libburn have been released.
|
|
|
|
|
dnl All with AGE=0.
|
|
|
|
|
dnl 0.2.2 = 2 , 0.2.3 = 3 , 0.2.6 = 6
|
|
|
|
|
dnl 0.3.0 = 0 , 0.3.2 = 2 , 0.3.4 = 4 . 0.3.6 = 6 , 0.3.8 = 4
|
|
|
|
|
dnl 0.4.0 = 0
|
|
|
|
|
dnl
|
|
|
|
|
dnl Beginning with libburn-0.4.1 a rectified counting was introduced as
|
|
|
|
|
dnl CURRENT=10, REV=1, AGE=6
|
|
|
|
|
dnl This rectification declared the current version
|
|
|
|
|
dnl to be binary compatible down to libburn-0.3.4.
|
|
|
|
|
dnl Real backward compatibility is given down to libburn-0.3.2.
|
|
|
|
|
dnl Beware of libburn-0.2.6 which had CURRENT=6.
|
|
|
|
|
dnl BURN_MAJOR_VERSION , BURN_MINOR_VERSION , BURN_MICRO_VERSION
|
|
|
|
|
dnl are three small non-negative integers which describe the evolution
|
|
|
|
|
dnl steps of the library.
|
|
|
|
|
dnl Older applications are able to use younger libraries over
|
|
|
|
|
dnl quite a long range of such steps. Some day, nevertheless,
|
|
|
|
|
dnl compatibility might get terminated, after due notice.
|
|
|
|
|
dnl
|
|
|
|
|
dnl CURRENT=10, REV=0, AGE=6 would be appropriate for libburn-0.4.0
|
|
|
|
|
dnl but was not issued, regreattably.
|
|
|
|
|
dnl SONAME (libburn.so.4)
|
|
|
|
|
dnl is a small positive integer which marks a family of compatible
|
|
|
|
|
dnl evolution steps. Libraries with a particular SONAME allow a binary
|
|
|
|
|
dnl with the same SONAME to start up. Any further compatibility check is to
|
|
|
|
|
dnl be done by own runtime means. Especially *_version() calls in the API
|
|
|
|
|
dnl which return BURN_MAJOR_VERSION, BURN_MINOR_VERSION, BURN_MICRO_VERSION.
|
|
|
|
|
dnl See below.
|
|
|
|
|
dnl
|
|
|
|
|
dnl If libburn-0.4.0 gets patched, its CURRENT will become 10, AGE 6, and
|
|
|
|
|
dnl REV will be set to one higher than the highest REV of CURRENT 10.
|
|
|
|
|
dnl If libburn-0.4.1 is still on CURRENT 10 then its REV gets set one higher
|
|
|
|
|
dnl than that.
|
|
|
|
|
dnl As soon as 0.4.1 becomes upwardly incompatible, it shall become 11,0,7.
|
|
|
|
|
dnl From then on it counts REV independently of libburn-0.4.0.
|
|
|
|
|
dnl Whether 0.4.1 alters independent REV at all, is not decided yet.
|
|
|
|
|
dnl It may well stay 0 until a release version joins CURRENT 11.
|
|
|
|
|
dnl CURRENT, AGE, REVISION
|
|
|
|
|
dnl are three integers used by libtool. CURRENT is positive, the others
|
|
|
|
|
dnl non-negative. The use at runtime is not known yet. But libtool computes
|
|
|
|
|
dnl at build time SONAME = CURRENT - AGE.
|
|
|
|
|
dnl So this is a superspace of the SONAME version space. To avoid
|
|
|
|
|
dnl ill SONAME, the value of CURRENT must be larger than AGE.
|
|
|
|
|
dnl See also http://www.gnu.org/software/libtool/manual.html#Interfaces
|
|
|
|
|
dnl
|
|
|
|
|
dnl Under the preconditions
|
|
|
|
|
dnl CURRENT= $BURN_MICRO_VERSION - $BURN_INTERFACE_AGE
|
|
|
|
|
dnl REV= $BURN_INTERFACE_AGE
|
|
|
|
|
dnl AGE= $BURN_BINARY_AGE
|
|
|
|
|
dnl the following old instructions were reasonable. Their drawback
|
|
|
|
|
dnl is that they cause large jumps in CURRENT, when BURN_INTERFACE_AGE gets
|
|
|
|
|
dnl reset to 0 from a high value. So this is outdated now:
|
|
|
|
|
dnl ---------------------------------------------------------------------------
|
|
|
|
|
dnl .Making releases:
|
|
|
|
|
dnl . BURN_MICRO_VERSION += 1;
|
|
|
|
|
dnl . BURN_INTERFACE_AGE += 1;
|
|
|
|
|
dnl . BURN_BINARY_AGE += 1;
|
|
|
|
|
dnl .if any functions have been added, set BURN_INTERFACE_AGE to 0.
|
|
|
|
|
dnl .if backwards compatibility has been broken,
|
|
|
|
|
dnl .set BURN_BINARY_AGE and BURN_INTERFACE_AGE to 0.
|
|
|
|
|
dnl .
|
|
|
|
|
dnl .if MAJOR or MINOR version changes, be sure to change AC_INIT above to match
|
|
|
|
|
dnl ---------------------------------------------------------------------------
|
|
|
|
|
dnl The name of the dynamic library will be libburn.so.$SONAME.$AGE.$REV .
|
|
|
|
|
dnl In the terminology of this file:
|
|
|
|
|
dnl CURRENT = LT_CURRENT
|
|
|
|
|
dnl AGE = LT_AGE
|
|
|
|
|
dnl REVISION= LT_REVISION
|
|
|
|
|
dnl
|
|
|
|
|
dnl Instead, LT_CURRENT, LT_REVISION and LT_AGE get set directly now.
|
|
|
|
|
dnl Beginning with libburn-0.4.1 a rectified counting was introduced as
|
|
|
|
|
dnl CURRENT=10, REVISION=1, AGE=6
|
|
|
|
|
dnl This rectification declared that version to be binary compatible up
|
|
|
|
|
dnl from libburn-0.3.4.
|
|
|
|
|
dnl Real compatibility was given since libburn-0.3.2.
|
|
|
|
|
dnl Beware of libburn-0.2.6 which had SONAME=6 and is not binary compatible.
|
|
|
|
|
dnl Applications for libburn-0.2 to libburn-0.3.1 need recompilation but no
|
|
|
|
|
dnl source code changes.
|
|
|
|
|
dnl
|
|
|
|
|
dnl Neatly versioned stable releases meanwhile:
|
|
|
|
|
dnl 0.4.2 = libburn.so.4.7.0
|
|
|
|
|
dnl
|
|
|
|
|
dnl So LT_CURRENT, LT_REVISION and LT_AGE get set directly here.
|
|
|
|
|
dnl SONAME of the emerging library is LT_CURRENT - LT_AGE.
|
|
|
|
|
dnl The linker will do no finer checks. Especially no age range check for
|
|
|
|
|
dnl the cdrskin binary. If SONAME matches, then the couple starts.
|
|
|
|
|
dnl the application binary. If SONAME matches, then the couple starts.
|
|
|
|
|
dnl
|
|
|
|
|
dnl Therefore a run time check is provided by libburn function burn_version().
|
|
|
|
|
dnl It returns the major, minor and micro revision of the library. This means
|
|
|
|
|
dnl BURN_*_VERSION kept its second job which does not comply to the usual ways
|
|
|
|
|
dnl of configure.ac . I.e. now *officially* this is the source code release
|
|
|
|
|
dnl version as announced to the public. It has no conection to SONAME or
|
|
|
|
|
dnl libtool version numbering.
|
|
|
|
|
dnl It rather feeds the API function burn_version().
|
|
|
|
|
dnl Therefore at run time info is provided by libburn function burn_version().
|
|
|
|
|
dnl It returns the MAJOR, MINOR and MICRO revision of the library.
|
|
|
|
|
dnl Before using any API feature, a program should check for age.
|
|
|
|
|
dnl
|
|
|
|
|
dnl Normally one can allow a program to run with a library which passed the
|
|
|
|
|
dnl linker SONAME test and which is not older than the library it was
|
|
|
|
|
dnl developed for. Library2 is younger than library1 if:
|
|
|
|
|
dnl MAJOR2>MAJOR1 || (MAJOR2==MAJOR1 &&
|
|
|
|
|
dnl (MINOR2>MINOR1 || (MINOR2==MINOR1 && MICRO2 > MICRO1)))
|
|
|
|
|
dnl
|
|
|
|
|
dnl If BURN_*_VERSION changes, be sure to change AC_INIT above to match.
|
|
|
|
|
dnl
|
|
|
|
|
BURN_MAJOR_VERSION=0
|
|
|
|
|
BURN_MINOR_VERSION=4
|
|
|
|
|
BURN_MICRO_VERSION=1
|
|
|
|
|
BURN_MICRO_VERSION=3
|
|
|
|
|
BURN_VERSION=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
|
|
|
|
|
|
|
|
|
|
AC_SUBST(BURN_MAJOR_VERSION)
|
|
|
|
@ -95,10 +89,15 @@ AC_SUBST(BURN_VERSION)
|
|
|
|
|
|
|
|
|
|
dnl Libtool versioning
|
|
|
|
|
LT_RELEASE=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
|
|
|
|
|
# SONAME = 10 - 6 = 4 . Library name = libburn.4.6.1
|
|
|
|
|
LT_CURRENT=10
|
|
|
|
|
LT_REVISION=1
|
|
|
|
|
LT_AGE=6
|
|
|
|
|
dnl
|
|
|
|
|
dnl ts A80127
|
|
|
|
|
dnl This ist a development version.
|
|
|
|
|
dnl But LT_CURRENT++, LT_AGE++ has not happened yet.
|
|
|
|
|
dnl
|
|
|
|
|
dnl SONAME = 11 - 7 = 4 . Library name = libburn.so.4.7.0
|
|
|
|
|
LT_CURRENT=11
|
|
|
|
|
LT_REVISION=0
|
|
|
|
|
LT_AGE=7
|
|
|
|
|
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
|
|
|
|
|
|
|
|
|
|
AC_SUBST(LT_RELEASE)
|
|
|
|
@ -107,7 +106,7 @@ AC_SUBST(LT_REVISION)
|
|
|
|
|
AC_SUBST(LT_AGE)
|
|
|
|
|
AC_SUBST(LT_CURRENT_MINUS_AGE)
|
|
|
|
|
|
|
|
|
|
# ts A71207: This is done only not to break any old components
|
|
|
|
|
dnl ts A71207: This is done only not to break any old components
|
|
|
|
|
BURN_INTERFACE_AGE=$LT_REVISION
|
|
|
|
|
BURN_BINARY_AGE=`expr $LT_AGE + $BURN_INTERFACE_AGE`
|
|
|
|
|
AC_SUBST(BURN_INTERFACE_AGE)
|
|
|
|
|