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