aboutsummaryrefslogtreecommitdiff
path: root/scripts/cvo.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/cvo.sh')
-rwxr-xr-xscripts/cvo.sh150
1 files changed, 150 insertions, 0 deletions
diff --git a/scripts/cvo.sh b/scripts/cvo.sh
new file mode 100755
index 000000000000..a8d00ef6cb4f
--- /dev/null
+++ b/scripts/cvo.sh
@@ -0,0 +1,150 @@
+#! /bin/sh
+
+# Copyright 2002, 2009, 2010 Harlan Stenn. Used by NTP with permission.
+# Author: Harlan Stenn <harlan+cvo@pfcs.com>
+
+# Possible output formats:
+#
+# CVO=... Shell variable
+# CVO=... ; export CVO Old-style exported envariable
+# export CVO=... New-style exported envariable
+# setenv CVO ... csh-style exported envariable
+
+TS="$*"
+
+CVO_raw=`config.guess`
+CVO=$CVO_raw
+
+set 1 `echo $CVO | tr '-' ' '`
+shift
+
+case "$#" in
+ 4) # eg: i686-pc-linux-gnu
+ CVO_CPU=$1
+ CVO_VENDOR=$2
+ cvo_KERN=$3 # Note the capitalization...
+ CVO_OS=$4
+ case "$cvo_KERN" in
+ linux) # Braindamage. We want OS, not kernel info
+ if lsb_release > /dev/null 2>&1
+ then
+ CVO_OS=`lsb_release --id --short | tr '[:upper:]' '[:lower:]'`
+ CVO_OS="$CVO_OS`lsb_release --release --short`"
+ elif test -f /etc/debian_version
+ then
+ set `cat /etc/debian_version`
+ CVO_OS=debian$1
+ CVO_KOSVER=`uname -r`
+ elif test -f /etc/mandrake-release
+ then
+ set `cat /etc/mandrake-release`
+ CVO_OS=mandrake$4
+ CVO_KOSVER=`uname -r`
+ elif test -f /etc/redhat-release
+ then
+ set `cat /etc/redhat-release`
+ case "$1" in
+ CentOS)
+ CVO_OS=centos$3
+ ;;
+ Fedora)
+ CVO_OS=fedora$3
+ ;;
+ *)
+ case "$3" in
+ Enterprise)
+ CVO_OS=redhat$7.E
+ ;;
+ Linux)
+ CVO_OS=redhat$5
+ ;;
+ esac
+ ;;
+ esac
+ CVO_KOSVER=`uname -r`
+ elif test -f /etc/slackware-version
+ then
+ set `cat /etc/slackware-version`
+ CVO_OS=slackware$2
+ CVO_KOSVER=`uname -r`
+ elif test -f /etc/SuSE-release
+ then
+ set `cat /etc/SuSE-release`
+ CVO_OS=suse$9
+ CVO_KOSVER=`uname -r`
+ else
+ CVO_OS=$cvo_KERN`uname -r`
+
+ fi
+ ;;
+ nto) # QNX
+ CVO_KOSVER=`uname -r`
+ ;;
+ *)
+ echo "gronk - I don't understand <$CVO>!"
+ exit 1
+ ;;
+ esac
+ ;;
+ 3) CVO_CPU=$1
+ CVO_VENDOR=$2
+ CVO_OS=$3
+ ;;
+ *) echo "gronk - config.guess returned $# pieces, not 3 pieces!"
+ exit 1
+ ;;
+esac
+
+case "$CVO_OS" in
+ cygwin)
+ # Decisions, decisions.
+ # uname -r is the cygwin version #, eg: 1.3.3(0.46/3/2)
+ # uname -s returns something like CYGWIN_NT-5.0
+ CVO_OS="$CVO_OS`uname -r | sed 's/(.*//'`"
+ ;;
+esac
+set `echo $CVO_OS | sed 's/\([0-9]\)/ \1/'`
+
+case "$#" in
+ 2) ;;
+ *) echo "gronk - <$CVO_OS> expanded to $#, not 2 pieces!"
+ exit 1
+ ;;
+esac
+
+CVO_OSNAME=$1
+CVO_OSVER=$2
+
+case "$CVO_OSNAME" in
+ solaris)
+ CVO_KOSVER=`uname -v`
+ ;;
+esac
+
+CVO=$CVO_CPU-$CVO_VENDOR-$CVO_OS
+
+case "$TS" in
+ '')
+ set | grep CVO
+ ;;
+ *)
+ # keys['cvo'] = "cvo.CVO['CVO']"
+ TS=`echo $TS | sed -e s/@cvo@/$CVO/g`
+ # keys['cpu'] = "cvo.CVO['CVO_CPU']"
+ TS=`echo $TS | sed -e s/@cpu@/$CVO_CPU/g`
+ # keys['kosver'] = "cvo.CVO['CVO_KOSVER']"
+ TS=`echo $TS | sed -e s/@kosver@/$CVO_KOSVER/g`
+ # keys['os'] = "cvo.CVO['CVO_OS']"
+ TS=`echo $TS | sed -e s/@os@/$CVO_OS/g`
+ # keys['osname'] = "cvo.CVO['CVO_OSNAME']"
+ TS=`echo $TS | sed -e s/@osname@/$CVO_OSNAME/g`
+ # keys['osver'] = "cvo.CVO['CVO_OSVER']"
+ TS=`echo $TS | sed -e s/@osver@/$CVO_OSVER/g`
+ # keys['vendor'] = "cvo.CVO['CVO_VENDOR']"
+ TS=`echo $TS | sed -e s/@vendor@/$CVO_VENDOR/g`
+ # keys['raw'] = "cvo.CVO['CVO_raw']"
+ TS=`echo $TS | sed -e s/@raw@/$CVO_raw/g`
+
+ echo $TS
+ ;;
+esac