blob: c514e3c35abce7bf4bdb26c52d4bfa6e64ab5153 (
plain) (
tree)
|
|
# This file is part of UltraStar Deluxe
# Created by the UltraStar Deluxe Team
# SYNOPSIS
#
# AX_EXTRACT_VERSION(VARIABLE_PREFIX, VERSION)
#
# DESCRIPTION
#
# Splits a version number ("major.minor.release") into its components.
# The resulting components of the version are guaranteed to be
# numeric. All non-numeric chars are removed.
#
# Sets
# [$VARIABLE_PREFIX]_VERSION_MAJOR
# [$VARIABLE_PREFIX]_VERSION_MINOR
# [$VARIABLE_PREFIX]_VERSION_RELEASE
#
# This function calls
# AC_SUBST([$VARIABLE_PREFIX]_VERSION_type] for each type
AC_DEFUN([AX_EXTRACT_VERSION],
[
version=[$2]
# strip leading non-numeric tokens
# (necessary for some ffmpeg-packages in ubuntu)
# example: 0d.51.1.0 -> 51.1.0
version=`echo $version | sed 's/^[[^.]]*[[^0-9.]][[^.]]*\.//'`
# replace "." and "-" with " " and ignore trailing tokens.
# 1.23.4-r2 will be splitted to [maj=1, min=23, rel=4].
# In addition we delete everything after the first character
# which is not 0-9.
# 1.3a4-r32 will be [maj=1, min=3, rel=0].
read major minor release ignore <<eof
`echo $version | tr '.-' ' ' | sed 's/[[^0-9\ ]].*//'`
eof
# Note: Do NOT indent the eof-delimiter
# We use a here-document (<<< here-strings not POSIX compatible)
test -z $major && major=0
test -z $minor && minor=0
test -z $release && release=0
# strip preceding 0s and set unset version-parts to 0
[$1][_VERSION_MAJOR]=$(($major))
[$1][_VERSION_MINOR]=$(($minor))
[$1][_VERSION_RELEASE]=$(($release))
# integer representation: MMMmmmrrr (M:major,m:minor,r:release)
# can be used if pkg-config's comparison fails
[$1][_VERSION_INT]=$(($[$1][_VERSION_MAJOR]*1000000+$[$1][_VERSION_MINOR]*1000+$[$1][_VERSION_RELEASE]))
AC_SUBST([$1][_VERSION_MAJOR])
AC_SUBST([$1][_VERSION_MINOR])
AC_SUBST([$1][_VERSION_RELEASE])
AC_SUBST([$1][_VERSION_INT])
])
|