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