3 # $NetBSD: osrelease.sh,v 1.119 2009/11/15 14:40:18 dsl Exp $
5 # Copyright (c) 1997 The NetBSD Foundation, Inc.
8 # This code is derived from software contributed to The NetBSD Foundation
11 # Redistribution and use in source and binary forms, with or without
12 # modification, are permitted provided that the following conditions
14 # 1. Redistributions of source code must retain the above copyright
15 # notice, this list of conditions and the following disclaimer.
16 # 2. Redistributions in binary form must reproduce the above copyright
17 # notice, this list of conditions and the following disclaimer in the
18 # documentation and/or other materials provided with the distribution.
20 # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
21 # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22 # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
24 # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 # POSSIBILITY OF SUCH DAMAGE.
33 # We use the number specified in <sys/param.h>
36 [ "${path#/*}" = "$path" ] && path
="./$path"
37 exec < ${path%/*}/..
/sys
/param.h
40 # #define __NetBSD_Version__ <ver_num> /* NetBSD <ver_text> */
42 # <ver_num> and <ver_text> should match!
45 read define ver_tag rel_num comment_start NetBSD rel_text rest ||
exit 1
47 [ "$define" = "#define" ] ||
continue;
48 [ "$ver_tag" = "__NetBSD_Version__" ] ||
continue
52 # default: return MM.mm.pp
53 # -m: return MM, representing only the major number; however, for -current,
54 # return the next major number (e.g. for 5.99.nn, return 6)
56 # -s: return MMmmpp (no dots)
60 # ${rel_num} is [M]Mmm00pp00
62 rel_MMmm
=${rel_num%????}
64 rel_mm
=${rel_MMmm#${rel_MM}}
65 # rel_pp=${rel_num#${rel_MMmm}00}
67 # Get patch from text version
72 set -- $rel_MM ${rel_mm#0} $
*
76 echo "$(((${rel_MMmm}+1)/100))"
79 echo "${rel_MM}.${rel_mm#0}"