1#! /bin/sh 2 3# Copyright 2002, 2009, 2010 Harlan Stenn. Used by NTP with permission. 4# Author: Harlan Stenn <harlan+cvo@pfcs.com> 5 6# Possible output formats: 7# 8# CVO=... Shell variable 9# CVO=... ; export CVO Old-style exported envariable 10# export CVO=... New-style exported envariable 11# setenv CVO ... csh-style exported envariable 12 13TS="$*" 14 15CVO_raw=`config.guess` 16CVO=$CVO_raw 17 18set 1 `echo $CVO | tr '-' ' '` 19shift 20 21case "$#" in 22 4) # eg: i686-pc-linux-gnu 23 CVO_CPU=$1 24 CVO_VENDOR=$2 25 cvo_KERN=$3 # Note the capitalization... 26 CVO_OS=$4 27 case "$cvo_KERN" in 28 linux) # Braindamage. We want OS, not kernel info 29 if lsb_release > /dev/null 2>&1 30 then 31 CVO_OS=`lsb_release --id --short | tr '[:upper:]' '[:lower:]'` 32 CVO_OS="$CVO_OS`lsb_release --release --short`" 33 elif test -f /etc/debian_version 34 then 35 set `cat /etc/debian_version` 36 CVO_OS=debian$1 37 CVO_KOSVER=`uname -r` 38 elif test -f /etc/mandrake-release 39 then 40 set `cat /etc/mandrake-release` 41 CVO_OS=mandrake$4 42 CVO_KOSVER=`uname -r` 43 elif test -f /etc/redhat-release 44 then 45 set `cat /etc/redhat-release` 46 case "$1" in 47 CentOS) 48 CVO_OS=centos$3 49 ;; 50 Fedora) 51 CVO_OS=fedora$3 52 ;; 53 *) 54 case "$3" in 55 Enterprise) 56 CVO_OS=redhat$7.E 57 ;; 58 Linux) 59 CVO_OS=redhat$5 60 ;; 61 esac 62 ;; 63 esac 64 CVO_KOSVER=`uname -r` 65 elif test -f /etc/slackware-version 66 then 67 set `cat /etc/slackware-version` 68 CVO_OS=slackware$2 69 CVO_KOSVER=`uname -r` 70 elif test -f /etc/SuSE-release 71 then 72 set `cat /etc/SuSE-release` 73 CVO_OS=suse$9 74 CVO_KOSVER=`uname -r` 75 else 76 CVO_OS=$cvo_KERN`uname -r` 77 78 fi 79 ;; 80 nto) # QNX 81 CVO_KOSVER=`uname -r` 82 ;; 83 *) 84 echo "gronk - I don't understand <$CVO>!" 85 exit 1 86 ;; 87 esac 88 ;; 89 3) CVO_CPU=$1 90 CVO_VENDOR=$2 91 CVO_OS=$3 92 ;; 93 *) echo "gronk - config.guess returned $# pieces, not 3 pieces!" 94 exit 1 95 ;; 96esac 97 98case "$CVO_OS" in 99 cygwin) 100 # Decisions, decisions. 101 # uname -r is the cygwin version #, eg: 1.3.3(0.46/3/2) 102 # uname -s returns something like CYGWIN_NT-5.0 103 CVO_OS="$CVO_OS`uname -r | sed 's/(.*//'`" 104 ;; 105esac 106set `echo $CVO_OS | sed 's/\([0-9]\)/ \1/'` 107 108case "$#" in 109 2) ;; 110 *) echo "gronk - <$CVO_OS> expanded to $#, not 2 pieces!" 111 exit 1 112 ;; 113esac 114 115CVO_OSNAME=$1 116CVO_OSVER=$2 117 118case "$CVO_OSNAME" in 119 solaris) 120 CVO_KOSVER=`uname -v` 121 ;; 122esac 123 124CVO=$CVO_CPU-$CVO_VENDOR-$CVO_OS 125 126case "$TS" in 127 '') 128 set | grep CVO 129 ;; 130 *) 131 # keys['cvo'] = "cvo.CVO['CVO']" 132 TS=`echo $TS | sed -e s/@cvo@/$CVO/g` 133 # keys['cpu'] = "cvo.CVO['CVO_CPU']" 134 TS=`echo $TS | sed -e s/@cpu@/$CVO_CPU/g` 135 # keys['kosver'] = "cvo.CVO['CVO_KOSVER']" 136 TS=`echo $TS | sed -e s/@kosver@/$CVO_KOSVER/g` 137 # keys['os'] = "cvo.CVO['CVO_OS']" 138 TS=`echo $TS | sed -e s/@os@/$CVO_OS/g` 139 # keys['osname'] = "cvo.CVO['CVO_OSNAME']" 140 TS=`echo $TS | sed -e s/@osname@/$CVO_OSNAME/g` 141 # keys['osver'] = "cvo.CVO['CVO_OSVER']" 142 TS=`echo $TS | sed -e s/@osver@/$CVO_OSVER/g` 143 # keys['vendor'] = "cvo.CVO['CVO_VENDOR']" 144 TS=`echo $TS | sed -e s/@vendor@/$CVO_VENDOR/g` 145 # keys['raw'] = "cvo.CVO['CVO_raw']" 146 TS=`echo $TS | sed -e s/@raw@/$CVO_raw/g` 147 148 echo $TS 149 ;; 150esac 151