* libltdl/config/mkstamp: File removed.
* bootstrap.conf (gnulib_modules): Add git-version-gen.
* configure.ac (AC_INIT, package_revision): Use git-version-gen to
calculate version number.
(TIMESTAMP): Removed.
* libtoolize.m4sh, libltdl/config/ltmain.m4sh, libltdl/m4/libtool.m4
(TIMESTAMP): Ditto.
* Makefile.am (TIMESTAMP): Ditto.
(MKSTAMP): Renamed from this...
(git_version_gen): ...to this. Set revision here. An alpha is now a
release with an odd micro relase number.
(rebuild): Don't reset revision here.
(build_scripts): Remove mkstamp, add git-version-gen.
(EXTRA_DIST, BUILT_SOURCES): Add .version.
(libltdl/config/ltmain.sh, libltdl/m4/ltversion.m4, tests/package.m4):
Don't depend on configure.ac or ChangeLog to determine when the
version number has reved, use .version directly.
(.version): Flush most recent configure calculated VERSION to disk.
(dist-hook): Flush current VERSION to disk at dist time.
(dotserial): Distributed file to cache the serial number for
when git is not available to recalculate it when building from a
release tarball.
(dist-hook): Make sure .serial is created.
(libltdl/config/ltversion.m4): Use .serial when it is present
(in a dist tarball) or calculate with git otherwise (in a git
working directory).
(EXTRA_DIST): Add .serial file.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
.libs
/.pc
/.sc-start*
+/.version
/COPYING
/GNUmakefile
/INSTALL
+2011-10-20 Gary V. Vaughan <gary@gnu.org>
+
+ maint: use gnulib's git-version-gen instead of mkstamp.
+ * libltdl/config/mkstamp: File removed.
+ * bootstrap.conf (gnulib_modules): Add git-version-gen.
+ * configure.ac (AC_INIT, package_revision): Use git-version-gen to
+ calculate version number.
+ (TIMESTAMP): Removed.
+ * libtoolize.m4sh, libltdl/config/ltmain.m4sh, libltdl/m4/libtool.m4
+ (TIMESTAMP): Ditto.
+ * Makefile.am (TIMESTAMP): Ditto.
+ (MKSTAMP): Renamed from this...
+ (git_version_gen): ...to this. Set revision here. An alpha is now a
+ release with an odd micro relase number.
+ (rebuild): Don't reset revision here.
+ (build_scripts): Remove mkstamp, add git-version-gen.
+ (EXTRA_DIST, BUILT_SOURCES): Add .version.
+ (libltdl/config/ltmain.sh, libltdl/m4/ltversion.m4, tests/package.m4):
+ Don't depend on configure.ac or ChangeLog to determine when the
+ version number has reved, use .version directly.
+ (.version): Flush most recent configure calculated VERSION to disk.
+ (dist-hook): Flush current VERSION to disk at dist time.
+
2011-10-18 Gary V. Vaughan <gary@gnu.org>
maint: use gnulib's maint.mk and support scripts release procedure.
# Using `cd' in backquotes may print the directory name, use this instead:
lt__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-MKSTAMP = '$(SHELL)' '$(aux_dir)/mkstamp'
-
-timestamp = set dummy `$(MKSTAMP) '$(srcdir)'`; shift; \
- case $(VERSION) in \
- *[acegikmoqsuwy]) TIMESTAMP=" $$1 $$2" ;; \
- *) TIMESTAMP="" ;; \
- esac
-
-rebuild = rebuild=:; $(timestamp); revision=$$1
+git_version_gen = '$(SHELL)' '$(aux_dir)/git-version-gen' '.tarball-version'
+rebuild = rebuild=:; revision=`$(lt__cd) $(srcdir) && $(git_version_gen) | sed 's,-.*$$,,g'`
# ---------- #
sh_files = $(general_m4sh) $(getopt_m4sh)
build_scripts = $(aux_dir)/announce-gen $(aux_dir)/cvsu \
$(aux_dir)/do-release-commit-and-tag \
- $(aux_dir)/gendocs.sh \
+ $(aux_dir)/gendocs.sh $(aux_dir)/git-version-gen \
$(aux_dir)/gnu-web-doc-update $(aux_dir)/gnupload \
- $(aux_dir)/mkstamp \
$(aux_dir)/useless-if-before-free $(aux_dir)/vc-list-files
EXTRA_DIST += bootstrap bootstrap.conf $(build_scripts) cfg.mk maint.mk \
-e 's,@PACKAGE_STRING\@,$(PACKAGE_NAME) $(VERSION),g' \
-e 's,@PACKAGE_TARNAME\@,$(PACKAGE),g' \
-e 's,@PACKAGE_VERSION\@,$(VERSION),g' \
- -e "s,@TIMESTAMP\@,$$TIMESTAMP,g" \
-e 's,@VERSION\@,$(VERSION),g'
## ltmain.sh needs some additional editing to remove unsubstituted
## We used to do this with a 'stamp-vcl' file, but non-gmake builds
## would rerun configure on every invocation, so now we manually
## check the version numbers from the build rule when necessary.
-$(ltversion_m4): $(ltversion_in) $(configure_ac) ChangeLog
+$(ltversion_m4): $(ltversion_in) $(dotversion)
@$(rebuild); \
if test -f '$@'; then \
eval `'$(SED)' -n '/^macro_revision=/p' '$@'`; \
test x"$$macro_revision" = x"$$revision" && rebuild=false; \
fi; \
for prereq in $?; do \
- case $$prereq in *ChangeLog | *configure.ac);; *) rebuild=:;; esac; \
+ case $$prereq in *.version);; *) rebuild=:;; esac; \
done; \
if $$rebuild; then \
rm -f '$@'; \
- serial=`echo "$$revision" |$(SED) 's,^1[.],,g'`; \
+ if test -f '$(srcdir)/.serial'; then \
+ serial=`cat '$(srcdir)/.serial'`; \
+ else \
+ serial=`$(git_commit_count)`; \
+ fi; \
echo "$(bootstrap_edit) '$(ltversion_in)' > '$@'"; \
$(bootstrap_edit) '$(ltversion_in)' > '$@'; \
chmod a-w '$@'; \
## should make this rule depend on Makefile but that will break
## distcheck (at least) by rebuilding ltmain.sh in the source
## tree whenever config.status regenerates the Makefile.
-$(ltmain_sh): $(ltmain_m4sh) $(sh_files) $(configure_ac) ChangeLog
+$(ltmain_sh): $(ltmain_m4sh) $(sh_files) $(dotversion)
@$(rebuild); \
if test -f '$@'; then \
eval `'$(SED)' -n '/^package_revision=/p' '$@'`; \
test x"$$package_revision" = x"$$revision" && rebuild=false; \
fi; \
for prereq in $?; do \
- case $$prereq in *ChangeLog);; *) rebuild=:;; esac; \
+ case $$prereq in *.version);; *) rebuild=:;; esac; \
done; \
if $$rebuild; then \
rm -f '$@'; \
# We used to do this with a 'stamp-vcl' file, but non-gmake builds
# would rerun configure on every invocation, so now we manually
# check the version numbers from the build rule when necessary.
-libtool: $(ltmain_sh) $(config_status) ChangeLog
+libtool: $(ltmain_sh) $(config_status) $(dotversion)
@$(rebuild); \
if test -f '$@'; then \
eval `'$(SED)' -n '/^package_revision=/p' '$@'`; \
test "$$package_revision" = "$$revision" && rebuild=false; \
fi; \
for prereq in $?; do \
- case $$prereq in *ChangeLog);; *) rebuild=:;; esac; \
+ case $$prereq in *.version);; *) rebuild=:;; esac; \
done; \
if $$rebuild; then \
echo '$(SHELL) ./config.status "$@"'; \
## Distribution. ##
## ------------- ##
-edit_readme_alpha = $(aux_dir)/edit-readme-alpha
+edit_readme_alpha = $(aux_dir)/edit-readme-alpha
+
+dotserial = $(distdir)/.serial
+dotversion = $(srcdir)/.version
+tarball_version = $(distdir)/.tarball-version
+
+## Arrange so that .tarball-version appears only in the distribution
+## tarball, and never in a checked-out repository.
+EXTRA_DIST += $(dotversion)
+BUILT_SOURCES += $(dotversion)
+$(dotversion):
+ echo '$(VERSION)' > '$@T' && mv '$@T' '$@'
+
+## Edit the README file for alpha releases.
EXTRA_DIST += $(edit_readme_alpha)
+re_odd_version = '\([0-9][0-9]*.[0-9][0-9]*.[0-9]*[13579]\)'
+$(readme): FORCE
+ test -n `expr $(VERSION) : $(re_odd_version)` && \
+ $(SHELL) $(edit_readme_alpha) '$@'
+
+git_commit_count = git log --pretty=oneline |wc -l |$(SED) 's,[ ],,g'
+
+dist-hook: $(dotversion) $(readme)
+## Arrange so that .tarball-version appears only in the distribution
+## tarball, and never in a checked-out repository.
+ echo '$(VERSION)' > $(tarball_version)
+## ...and similarly for .serial.
+ $(git_commit_count) > $(dotserial)
+## Ensure aclocal has not wrongly picked up old macro definitions.
+ for macro in LT_INIT AC_PROG_LIBTOOL AM_PROG_LIBTOOL; do \
+ if grep "$$macro" '$(srcdir)/aclocal.m4' '$(lt_aclocal_m4)'; then \
+ echo "Bogus $$macro macro contents in an aclocal.m4 file." >&2; \
+ exit 1; \
+ else :; fi; \
+ done
uninstall-hook:
@$(NORMAL_UNINSTALL)
rm -f "$(DESTDIR)$(aclocaldir)/$$f"; \
done
-dist-hook:
-## Edit the README file for alpha releases.
- case $(VERSION) in \
- *[a-z]) $(SHELL) $(edit_readme_alpha) $(distdir)/README ;; \
- esac
-## Ensure aclocal has not wrongly picked up old macro definitions.
- for macro in LT_INIT AC_PROG_LIBTOOL AM_PROG_LIBTOOL; do \
- if grep "$$macro" '$(srcdir)/aclocal.m4' '$(lt_aclocal_m4)'; then \
- echo "Bogus $$macro macro contents in an aclocal.m4 file." >&2; \
- exit 1; \
- else :; fi; \
- done
-
## ----------- ##
## Test suite. ##
$(testsuite): $(package_m4) $(TESTSUITE_AT) Makefile.am
$(AUTOTEST) -I '$(srcdir)' -I '$(srcdir)/tests' $(TESTSUITE_AT) -o '$@'
-$(package_m4): $(configure_ac) Makefile.am
+$(package_m4): $(dotversion) Makefile.am
{ \
echo '# Signature of the current package.'; \
echo 'm4_define([AT_PACKAGE_NAME], [@PACKAGE_NAME@])'; \
$(TESTS): $(defs)
DISTCLEANFILES += $(defs)
+
+## An empty target to depend on when a rule needs to always run
+## whenever it is visited.
+FORCE:
announce-gen
do-release-commit-and-tag
gendocs
+ git-version-gen
gnu-web-doc-update
gnupload
maintainer-makefile
## ------------------------ ##
## Autoconf initialisation. ##
## ------------------------ ##
-AC_INIT([GNU Libtool], [2.4.3a], [bug-libtool@gnu.org])
+AC_INIT([GNU Libtool],
+ m4_esyscmd([libltdl/config/git-version-gen .tarball-version]),
+ [bug-libtool@gnu.org])
m4_ifndef([AC_PACKAGE_URL],
- [AC_SUBST([PACKAGE_URL], [http://www.gnu.org/software/libtool/])])
+ [AC_SUBST([PACKAGE_URL], [http://www.gnu.org/s/libtool/])])
# Since we already declare these directories in this file, save those
# choices, and push the results into Makefile.am to avoid declaring
AC_CONFIG_MACRO_DIR([libltdl/m4])
AC_CONFIG_LIBOBJ_DIR([libltdl])
+package_revision=`$SHELL $ac_aux_dir/git-version-gen .tarball-version`
+AC_SUBST([package_revision])
## ------------------------ ##
## Autotest initialisation. ##
## ---------------------------------------- ##
# This is a sanity check so we can see which version is used in bug reports.
-# It is assumed that we only want to see the date extension for cvs libtool
-# versions (i.e. "odd" letters) and not actual alpha releases.
-TIMESTAMP=`${CONFIG_SHELL} ${ac_aux_dir}/mkstamp ${srcdir}`
-package_revision=`( set $TIMESTAMP; echo $1; )`
-case $package_revision in
- *[[bdfhjlnprtvxz]])
- TIMESTAMP=
- ;;
-esac
-timestamp_string="${TIMESTAMP:+ (Build:$TIMESTAMP)}"
-AS_BOX([Configuring AC_PACKAGE_TARNAME$timestamp_string AC_PACKAGE_VERSION])
+AS_BOX([Configuring AC_PACKAGE_TARNAME AC_PACKAGE_VERSION])
echo
-AC_SUBST([TIMESTAMP])
-AC_SUBST([package_revision])
## ------------------------ ##
# You can set autobuild_mode at configure time to specify a "unique"
# string for this build.
: ${autobuild_mode=default}
-AB_VERSION="AC_PACKAGE_VERSION ($TIMESTAMP)"
+AB_VERSION="AC_PACKAGE_VERSION"
AB_INIT([$autobuild_mode])
AC_SUBST([M4SH], ['$(AUTOM4TE) --language=m4sh'])
dnl Make sure config.status is regenerated when the version timestamp changes
-AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(top_srcdir)/ChangeLog'])
+AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(srcdir)/.version'])
## ------------------------------- ##
/depcomp
/do-release-commit-and-tag
/gendocs.sh
+/git-version-gen
/gnu-web-doc-update
/gnupload
/install-sh
m4_define([_m4_divert(SCRIPT)], 100)
m4_divert_push([SCRIPT])
-# libtool (GNU @PACKAGE@@TIMESTAMP@) @VERSION@
+# libtool (GNU @PACKAGE@) @VERSION@
# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
# compiler: $LTCC
# compiler flags: $LTCFLAGS
# linker: $LD (gnu? $with_gnu_ld)
-# $progname: (GNU @PACKAGE@@TIMESTAMP@) @VERSION@
+# $progname: (GNU @PACKAGE@) @VERSION@
# automake: $automake_version
# autoconf: $autoconf_version
#
PROGRAM=libtool
PACKAGE=@PACKAGE@
VERSION=@VERSION@
-TIMESTAMP="@TIMESTAMP@"
package_revision=@package_revision@
# Be Bourne compatible
$opt_dry_run || {
cat >${write_libobj}T <<EOF
# $write_libobj - a libtool object file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
-/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
+/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */
#ifdef __cplusplus
extern \"C\" {
#! $SHELL
# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
#
# The $output program cannot be directly executed until all the libtool
# libraries that it depends on are installed.
# Print the debug banner immediately:
if test -n \"\$lt_option_debug\"; then
- echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
+ echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2
fi
}
cat <<EOF
/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
- Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+ Generated by $PROGRAM (GNU $PACKAGE) $VERSION
The $output program cannot be directly executed until all the libtool
libraries that it depends on are installed.
EOF
cat <<EOF
/* The GNU banner must be the first non-error debug message */
- lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
+ lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n");
EOF
cat <<"EOF"
lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
esac
$ECHO > $output "\
# $outputname - a libtool library file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
+++ /dev/null
-#! /bin/sh
-
-# mkstamp - extract data from Revision and Date RCS tags in a file
-# Copyright (C) 1999, 2003 Free Software Foundation, Inc.
-# Written by Alexandre Oliva, 1999
-#
-# This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html,
-# or obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-####
-
-# This script takes a directory as an argument and generates a
-# revision and date based upon the ChangeLog files in that directory.
-
-# Generate a revision that looks similar to CVS revision by using 1.
-# then the number of lines in the ChangeLogs starting with dates (an
-# approximation of the number of commits) + 1000.
-# For those pulling from the savannah git repository it should be
-# possible to go from this revision number to the git revision fairly
-# easily. The number will also always increase.
-
-awk 'BEGIN {
- cocount=0;
-}
-/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] / {
- if (cocount== 0) {
- datestr=$1
- }
- cocount++;
-}
-END {
- cocount = cocount + 1000;
- print "1." cocount " " datestr;
-}' $1/ChangeLog $1/ChangeLog.[12][0-9][0-9][0-9]
#! $SHELL
# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Generated automatically by $as_me ($PACKAGE) $VERSION
# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
#
[m4_if([$1], [], [
PACKAGE='$PACKAGE'
VERSION='$VERSION'
- TIMESTAMP='$TIMESTAMP'
RM='$RM'
ofile='$ofile'], [])
])dnl /_LT_CONFIG_SAVE_COMMANDS
m4_pattern_allow([dnl])
AS_INIT[]m4_divert_push([HEADER-COPYRIGHT])
-# libtoolize (GNU @PACKAGE@@TIMESTAMP@) @VERSION@
+# libtoolize (GNU @PACKAGE@) @VERSION@
# Written by Gary V. Vaughan <gary@gnu.org>, 2003
# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
# include the following information:
#
# host-triplet: @host_triplet@
-# $progname: (GNU @PACKAGE@@TIMESTAMP@) @VERSION@
+# $progname: (GNU @PACKAGE@) @VERSION@
# automake: $automake_version
# autoconf: $autoconf_version
#