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.
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
# 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
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
or if a specific module type can only be loaded by one of them, how report its dlerror?
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
* Godmar Back writes:
libltdl uses such stdio functions as fopen, fgets, feof, fclose, and others.
- These functions are not async-signal-safe. While this does not make
- libltdl unusable, it restricts its usefulness and puts an
+ These functions are not async-signal-safe. While this does not make
+ libltdl unusable, it restricts its usefulness and puts an
unnecessary burden on the user.
As a remedy, I'd recommend to replace those functions with functions
out from which you can steal the latter.
I believe relying on async-signal-safe functions to the greatest extent
- possible would greatly improve libltdl's ability to be embedded in and
+ possible would greatly improve libltdl's ability to be embedded in and
used by other systems.
* Arrange that EXEEXT suffixes are stripped from wrapper script names
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
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//'
exit 1
;;
esac
-
+
func_infer_tag $base_compile
for arg in $later; do
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
--- /dev/null
+# 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)
+])