1#!/bin/sh 2# 3# extract version numbers from a header file 4# 5# USAGE: get-version.sh CMD VERSION_HEADER PREFIX 6# where CMD is one of: all, major, libtool 7# where PREFIX is the prefix to {MAJOR|MINOR|PATCH}_VERSION defines 8# 9# get-version.sh all returns a dotted version number 10# get-version.sh major returns just the major version number 11# get-version.sh libtool returns a version "libtool -version-info" format 12# 13 14if test $# != 3; then 15 echo "USAGE: $0 CMD VERSION_HEADER PREFIX" 16 echo " where CMD is one of: all, major, libtool" 17 exit 1 18fi 19 20major_sed="/#define.*$3_MAJOR_VERSION/s/^[^0-9]*\([0-9]*\).*$/\1/p" 21minor_sed="/#define.*$3_MINOR_VERSION/s/^[^0-9]*\([0-9]*\).*$/\1/p" 22patch_sed="/#define.*$3_PATCH_VERSION/s/^[^0-9]*\([0-9]*\).*$/\1/p" 23major="`sed -n $major_sed $2`" 24minor="`sed -n $minor_sed $2`" 25patch="`sed -n $patch_sed $2`" 26 27if test "$1" = "all"; then 28 echo ${major}.${minor}.${patch} 29elif test "$1" = "major"; then 30 echo ${major} 31elif test "$1" = "libtool"; then 32 # Yes, ${minor}:${patch}:${minor} is correct due to libtool idiocy. 33 echo ${minor}:${patch}:${minor} 34else 35 echo "ERROR: unknown version CMD ($1)" 36 exit 1 37fi 38