diff options
Diffstat (limited to 'scripts/config-uname.sh')
-rwxr-xr-x | scripts/config-uname.sh | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/scripts/config-uname.sh b/scripts/config-uname.sh new file mode 100755 index 0000000000..cf32ca53bf --- /dev/null +++ b/scripts/config-uname.sh @@ -0,0 +1,50 @@ +#!/bin/sh + +config_os=$1 +config_release=$2 +uname_machine=$3 + +uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'` +if test $uname_sysname != $config_os; then + config_release=`echo $config_os | sed s/$uname_sysname//` +fi + +if test -r /vmunix; then + kernel_id=`strings /vmunix | grep UNIX` +elif test -r /dynix; then + kernel_id=`strings /dynix | grep DYNIX` +else + kernel_id= +fi + +kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'` +if test x`echo "$config_release" | sed "s/^$kernel_release//"` \ + != x$config_release; then + # The configuration release is a substring of the kernel release. + uname_release=$kernel_release +elif test x$config_release != x; then + uname_release=$config_release +elif test x$kernel_release != x; then + uname_release=$kernel_release +else + uname_release=unknown +fi + +kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'` +if test -n "$kernel_version"; then + uname_version="$kernel_version" +else + uname_version=unknown +fi + +cat <<EOF +/* This file is generated by $0. DO NOT EDIT. + + This is used only by the generic uname function for systems with no real + uname call. If this data is not correct, it does not matter much. */ + +#define UNAME_SYSNAME "$uname_sysname" +#define UNAME_RELEASE "$uname_release" +#define UNAME_VERSION "$uname_version" +#define UNAME_MACHINE "$uname_machine" +EOF |