1275970Scy#! /bin/sh
2275970Scy
3275970Scy# Copyright 2002, 2009, 2010 Harlan Stenn.  Used by NTP with permission.
4275970Scy# Author: Harlan Stenn <harlan+cvo@pfcs.com>
5275970Scy
6275970Scy# Possible output formats:
7275970Scy#
8275970Scy# CVO=...		Shell variable
9275970Scy# CVO=... ; export CVO	Old-style exported envariable
10275970Scy# export CVO=...	New-style exported envariable
11275970Scy# setenv CVO ...	csh-style exported envariable
12275970Scy
13275970ScyTS="$*"
14275970Scy
15275970ScyCVO_raw=`config.guess`
16275970ScyCVO=$CVO_raw
17275970Scy
18275970Scyset 1 `echo $CVO | tr '-' ' '`
19275970Scyshift
20275970Scy
21275970Scycase "$#" in
22275970Scy 4) # eg: i686-pc-linux-gnu
23275970Scy    CVO_CPU=$1
24275970Scy    CVO_VENDOR=$2
25275970Scy    cvo_KERN=$3			# Note the capitalization...
26275970Scy    CVO_OS=$4
27275970Scy    case "$cvo_KERN" in
28275970Scy     linux)			# Braindamage.  We want OS, not kernel info
29275970Scy	if lsb_release > /dev/null 2>&1
30275970Scy	then
31275970Scy	    CVO_OS=`lsb_release --id --short | tr '[:upper:]' '[:lower:]'`
32275970Scy	    CVO_OS="$CVO_OS`lsb_release --release --short`"
33275970Scy	elif test -f /etc/debian_version
34275970Scy	then
35275970Scy	    set `cat /etc/debian_version`
36275970Scy	    CVO_OS=debian$1
37275970Scy	    CVO_KOSVER=`uname -r`
38275970Scy	elif test -f /etc/mandrake-release
39275970Scy	then
40275970Scy	    set `cat /etc/mandrake-release`
41275970Scy	    CVO_OS=mandrake$4
42275970Scy	    CVO_KOSVER=`uname -r`
43275970Scy	elif test -f /etc/redhat-release
44275970Scy	then
45275970Scy	    set `cat /etc/redhat-release`
46275970Scy	    case "$1" in
47275970Scy	     CentOS)
48280849Scy		case "$2" in
49280849Scy		 Linux)
50280849Scy		    CVO_OS=centos$4
51280849Scy		    ;;
52280849Scy		 *) CVO_OS=centos$3
53280849Scy		    ;;
54280849Scy		esac
55275970Scy	        ;;
56275970Scy	     Fedora)
57275970Scy	        CVO_OS=fedora$3
58275970Scy	        ;;
59275970Scy	    *)
60275970Scy		case "$3" in
61275970Scy		 Enterprise)
62275970Scy		    CVO_OS=redhat$7.E
63275970Scy		    ;;
64275970Scy		 Linux)
65275970Scy		    CVO_OS=redhat$5
66275970Scy		    ;;
67275970Scy		esac
68275970Scy		;;
69275970Scy	    esac
70275970Scy	    CVO_KOSVER=`uname -r`
71275970Scy	elif test -f /etc/slackware-version
72275970Scy	then
73275970Scy	    set `cat /etc/slackware-version`
74275970Scy	    CVO_OS=slackware$2
75275970Scy	    CVO_KOSVER=`uname -r`
76275970Scy	elif test -f /etc/SuSE-release
77275970Scy	then
78275970Scy	    set `cat /etc/SuSE-release`
79275970Scy	    CVO_OS=suse$9
80275970Scy	    CVO_KOSVER=`uname -r`
81275970Scy	else
82275970Scy	    CVO_OS=$cvo_KERN`uname -r`
83275970Scy
84275970Scy	fi
85275970Scy	;;
86275970Scy     nto)	# QNX
87275970Scy	CVO_KOSVER=`uname -r`
88275970Scy	;;
89275970Scy     *)
90275970Scy	echo "gronk - I don't understand <$CVO>!"
91275970Scy	exit 1
92275970Scy	;;
93275970Scy    esac
94275970Scy    ;;
95275970Scy 3) CVO_CPU=$1
96275970Scy    CVO_VENDOR=$2
97275970Scy    CVO_OS=$3
98275970Scy    ;;
99275970Scy *) echo "gronk - config.guess returned $# pieces, not 3 pieces!"
100275970Scy    exit 1
101275970Scy    ;;
102275970Scyesac
103275970Scy
104275970Scycase "$CVO_OS" in
105275970Scy cygwin)
106275970Scy    # Decisions, decisions.
107275970Scy    # uname -r is the cygwin version #, eg: 1.3.3(0.46/3/2)
108275970Scy    # uname -s returns something like CYGWIN_NT-5.0
109275970Scy    CVO_OS="$CVO_OS`uname -r | sed 's/(.*//'`"
110275970Scy    ;;
111275970Scyesac
112275970Scyset `echo $CVO_OS | sed 's/\([0-9]\)/ \1/'`
113275970Scy
114275970Scycase "$#" in
115275970Scy 2) ;;
116275970Scy *) echo "gronk - <$CVO_OS> expanded to $#, not 2 pieces!"
117275970Scy    exit 1
118275970Scy    ;;
119275970Scyesac
120275970Scy
121275970ScyCVO_OSNAME=$1
122275970ScyCVO_OSVER=$2
123275970Scy
124275970Scycase "$CVO_OSNAME" in
125275970Scy solaris)
126275970Scy    CVO_KOSVER=`uname -v`
127275970Scy    ;;
128275970Scyesac
129275970Scy
130275970ScyCVO=$CVO_CPU-$CVO_VENDOR-$CVO_OS
131275970Scy
132275970Scycase "$TS" in
133275970Scy '')
134275970Scy    set | grep CVO
135275970Scy    ;;
136275970Scy *)
137275970Scy    # keys['cvo'] = "cvo.CVO['CVO']"
138275970Scy    TS=`echo $TS | sed -e s/@cvo@/$CVO/g`
139275970Scy    # keys['cpu'] = "cvo.CVO['CVO_CPU']"
140275970Scy    TS=`echo $TS | sed -e s/@cpu@/$CVO_CPU/g`
141275970Scy    # keys['kosver'] = "cvo.CVO['CVO_KOSVER']"
142275970Scy    TS=`echo $TS | sed -e s/@kosver@/$CVO_KOSVER/g`
143275970Scy    # keys['os'] = "cvo.CVO['CVO_OS']"
144275970Scy    TS=`echo $TS | sed -e s/@os@/$CVO_OS/g`
145275970Scy    # keys['osname'] = "cvo.CVO['CVO_OSNAME']"
146275970Scy    TS=`echo $TS | sed -e s/@osname@/$CVO_OSNAME/g`
147275970Scy    # keys['osver'] = "cvo.CVO['CVO_OSVER']"
148275970Scy    TS=`echo $TS | sed -e s/@osver@/$CVO_OSVER/g`
149275970Scy    # keys['vendor'] = "cvo.CVO['CVO_VENDOR']"
150275970Scy    TS=`echo $TS | sed -e s/@vendor@/$CVO_VENDOR/g`
151275970Scy    # keys['raw'] = "cvo.CVO['CVO_raw']"
152275970Scy    TS=`echo $TS | sed -e s/@raw@/$CVO_raw/g`
153275970Scy
154275970Scy    echo $TS
155275970Scy    ;;
156275970Scyesac
157