aboutsummaryrefslogtreecommitdiff
path: root/m4/jaylink.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/jaylink.m4')
-rw-r--r--m4/jaylink.m463
1 files changed, 63 insertions, 0 deletions
diff --git a/m4/jaylink.m4 b/m4/jaylink.m4
new file mode 100644
index 0000000..409fc9f
--- /dev/null
+++ b/m4/jaylink.m4
@@ -0,0 +1,63 @@
+##
+## This file is part of the libjaylink project.
+##
+## Copyright (C) 2016 Marc Schink <jaylink-dev@marcschink.de>
+##
+## 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 2 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/>.
+##
+
+# serial 20161011
+
+## _JAYLINK_SET_PACKAGE_VERSION(prefix, version, major, minor, micro)
+##
+m4_define([_JAYLINK_SET_PACKAGE_VERSION], [
+ m4_assert([$# == 5])
+
+ # Get the short Git revision hash of the current commit.
+ git_version=`git rev-parse --short HEAD 2> /dev/null`
+
+ # Try to get the release tag for the package version from the current
+ # commit.
+ tag=`git describe --match "$2" --exact-match 2> /dev/null`
+
+ version=$2
+
+ # If Git is available, append the short Git revision hash of the
+ # current commit to the version string if there is no release tag for
+ # the package version on it.
+ AS_IF([test -n "$git_version" && test -z "$tag"],
+ [version="$version-git-$git_version"])
+
+ AC_SUBST([$1_MAJOR], [$3])
+ AC_SUBST([$1_MINOR], [$4])
+ AC_SUBST([$1_MICRO], [$5])
+ AC_SUBST([$1], [$version])
+])
+
+## JAYLINK_SET_PACKAGE_VERSION(prefix, version)
+##
+## Parse the package version string of the format <major>.<minor>.<micro> and
+## set the variables <prefix>_{MAJOR,MINOR,MICRO} to their corresponding
+## values.
+##
+## Set the variable <prefix> to the package version string. If Git is
+## available, append the short Git revision hash of the current commit to the
+## version string if there is no release tag for the package version on it.
+##
+AC_DEFUN([JAYLINK_SET_PACKAGE_VERSION], [
+ m4_assert([$# == 2])
+
+ _JAYLINK_SET_PACKAGE_VERSION([$1], [$2],
+ m4_unquote(m4_split(m4_expand([$2]), [\.])))
+])