build: add new version mechanism based on VERSION file and a version.sh script

If this is a git checkout, and git is available, then git describe is
used. Otherwise, the new checked in VERSION file is taken for the version.

This mechanism uses a version.sh script inspired by
http://git.musl-libc.org/cgit/musl/tree/tools/version.sh

Signed-off-by: Michael Adam <obnox@samba.org>
master
Michael Adam 2018-09-04 01:23:01 +02:00
parent a662c11b8d
commit 9f4ed46c0a
5 changed files with 24 additions and 11 deletions

View File

@ -4,7 +4,8 @@ SUBDIRS = \
etc \
docs \
m4macros \
tests
tests \
scripts
# tools want this on a single line
ACLOCAL_AMFLAGS = -I m4macros
@ -20,7 +21,8 @@ dist_doc_DATA = \
EXTRA_DIST = \
autogen.sh \
tinyproxy-indent.sh \
TODO
TODO \
VERSION
test: all
./tests/scripts/run_tests.sh

1
VERSION Normal file
View File

@ -0,0 +1 @@
1.10.0

View File

@ -3,15 +3,7 @@
AC_PREREQ(2.54)
m4_define([tinyproxy_major_version], [1])
m4_define([tinyproxy_minor_version], [10])
m4_define([tinyproxy_micro_version], [0])
m4_define([tinyproxy_real_version],
[tinyproxy_major_version.tinyproxy_minor_version.tinyproxy_micro_version])
m4_define([tinyproxy_version], [tinyproxy_real_version])
# For overriding the version string. Comment out if not needed.
# m4_define([tinyproxy_version], [1.10.0])
m4_define([tinyproxy_version], esyscmd(sh scripts/version.sh | tr -d '\n'))
AC_INIT([Tinyproxy], [tinyproxy_version],
[https://tinyproxy.github.io/],
@ -227,6 +219,7 @@ docs/man8/tinyproxy.txt
m4macros/Makefile
tests/Makefile
tests/scripts/Makefile
scripts/Makefile
])
AC_OUTPUT

2
scripts/Makefile.am Normal file
View File

@ -0,0 +1,2 @@
EXTRA_DIST = \
version.sh

15
scripts/version.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/sh
SCRIPT_DIR="$(cd "$(dirname "${0}")" && pwd)"
GIT_DIR="${SCRIPT_DIR}/../.git"
if test -d "${GIT_DIR}" ; then
if type git >/dev/null 2>&1 ; then
git describe --match '[0-9]*.[0-9]*.[0-9]*' 2>/dev/null \
| sed -e 's/-/-git-/'
else
sed 's/$/-git/' < VERSION
fi
else
cat VERSION
fi