From 01ce2d43d6ba9721bf46c3e132c4be394ef3f0f9 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Sat, 10 Jul 2021 17:47:57 -0500 Subject: [PATCH] configure.ac: generate version number from git commit and tags This should hopefully make it less confusing when building from the git repository. Previously, when doing so the version number would always be that of the last official release. --- configure.ac | 3 ++- tools/get-version-number | 12 ++++++++++++ tools/make-releases | 2 ++ tools/make-windows-release | 3 +-- tools/update-version | 2 +- 5 files changed, 18 insertions(+), 4 deletions(-) create mode 100755 tools/get-version-number diff --git a/configure.ac b/configure.ac index 948db93c..a883d7eb 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,7 @@ ############################################################################### -AC_INIT([wimlib], [1.13.5-BETA1], [https://wimlib.net/forums/]) +AC_INIT([wimlib], m4_esyscmd([tools/get-version-number]), + [https://wimlib.net/forums/]) AC_CONFIG_SRCDIR([src/wim.c]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) diff --git a/tools/get-version-number b/tools/get-version-number new file mode 100755 index 00000000..15f256cc --- /dev/null +++ b/tools/get-version-number @@ -0,0 +1,12 @@ +#!/bin/sh + +# Get the version number of the project to use in the release filenames +# and in the --version output. + +vers=$(git describe --abbrev=8 --dirty --always 2>/dev/null | \ + sed 's/^v//') +if [ -z "$vers" ]; then + # Fallback for people who use autoreconf on tarball releases + vers="1.13.4" +fi +echo "$vers" diff --git a/tools/make-releases b/tools/make-releases index fad2b88c..251e7413 100755 --- a/tools/make-releases +++ b/tools/make-releases @@ -6,6 +6,8 @@ MAKE="make -j$(grep -c processor /proc/cpuinfo)" export CFLAGS="-O2 -Wall -Werror" +autoreconf -i -f # make sure the version number gets updated + ./configure && $MAKE distcheck # Recompress with 7-Zip diff --git a/tools/make-windows-release b/tools/make-windows-release index 3bd8e472..5f5da584 100755 --- a/tools/make-windows-release +++ b/tools/make-windows-release @@ -27,8 +27,7 @@ i686|x86_64) ;; esac -VERSION=$(grep 'AC_INIT' configure.ac | \ - grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+[^]]*') +VERSION=$(tools/get-version-number) DESTDIR=wimlib-${VERSION}-windows-${ARCH}-bin ZIPFILE=wimlib-${VERSION}-windows-${ARCH}-bin.zip MAKE="make -j $(grep -c processor /proc/cpuinfo)" diff --git a/tools/update-version b/tools/update-version index 092c572e..78982196 100755 --- a/tools/update-version +++ b/tools/update-version @@ -23,7 +23,7 @@ newver="${newmajor}.${newminor}.${newpatch}" pat='This is wimlib version [^[:space:]]\+ ([^[:space:]]\+ [^[:space:]]\+)' sed -i "s/$pat/This is wimlib version $newver ($newmonth $newyear)/" README -sed -i "s/$oldver/$newver/" configure.ac +sed -i "s/$oldver/$newver/" tools/get-version-number sed -i -e 's/\(#define WIMLIB_MAJOR_VERSION[[:space:]]\+\)[[:digit:]]\+/\1'$newmajor'/' \ -e 's/\(#define WIMLIB_MINOR_VERSION[[:space:]]\+\)[[:digit:]]\+/\1'$newminor'/' \ -- 2.43.0