Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: about libnamazu version infomation



On Thu, 10 Apr 2003 18:01:28 +0900
knok@xxxxxxxxxxxxx wrote:

>   ううむ、OS によって値が変わるんですね... まあだからこそ libtool に 
> LTVERSION という一段置くためのクッションがあるのでしょうけど。

LTVERSIONはlibtoolの機能ではありません。普通はMakefile.amに
libfoo_la_LDFLAGS = -version-info x:y:z
と書くのですが、このx:y:zの調節をしばしば忘れる危険性があったので
(というか、実際1.9.xの頃にそういう事故があった(^^;;)configure.in
にLTVERSIONを設定して目につくようにしたのです。

ちなみにGLibあたりはまた違うやり方をしています。参考までにGLib 1.2
のversioningを示しておきます(GLib2はまた微妙に違う)。というかNamazu
も最初からこうしておけばよかったのかも...

configure.inより:
# Making releases:
#   GLIB_MICRO_VERSION += 1;
#   GLIB_INTERFACE_AGE += 1;
#   GLIB_BINARY_AGE += 1;
# if any functions have been added, set GLIB_INTERFACE_AGE to 0.
# if backwards compatibility has been broken,
# set GLIB_BINARY_AGE _and_ GLIB_INTERFACE_AGE to 0.
#
GLIB_MAJOR_VERSION=1
GLIB_MINOR_VERSION=2
GLIB_MICRO_VERSION=10
GLIB_INTERFACE_AGE=10
GLIB_BINARY_AGE=10
GLIB_VERSION=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION.$GLIB_MICRO_VERSION
(snip)
# libtool versioning
LT_RELEASE=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION
LT_CURRENT=`expr $GLIB_MICRO_VERSION - $GLIB_INTERFACE_AGE`
LT_REVISION=$GLIB_INTERFACE_AGE
LT_AGE=`expr $GLIB_BINARY_AGE - $GLIB_INTERFACE_AGE`

Makefile.amより:
libglib_la_LDFLAGS = \
        -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
        -release $(LT_RELEASE) \
        -export-dynamic


  A A
= . . =
   V
end
Ryuji Abe