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 test -f /etc/os-release 30 then 31 . /etc/os-release 32 ID=`echo $ID | tr '-' '_'` 33 CVO_OS="${ID}${VERSION_ID}" 34 CVO_KOSVER=`uname -r` 35 elif lsb_release > /dev/null 2>&1 36 then 37 CVO_OS=`lsb_release --id --short | tr '[:upper:]' '[:lower:]'` 38 CVO_OS="$CVO_OS`lsb_release --release --short`" 39 elif test -f /etc/debian_version 40 then 41 set `cat /etc/debian_version` 42 CVO_OS=debian$1 43 CVO_KOSVER=`uname -r` 44 elif test -f /etc/mandrake-release 45 then 46 set `cat /etc/mandrake-release` 47 CVO_OS=mandrake$4 48 CVO_KOSVER=`uname -r` 49 elif test -f /etc/redhat-release 50 then 51 set `cat /etc/redhat-release` 52 case "$1" in 53 CentOS) 54 case "$2" in 55 Linux) 56 CVO_OS=centos$4 57 ;; 58 *) CVO_OS=centos$3 59 ;; 60 esac 61 ;; 62 Fedora) 63 CVO_OS=fedora$3 64 ;; 65 *) 66 case "$3" in 67 Enterprise) 68 CVO_OS=redhat$7.E 69 ;; 70 Linux) 71 CVO_OS=redhat$5 72 ;; 73 esac 74 ;; 75 esac 76 CVO_KOSVER=`uname -r` 77 elif test -f /etc/slackware-version 78 then 79 set `cat /etc/slackware-version` 80 CVO_OS=slackware$2 81 CVO_KOSVER=`uname -r` 82 elif test -f /etc/SuSE-release 83 then 84 set `cat /etc/SuSE-release` 85 CVO_OS=suse$9 86 CVO_KOSVER=`uname -r` 87 else 88 CVO_OS=$cvo_KERN`uname -r` 89 90 fi 91 ;; 92 nto) # QNX 93 CVO_KOSVER=`uname -r` 94 ;; 95 *) 96 echo "gronk - I don't understand <$CVO>!" 97 exit 1 98 ;; 99 esac 100 ;; 101 3) CVO_CPU=$1 102 CVO_VENDOR=$2 103 CVO_OS=$3 104 ;; 105 *) echo "gronk - config.guess returned $# pieces, not 3 pieces!" 106 exit 1 107 ;; 108esac 109 110case "$CVO_OS" in 111 cygwin) 112 # Decisions, decisions. 113 # uname -r is the cygwin version #, eg: 1.3.3(0.46/3/2) 114 # uname -s returns something like CYGWIN_NT-5.0 115 CVO_OS="$CVO_OS`uname -r | sed 's/(.*//'`" 116 ;; 117esac 118set `echo $CVO_OS | sed 's/\([0-9]\)/ \1/'` 119 120case "$#" in 121 2) ;; 122 *) echo "gronk - <$CVO_OS> expanded to $#, not 2 pieces!" 123 exit 1 124 ;; 125esac 126 127CVO_OSNAME=$1 128CVO_OSVER=$2 129 130case "$CVO_OSNAME" in 131 solaris) 132 CVO_KOSVER=`uname -v` 133 ;; 134esac 135 136CVO=$CVO_CPU-$CVO_VENDOR-$CVO_OS 137 138case "$TS" in 139 '') 140 set | grep CVO 141 ;; 142 *) 143 # keys['cvo'] = "cvo.CVO['CVO']" 144 TS=`echo $TS | sed -e s/@cvo@/$CVO/g` 145 # keys['cpu'] = "cvo.CVO['CVO_CPU']" 146 TS=`echo $TS | sed -e s/@cpu@/$CVO_CPU/g` 147 # keys['kosver'] = "cvo.CVO['CVO_KOSVER']" 148 TS=`echo $TS | sed -e s/@kosver@/$CVO_KOSVER/g` 149 # keys['os'] = "cvo.CVO['CVO_OS']" 150 TS=`echo $TS | sed -e s/@os@/$CVO_OS/g` 151 # keys['osname'] = "cvo.CVO['CVO_OSNAME']" 152 TS=`echo $TS | sed -e s/@osname@/$CVO_OSNAME/g` 153 # keys['osver'] = "cvo.CVO['CVO_OSVER']" 154 TS=`echo $TS | sed -e s/@osver@/$CVO_OSVER/g` 155 # keys['vendor'] = "cvo.CVO['CVO_VENDOR']" 156 TS=`echo $TS | sed -e s/@vendor@/$CVO_VENDOR/g` 157 # keys['raw'] = "cvo.CVO['CVO_raw']" 158 TS=`echo $TS | sed -e s/@raw@/$CVO_raw/g` 159 160 echo $TS 161 ;; 162esac 163