build/ scripts: Remove the version-number machinery.
[runlisp] / build / auto-version
CommitLineData
d9b245f4
MW
1#! /bin/sh
2### -*-sh-*-
3###
4### Make autoconf-like substitutions in files
5###
6### (c) 2008 Mark Wooding
7###
8
9###----- Licensing notice ---------------------------------------------------
10###
11### This file is part of the Common Files Distribution (`common').
12###
13### `Common' is free software; you can redistribute it and/or modify
14### it under the terms of the GNU General Public License as published by
15### the Free Software Foundation; either version 2 of the License, or
16### (at your option) any later version.
17###
18### `Common' is distributed in the hope that it will be useful,
19### but WITHOUT ANY WARRANTY; without even the implied warranty of
20### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21### GNU General Public License for more details.
22###
23### You should have received a copy of the GNU General Public License
24### along with `common'; if not, write to the Free Software Foundation,
25### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
26
27set -e
d9b245f4
MW
28
29###--------------------------------------------------------------------------
30### Parse command line arguments.
31
32while [ $# -gt 0 ]; do
33 case $1 in
34 -h | --h | --he | --hel | --help)
35 cat <<EOF
36Usage: auto-verison
37
38Writes on standard output the program's version number.
39EOF
40 exit 0
41 ;;
d9b245f4
MW
42 --)
43 shift
44 break
45 ;;
46 -)
47 break
48 ;;
49 -*)
50 echo "auto-version: unknown option \`$1'" >&2
51 exit 1
52 ;;
53 *)
54 break
55 ;;
56 esac
57 shift
58done
59
60if [ $# -ne 0 ]; then
61 echo >&2 "Usage: auto-version"
62 exit 1
63fi
64
65###--------------------------------------------------------------------------
66### Main program.
67
68## If this is a Git checkout then Git should be able to identify the version.
7a7d6461
MW
69## If there's also a Debian version, and that ends in a `~', then prefix the
70## Git version with this. Note that `pkg-config' is not very good, and, in
71## particular, doesn't support the convention that `~' sorts before anything
72## else, even the empty string, despite claiming to implement the RPM
73## version-comparison algorithm which specifies this behaviour, so one must
74## be careful when choosing `~' prefixes.
75if [ -e .git ] && version=$(git describe --abbrev=4 --dirty=+ 2>/dev/null); then
76 debver=$(sed -n '/^.*(\(.*\)).*$/ { s::\1:p; q; }' debian/changelog)
77 case $debver in *~) version=$debver$version ;; esac
d9b245f4
MW
78 echo "$version"
79 exit 0
80fi
81
262d0dc4 82## If this was unpacked from a source distribution, the RELEASE file should
d9b245f4
MW
83## say what the version was.
84if [ -f RELEASE ]; then
85 cat RELEASE
86 exit 0
87fi
88
89## If we're Debianized, then the Debian changelog ought to know.
90if [ -f debian/changelog ]; then
91 sed -n '/^.*(\(.*\)).*$/ { s::\1:p; q; }' debian/changelog
92 exit 0
93fi
94
95## Otherwise we're screwed.
96echo UNKNOWN
97exit 0
98
99###----- That's all, folks --------------------------------------------------