Put VERSION file in object directory

Also allow for the possibility that there exists a VERSION
file in the srcroot, in case of building from a release tarball
out of tree.
This commit is contained in:
Dan McGregor 2014-12-23 16:10:08 -06:00 committed by Jason Evans
parent ab5e3790f6
commit f8880310eb
2 changed files with 16 additions and 12 deletions

View File

@ -418,7 +418,7 @@ distclean: clean
relclean: distclean relclean: distclean
rm -f $(objroot)configure rm -f $(objroot)configure
rm -f $(srcroot)VERSION rm -f $(objroot)VERSION
rm -f $(DOCS_HTML) rm -f $(DOCS_HTML)
rm -f $(DOCS_MAN3) rm -f $(DOCS_MAN3)

View File

@ -1046,32 +1046,36 @@ dnl jemalloc configuration.
dnl dnl
dnl Set VERSION if source directory is inside a git repository. dnl Set VERSION if source directory is inside a git repository.
if test "x`git rev-parse --is-inside-work-tree 2>/dev/null`" = "xtrue" ; then if test "x`test ! \"${srcroot}\" && cd \"${srcroot}\"; git rev-parse --is-inside-work-tree 2>/dev/null`" = "xtrue" ; then
dnl Pattern globs aren't powerful enough to match both single- and dnl Pattern globs aren't powerful enough to match both single- and
dnl double-digit version numbers, so iterate over patterns to support up to dnl double-digit version numbers, so iterate over patterns to support up to
dnl version 99.99.99 without any accidental matches. dnl version 99.99.99 without any accidental matches.
rm -f "${srcroot}VERSION" rm -f "${objroot}VERSION"
for pattern in ['[0-9].[0-9].[0-9]' '[0-9].[0-9].[0-9][0-9]' \ for pattern in ['[0-9].[0-9].[0-9]' '[0-9].[0-9].[0-9][0-9]' \
'[0-9].[0-9][0-9].[0-9]' '[0-9].[0-9][0-9].[0-9][0-9]' \ '[0-9].[0-9][0-9].[0-9]' '[0-9].[0-9][0-9].[0-9][0-9]' \
'[0-9][0-9].[0-9].[0-9]' '[0-9][0-9].[0-9].[0-9][0-9]' \ '[0-9][0-9].[0-9].[0-9]' '[0-9][0-9].[0-9].[0-9][0-9]' \
'[0-9][0-9].[0-9][0-9].[0-9]' \ '[0-9][0-9].[0-9][0-9].[0-9]' \
'[0-9][0-9].[0-9][0-9].[0-9][0-9]']; do '[0-9][0-9].[0-9][0-9].[0-9][0-9]']; do
if test ! -e "${srcroot}VERSION" ; then if test ! -e "${objroot}VERSION" ; then
git describe --long --abbrev=40 --match="${pattern}" > "${srcroot}VERSION.tmp" 2>/dev/null (test ! "${srcroot}" && cd "${srcroot}"; git describe --long --abbrev=40 --match="${pattern}") > "${objroot}VERSION.tmp" 2>/dev/null
if test $? -eq 0 ; then if test $? -eq 0 ; then
mv "${srcroot}VERSION.tmp" "${srcroot}VERSION" mv "${objroot}VERSION.tmp" "${objroot}VERSION"
break break
fi fi
fi fi
done done
fi fi
rm -f "${srcroot}VERSION.tmp" rm -f "${objroot}VERSION.tmp"
if test ! -e "${srcroot}VERSION" ; then if test ! -e "${objroot}VERSION" ; then
AC_MSG_RESULT( if test ! -e "${srcroot}VERSION" ; then
[Missing VERSION file, and unable to generate it; creating bogus VERSION]) AC_MSG_RESULT(
echo "0.0.0-0-g0000000000000000000000000000000000000000" > "${srcroot}VERSION" [Missing VERSION file, and unable to generate it; creating bogus VERSION])
echo "0.0.0-0-g0000000000000000000000000000000000000000" > "${objroot}VERSION"
else
cp ${srcroot}VERSION ${objroot}VERSION
fi
fi fi
jemalloc_version=`cat "${srcroot}VERSION"` jemalloc_version=`cat "${objroot}VERSION"`
jemalloc_version_major=`echo ${jemalloc_version} | tr ".g-" " " | awk '{print [$]1}'` jemalloc_version_major=`echo ${jemalloc_version} | tr ".g-" " " | awk '{print [$]1}'`
jemalloc_version_minor=`echo ${jemalloc_version} | tr ".g-" " " | awk '{print [$]2}'` jemalloc_version_minor=`echo ${jemalloc_version} | tr ".g-" " " | awk '{print [$]2}'`
jemalloc_version_bugfix=`echo ${jemalloc_version} | tr ".g-" " " | awk '{print [$]3}'` jemalloc_version_bugfix=`echo ${jemalloc_version} | tr ".g-" " " | awk '{print [$]3}'`