* m4/ltversion.in: New file to capture what version number macros

are being used.
* Makefile.am (m4/ltversion.m4): New rule to create it from
m4/ltversion.in.
(nodist_pkgmacro_DATA): Add m4/ltversion.m4.
(EXTRA_DIST): Add m4/ltversion.in.
* m4/libtool.m4 (AC_LIBTOOL_SETUP): AC_REQUIRE LTVERSION_VERSION
from ltversion.m4.
* bootstrap: Call the Makefile.am to create an initial
m4/ltversion.m4.
* ltmain.in: Diagnose version mismatches of various flavours.
* TODO: Remove mismatch item.
* NEWS: Updated.
This commit is contained in:
Gary V. Vaughan 2004-02-06 17:23:40 +00:00
parent 8bdd28dcf5
commit 4a9ead32fb
8 changed files with 128 additions and 9 deletions

View File

@ -1,5 +1,19 @@
2004-02-06 Gary V. Vaughan <gary@gnu.org>
* m4/ltversion.in: New file to capture what version number macros
are being used.
* Makefile.am (m4/ltversion.m4): New rule to create it from
m4/ltversion.in.
(nodist_pkgmacro_DATA): Add m4/ltversion.m4.
(EXTRA_DIST): Add m4/ltversion.in.
* m4/libtool.m4 (AC_LIBTOOL_SETUP): AC_REQUIRE LTVERSION_VERSION
from ltversion.m4.
* bootstrap: Call the Makefile.am to create an initial
m4/ltversion.m4.
* ltmain.in: Diagnose version mismatches of various flavours.
* TODO: Remove mismatch item.
* NEWS: Updated.
* Makefile.am ($(top_builddir)/config.status): Removed.
* configure.ac (CONFIG_STATUS_DEPENDENCIES): This substitution is
how automake-1.8 now informs all Makefiles when config.status

View File

@ -36,7 +36,25 @@ dist_pkgdata_DATA = config/config.guess config/config.sub config/ltmain.sh
# We maintain our own macros to provent problems with ancient definitions.
# lt~obsolete.m4 doesn't belong here, it's for bootstrapping us only
pkgmacrodir = $(pkgdatadir)/m4
pkgmacro_DATA = m4/libtool.m4 m4/ltdl.m4 m4/ltsugar.m4
dist_pkgmacro_DATA = m4/libtool.m4 m4/ltdl.m4 m4/ltsugar.m4
nodist_pkgmacro_DATA = m4/ltversion.m4
EXTRA_DIST += m4/ltversion.in
# We build ltversion.m4 here, instead of from config.status,
# because config.status is rerun each time one og configure's
# dependencies change and ltversion.m4 happens to be a configure
# dependency. configure and ltversion.m4 vould be rebuilt in
# a loop otherwise.
# Use `$(top_srcdir)/m4' for the benefit of non-GNU makes: this is
# how ltversion.m4 appears in our dependencies.
$(top_srcdir)/m4/ltversion.m4: $(top_srcdir)/m4/ltversion.in stamp-vcl
set `$(MKSTAMP) < $(top_srcdir)/ChangeLog`; \
sed -e "s,[@]MACRO_VERSION[@],$(VERSION),g" \
-e "s,[@]MACRO_REVISION[@],$$1,g" \
-e "s,[@]configure_input[@],Generated from ltversion.in; do not edit by hand.,g" \
$(top_srcdir)/m4/ltversion.in > $@t
chmod a-w $@t
mv -f $@t $@
# The standalone libtool script, and the libtool distributor.
bin_SCRIPTS = libtool libtoolize

6
NEWS
View File

@ -1,7 +1,13 @@
NEWS - list of user-visible changes between releases of GNU Libtool
New in 1.5b: 2004-??-??; CVS version 1.5a, Libtool team:
* The /^_?LT_[A-Z_]+$/ namespace is now reserved for Libtool's own macros.
If you have any shell variables in this namespace they will need to be
renamed. If you have any macros in this namespace please rename them to
prevent any possible future clash with libtool supplied macros.
* New LT_PREREQ macro for specifying minimum libtool requirement.
* The libtool script will complain if it was built from mismatched ltmain.sh
and libtool m4 macro versions.
* Like automake, libtoolize no longer installs config.guess and config.sub by
default. Use new --install option to get the old behaviour.
* libtool script is now created by config.status. Instead of interrogating

4
TODO
View File

@ -16,10 +16,6 @@ to ltconfig.
Also report dlerror() for dlclose and dlsym if available
- Make sure that the dependency_libs of a dlpreopened module won't be loaded.
* Check whether the version of libtool.m4 is compatible with
ltconfig/ltmain.sh. Meanwhile, the recommended approach for
developers using automake is to insert libtool.m4 in acinclude.m4.
* We could have an option to hardcode paths into libraries, as well as
binaries: `... -Wl,-soname -Wl,/tmp/libtest.so.0 ...'. This is not
possible on all platforms, and is in part obviated by the ability of

View File

@ -41,6 +41,8 @@ if test -z "$reconfdirs"; then
reconfdirs=". `ls -1d tests/*demo tests/*demo[0-9]`"
fi
make top_srcdir=. -f Makefile.am ./m4/ltversion.m4
for file in $fakes; do
cat > $file <<'EOF'
#! /bin/sh

View File

@ -65,6 +65,74 @@ mkdir="mkdir"
mv="mv -f"
rm="rm -f"
# Ensure that we are using m4 macros, and libtool script from the same
# release of libtool.
package_revision=`( set $TIMESTAMP; echo $1; )`
if test "$package_revision" != "$macro_revision"; then
if test "$VERSION" != "$macro_version"; then
if test -z "$macro_version"; then
cat >&2 <<_LT_EOF
$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
$progname: definition of this AC_PROG_LIBTOOL comes from an older release.
$progname: You should recreate aclocal.m4 with macro's from $PACKAGE $VERSION
$progname: and run autoconf again.
_LT_EOF
else
cat >&2 <<_LT_EOF
$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
$progname: definition of this AC_PROG_LIBTOOL comes from $PACKAGE $macro_version.
$progname: You should recreate aclocal.m4 with macro's from $PACKAGE $VERSION
$progname: and run autoconf again.
_LT_EOF
fi
else
cat >&2 <<_LT_EOF
$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
$progname: but the definition used by this AC_PROG_LIBTOOL comes from revision
$progname: $macro_revision.
$progname: You should recreate aclocal.m4 with macro's from revision $package_revision
$progname: of $PACKAGE $VERSION and run autoconf again.
_LT_EOF
fi
# $? = 63 is used to indicate version mismatch to missing.
exit 63
fi
# Ensure that we are using m4 macros, and libtool script from the same
# release of libtool.
package_revision=`( set $TIMESTAMP; echo $1; )`
if test "$package_revision" != "$macro_revision"; then
if test "$VERSION" != "$macro_version"; then
if test -z "$macro_version"; then
cat >&2 <<_LT_EOF
$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
$progname: definition of this AC_PROG_LIBTOOL comes from an older release.
$progname: You should recreate aclocal.m4 with macro's from $PACKAGE $VERSION
$progname: and run autoconf again.
_LT_EOF
else
cat >&2 <<_LT_EOF
$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
$progname: definition of this AC_PROG_LIBTOOL comes from $PACKAGE $macro_version.
$progname: You should recreate aclocal.m4 with macro's from $PACKAGE $VERSION
$progname: and run autoconf again.
_LT_EOF
fi
else
cat >&2 <<_LT_EOF
$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
$progname: but the definition used by this AC_PROG_LIBTOOL comes from revision
$progname: $macro_revision.
$progname: You should recreate aclocal.m4 with macro's from revision $package_revision
$progname: of $PACKAGE $VERSION and run autoconf again.
_LT_EOF
fi
# $? = 63 is used to indicate version mismatch to missing.
exit 63
fi
# Sed substitution that helps us do robust quoting. It backslashifies
# metacharacters that are still active within double-quoted strings.
Xsed="${SED}"' -e 1s/^X//'

1
m4/libtool.m4 vendored
View File

@ -97,6 +97,7 @@ dnl Autoconf doesn't catch unexpanded LT_ macros by default:
m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW)$])dnl
AC_REQUIRE([LTSUGAR_VERSION])dnl
AC_REQUIRE([LTVERSION_VERSION])dnl
AC_REQUIRE([AC_CANONICAL_HOST])dnl
AC_REQUIRE([AC_CANONICAL_BUILD])dnl
_LT_DECL([], [host_alias], [0], [The host system])dnl

14
m4/ltversion.in Normal file
View File

@ -0,0 +1,14 @@
# ltversion.m4 -- version numbers -*- Autoconf -*-
# @configure_input@
# This file is part of GNU Libtool
m4_define([LT_PACKAGE_VERSION], [@MACRO_VERSION@])
m4_define([LT_PACKAGE_REVISION], [@MACRO_REVISION@])
AC_DEFUN([LTVERSION_VERSION],
[macro_version='@MACRO_VERSION@'
macro_revision='@MACRO_REVISION@'
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
_LT_DECL(, macro_revision, 0)
])