cvo.sh revision 275970
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) 48275970Scy CVO_OS=centos$3 49275970Scy ;; 50275970Scy Fedora) 51275970Scy CVO_OS=fedora$3 52275970Scy ;; 53275970Scy *) 54275970Scy case "$3" in 55275970Scy Enterprise) 56275970Scy CVO_OS=redhat$7.E 57275970Scy ;; 58275970Scy Linux) 59275970Scy CVO_OS=redhat$5 60275970Scy ;; 61275970Scy esac 62275970Scy ;; 63275970Scy esac 64275970Scy CVO_KOSVER=`uname -r` 65275970Scy elif test -f /etc/slackware-version 66275970Scy then 67275970Scy set `cat /etc/slackware-version` 68275970Scy CVO_OS=slackware$2 69275970Scy CVO_KOSVER=`uname -r` 70275970Scy elif test -f /etc/SuSE-release 71275970Scy then 72275970Scy set `cat /etc/SuSE-release` 73275970Scy CVO_OS=suse$9 74275970Scy CVO_KOSVER=`uname -r` 75275970Scy else 76275970Scy CVO_OS=$cvo_KERN`uname -r` 77275970Scy 78275970Scy fi 79275970Scy ;; 80275970Scy nto) # QNX 81275970Scy CVO_KOSVER=`uname -r` 82275970Scy ;; 83275970Scy *) 84275970Scy echo "gronk - I don't understand <$CVO>!" 85275970Scy exit 1 86275970Scy ;; 87275970Scy esac 88275970Scy ;; 89275970Scy 3) CVO_CPU=$1 90275970Scy CVO_VENDOR=$2 91275970Scy CVO_OS=$3 92275970Scy ;; 93275970Scy *) echo "gronk - config.guess returned $# pieces, not 3 pieces!" 94275970Scy exit 1 95275970Scy ;; 96275970Scyesac 97275970Scy 98275970Scycase "$CVO_OS" in 99275970Scy cygwin) 100275970Scy # Decisions, decisions. 101275970Scy # uname -r is the cygwin version #, eg: 1.3.3(0.46/3/2) 102275970Scy # uname -s returns something like CYGWIN_NT-5.0 103275970Scy CVO_OS="$CVO_OS`uname -r | sed 's/(.*//'`" 104275970Scy ;; 105275970Scyesac 106275970Scyset `echo $CVO_OS | sed 's/\([0-9]\)/ \1/'` 107275970Scy 108275970Scycase "$#" in 109275970Scy 2) ;; 110275970Scy *) echo "gronk - <$CVO_OS> expanded to $#, not 2 pieces!" 111275970Scy exit 1 112275970Scy ;; 113275970Scyesac 114275970Scy 115275970ScyCVO_OSNAME=$1 116275970ScyCVO_OSVER=$2 117275970Scy 118275970Scycase "$CVO_OSNAME" in 119275970Scy solaris) 120275970Scy CVO_KOSVER=`uname -v` 121275970Scy ;; 122275970Scyesac 123275970Scy 124275970ScyCVO=$CVO_CPU-$CVO_VENDOR-$CVO_OS 125275970Scy 126275970Scycase "$TS" in 127275970Scy '') 128275970Scy set | grep CVO 129275970Scy ;; 130275970Scy *) 131275970Scy # keys['cvo'] = "cvo.CVO['CVO']" 132275970Scy TS=`echo $TS | sed -e s/@cvo@/$CVO/g` 133275970Scy # keys['cpu'] = "cvo.CVO['CVO_CPU']" 134275970Scy TS=`echo $TS | sed -e s/@cpu@/$CVO_CPU/g` 135275970Scy # keys['kosver'] = "cvo.CVO['CVO_KOSVER']" 136275970Scy TS=`echo $TS | sed -e s/@kosver@/$CVO_KOSVER/g` 137275970Scy # keys['os'] = "cvo.CVO['CVO_OS']" 138275970Scy TS=`echo $TS | sed -e s/@os@/$CVO_OS/g` 139275970Scy # keys['osname'] = "cvo.CVO['CVO_OSNAME']" 140275970Scy TS=`echo $TS | sed -e s/@osname@/$CVO_OSNAME/g` 141275970Scy # keys['osver'] = "cvo.CVO['CVO_OSVER']" 142275970Scy TS=`echo $TS | sed -e s/@osver@/$CVO_OSVER/g` 143275970Scy # keys['vendor'] = "cvo.CVO['CVO_VENDOR']" 144275970Scy TS=`echo $TS | sed -e s/@vendor@/$CVO_VENDOR/g` 145275970Scy # keys['raw'] = "cvo.CVO['CVO_raw']" 146275970Scy TS=`echo $TS | sed -e s/@raw@/$CVO_raw/g` 147275970Scy 148275970Scy echo $TS 149275970Scy ;; 150275970Scyesac 151