Version string now dynamically generated
This was motivated by Git itself, which uses `git describe` output to generate the version number relative to the last tag. The format of it fits fairly cleanly into the existing ease.js versioning scheme, but the m4 macro had to modified slightly to handle additional dashes.protolib
parent
2391224477
commit
0f2eb10f83
15
configure.ac
15
configure.ac
|
@ -18,12 +18,21 @@
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
##
|
##
|
||||||
|
|
||||||
AC_INIT([easejs], [0.2.2], [bugs@easejs.org])
|
# version string is dynamically generated
|
||||||
|
m4_define([ver], m4_esyscmd(./tools/vergen))
|
||||||
|
m4_if(ver, [], [m4_exit(1)])
|
||||||
|
|
||||||
|
AC_INIT([easejs], [ver], [bugs@easejs.org])
|
||||||
AC_CONFIG_AUX_DIR([tools])
|
AC_CONFIG_AUX_DIR([tools])
|
||||||
AM_INIT_AUTOMAKE([foreign])
|
AM_INIT_AUTOMAKE([foreign])
|
||||||
|
|
||||||
# provide more granular version numbers based on the above AC_INIT line
|
# provide more granular version numbers based on the version string, using
|
||||||
m4_define([ver_split], m4_split(m4_translit(AC_PACKAGE_VERSION, [-], [.]), [\.]))
|
# the format MAJOR.MINOR.REV[-SUFFIX], where SUFFIX can itself contain
|
||||||
|
# dashes (and often will)
|
||||||
|
m4_define([ver_split],
|
||||||
|
m4_split(
|
||||||
|
patsubst(AC_PACKAGE_VERSION, [^\([^-]+\)-], [\1.]),
|
||||||
|
[\.]))
|
||||||
AC_SUBST(MAJOR, m4_argn(1, ver_split))
|
AC_SUBST(MAJOR, m4_argn(1, ver_split))
|
||||||
AC_SUBST(MINOR, m4_argn(2, ver_split))
|
AC_SUBST(MINOR, m4_argn(2, ver_split))
|
||||||
AC_SUBST(REV, m4_argn(3, ver_split))
|
AC_SUBST(REV, m4_argn(3, ver_split))
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Generates version string
|
||||||
|
#
|
||||||
|
# Copyright (C) 2014 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of GNU ease.js.
|
||||||
|
#
|
||||||
|
# This program 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 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
##
|
||||||
|
|
||||||
|
# for distributions
|
||||||
|
if [ -f version ]; then
|
||||||
|
cat version
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
git rev-parse --show-toplevel >/dev/null 2>&1 || {
|
||||||
|
echo 'fatal: git repository is not available'
|
||||||
|
}
|
||||||
|
|
||||||
|
version="$( git describe --match='[0-9]\.*' --abbrev=7 HEAD 2>/dev/null )"
|
||||||
|
git update-index -q --refresh
|
||||||
|
test -z "$( git diff-index --name-only HEAD)" || version="$version-dirty"
|
||||||
|
|
||||||
|
echo -n "$version"
|
||||||
|
|
Loading…
Reference in New Issue