GuessOS

Jamey Sharp jamey at gabe.freedesktop.org
Mon Oct 31 15:09:10 PST 2005


Update of /cvs/xtest/xtest/src/helpers
In directory gabe:/tmp/cvs-serv27930/src/helpers

Added Files:
	GuessOS sigtool 
Log Message:
Importing TET 3.3h (unsupported) sources from http://tetworks.opengroup.org/tet/tet3.3h-unsup.src.tgz.
Omitted the contrib directory: we don't care, and the license situation wasn't entirely clear.


--- NEW FILE: sigtool ---
:
#	SCCS: @(#)sigtool	1.4 (98/09/08)
#
#	UniSoft Ltd., London, England
#
# Copyright (c) 1998 The Open Group
# All rights reserved.
#
# No part of this source code may be reproduced, stored in a retrieval
# system, or transmitted, in any form or by any means, electronic,
# mechanical, photocopying, recording or otherwise, except as stated in
# the end-user licence agreement, without the prior permission of the
# copyright owners.
# A copy of the end-user licence agreement is contained in the file
# Licence which accompanies this distribution.
# 
# Motif, OSF/1, UNIX and the "X" device are registered trademarks and
# IT DialTone and The Open Group are trademarks of The Open Group in
# the US and other countries.
#
# X/Open is a trademark of X/Open Company Limited in the UK and other
# countries.
#
# ************************************************************************
#
# SCCS:   	@(#)sigtool	1.4 98/09/08 TETware release 3.3
# NAME:		sigtool
# PRODUCT:	TETware
# AUTHOR:	Andrew Dingwall, UniSoft Ltd.
# DATE CREATED:	September 1998
#
# DESCRIPTION:
#	Shell script to generate the signal lists used in a defines.mk
#	file when building the xpg3sh API.
#
#	usage:
#		[CC=cc-name] sh sigtool [cc-options ...]
#
#	This script creates a small C program and compiles it.
#	If the C compiler is not called cc on your system, you should set
#	the CC environment variable to the name of the C compiler.
#
#	On most systems, cc-options are not required.
#	Indeed, since this script looks for the value of NSIG (or _NSIG)
#	in <signal.h>, options that enable ANSI C or feature test macros that
#	restrict the namespace should not be specified.
# 
# MODIFICATIONS:
# 
# ************************************************************************


# don't run this script on a Win32 system
case `uname -s` in
Windows_NT|Windows_95|DOS)
	echo "$0: Win32 systems do not really support signals" 1>&2
	echo "$0: use the signal values defined in src/defines/msc+mks.mk" 1>&2
	exit 1
	;;
esac

# temporary file names
tmp1_c=tmp$$-1.c
tmp2_c=tmp$$-2.c
tmp3_c=tmp$$-3.c
tmp4=tmp$$-4
tmp5=tmp$$-5

# arrange to clean up on exit
trap 's=$?; rm -f $tmp1_c $tmp2_c $tmp3_c $tmp4 $tmp5; exit $s' 0
trap 'exit $?' 1 2 3 13 15

# lists of signal names
std_sigs1="SIGHUP SIGINT SIGQUIT SIGILL SIGABRT SIGFPE SIGPIPE SIGALRM"
std_sigs2="SIGTERM SIGUSR1 SIGUSR2 SIGTSTP SIGCONT SIGTTIN SIGTTOU"
spec_sigs="SIGKILL SIGCHLD SIGSTOP SIGSEGV"


# generate the signal evaluation program
for sig in $std_sigs1 $std_sigs2
do
	cat <<!EOF
#ifdef $sig
	(void) printf(" %d", $sig);
#else
	(void) printf(" $sig");
#endif
!EOF
done > $tmp1_c

for sig in $spec_sigs
do
	cat <<!EOF
#ifdef $sig
	(void) printf(" %d", $sig);
#else
	(void) printf(" $sig");
#endif
!EOF
done > $tmp2_c

cat > $tmp3_c <<!EOF
#include <stdio.h>
#include <signal.h>
int main()
{
	(void) printf("SH_STD_SIGNALS =");
#include "$tmp1_c"
	(void) printf("\nSH_SPEC_SIGNALS =");
#include "$tmp2_c"
	(void) printf("\nSH_NSIG = ");
#ifdef NSIG
	(void) printf("%d", NSIG);
#else
#  ifdef _NSIG
	(void) printf("%d", _NSIG);
#  else
	(void) printf("NSIG");
#  endif
#endif
	(void) printf("\n");
	return(0);
}
!EOF

# compile the signal evaluation program
${CC:-cc} $* -o $tmp4 $tmp3_c
if test $? -ne 0
then
	echo "$0: can't compile signal evaluation program" 1>&2
	(exit 1)
	exit 1
fi

# generate the awk script
cat > $tmp5 <<!EOF
BEGIN {
	printf("# The following signal values have been generated by sigtool.\n");
	printf("# It is assumed that the shell is capable of trapping all\n");
	printf("# the signals except $spec_sigs\n");
	printf("# If this is not true on your system you will need to edit\n");
	printf("# the values that follow.\n\n");
	errors = 0;
	done_std_sigs = 0;
	done_spec_sigs = 0;
	done_nsig = 0;
}

\$2 != "=" {
	next;
}

\$1 == "SH_STD_SIGNALS" {
	printf("# standard signals:\n");
	printf("# $std_sigs1\n");
	printf("# $std_sigs2\n");
	done_std_sigs = 1;
}

\$1 == "SH_SPEC_SIGNALS" {
	printf("# signals that cannot be handled by the shell:\n");
	printf("# $spec_sigs\n");
	done_spec_sigs = 1;
}

\$1 == "SH_NSIG" {
	printf("# highest signal number supported by the shell + 1\n");
	done_nsig = 1;
}

{
	for (n = 3; n <= NF; n++)
		if (\$n ~ /[^0-9]/) {
			printf("*** cannot determine a value for %s\n", \$n);
			errors++;
		}
	printf("%s\n\n", \$0);
}

END {
	if (errors || !done_std_sigs || !done_spec_sigs || !done_nsig) {
		printf("You will need to supply the values that could not\n");
		printf("be determined automatically by sigtool.\n");
		printf("For details, please refer to the TETware Installation\n");
		printf("Guide for UNIX Operating Systems.\n");
	}
}
!EOF

# finally, generate the signal lists
./$tmp4 | awk -f $tmp5


--- NEW FILE: GuessOS ---
:
#
# SCCS: @(#)GuessOS	1.3 (99/03/31) supplied with TETware Release 3.3
# 
# ====================================================================
# Copyright (c) 1995-1997 The Apache Group.  All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer. 
#
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in
#    the documentation and/or other materials provided with the
#    distribution.
#
# 3. All advertising materials mentioning features or use of this
#    software must display the following acknowledgment:
#    "This product includes software developed by the Apache Group
#    for use in the Apache HTTP server project (http://www.apache.org/)."
#
# 4. The names "Apache Server" and "Apache Group" must not be used to
#    endorse or promote products derived from this software without
#    prior written permission.
#
# 5. Redistributions of any form whatsoever must retain the following
#    acknowledgment:
#    "This product includes software developed by the Apache Group
#    for use in the Apache HTTP server project (http://www.apache.org/)."
#
# THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE APACHE GROUP OR
# ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
# OF THE POSSIBILITY OF SUCH DAMAGE.
# ====================================================================
#
# This software consists of voluntary contributions made by many
# individuals on behalf of the Apache Group and was originally based
# on public domain software written at the National Center for
# Supercomputing Applications, University of Illinois, Urbana-Champaign.
# For more information on the Apache Group and the Apache HTTP server
# project, please see <http://www.apache.org/>.
#

# Simple OS/Platform guesser. Similar to config.guess but
# much, much smaller. Since it was developed for use with
# Apache, it follows under Apache's regular licensing
# with one specific addition: Any changes or additions
# to this script should be Emailed to the Apache
# group (apache at apache.org) in general and to
# Jim Jagielski (jim at jaguNET.com) in specific.
#
# Be as similar to the output of config.guess/config.sub
# as possible.

# 5th November 1998 , add in support for Solaris 7

# 7 March 2000, add in support for Solaris 8

# First get uname entries that we use below

MACHINE=`(uname -m) 2>/dev/null` || MACHINE="unknown"
RELEASE=`(uname -r) 2>/dev/null` || RELEASE="unknown"
SYSTEM=`(uname -s) 2>/dev/null`  || SYSTEM="unknown"
VERSION=`(uname -v) 2>/dev/null` || VERSION="unknown"


# Now test for ISC and SCO, since it is has a braindamaged uname.
#
# We need to work around FreeBSD 1.1.5.1 
XREL=`uname -X 2>/dev/null | grep "^Release" | awk '{print $3}'`
if [ "x$XREL" != "x" ]; then
    if [ -f /etc/kconfig ]; then
	case "$XREL" in
	    4.0|4.1)
		    echo "${MACHINE}-whatever-isc4"; exit 0
		;;
	esac
    else
	case "$XREL" in
	    3.2v4.2)
		echo "whatever-whatever-sco3"; exit 0
		;;
	    3.2v5.0*)
		echo "whatever-whatever-sco5"; exit 0
		;;
	    4.2MP)
		if [ "x$VERSION" = "x2.1.1" ]; then
		    echo "${MACHINE}-whatever-unixware211"; exit 0
		elif [ "x$VERSION" = "x2.1.2" ]; then
		    echo "${MACHINE}-whatever-unixware212"; exit 0
		else
		    echo "${MACHINE}-whatever-unixware2"; exit 0
		fi
		;;
	    4.2)
		echo "whatever-whatever-unixware1"; exit 0
		;;
	    5)
	        if [ "x$SYSTEM" = "xUnixWare" ]; then
	           echo "${MACHINE}-whatever-unixware7"; exit 0
	        fi
		;;    
	esac
    fi
fi
# Now we simply scan though... In most cases, the SYSTEM info is enough
#
case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
    A/UX:*)
	echo "m68k-apple-aux3"; exit 0
	;;

    AIX:*)
	echo "${MACHINE}-ibm-aix${VERSION}.${RELEASE}"; exit 0
	;;

    dgux:*)
	echo "${MACHINE}-dg-dgux"; exit 0
	;;

    HI-UX:*)
	echo "${MACHINE}-hi-hiux"; exit 0
	;;

    HP-UX:*)
	HPUXVER=`echo ${RELEASE}|sed -e 's/[^.]*.[0B]*//'`
	case "$HPUXVER" in
	    10.*)
		echo "${MACHINE}-hp-hpux10."; exit 0
		;;
	    *)
		echo "${MACHINE}-hp-hpux"; exit 0
		;;
	esac
	;;

    IRIX:*)
	echo "${MACHINE}-sgi-irix"; exit 0
	;;

    IRIX64:*)
	echo "${MACHINE}-sgi-irix64"; exit 0
	;;

    Linux:[2-9].*)
	echo "${MACHINE}-whatever-linux2"; exit 0
	;;

    Linux:1.*)
	echo "${MACHINE}-whatever-linux1"; exit 0
	;;

    LynxOS:*)
	echo "${MACHINE}-lynx-lynxos"; exit 0
	;;

    BSD/386:*:*:*486*|BSD/OS:*:*:*:*486*)
	echo "i486-whatever-bsdi"; exit 0
	;;

    BSD/386:*|BSD/OS:*)
	echo "${MACHINE}-whatever-bsdi"; exit 0
	;;

    FreeBSD:*:*:*486*)
	echo "i486-whatever-freebsd"; exit 0
	;;

    FreeBSD:*)
	echo "${MACHINE}-whatever-freebsd"; exit 0
	;;

    NetBSD:*:*:*486*)
	echo "i486-whatever-netbsd"; exit 0
	;;

    NetBSD:*)
	echo "${MACHINE}-whatever-netbsd"; exit 0
	;;

    OpenBSD:*)
	echo "${MACHINE}-whatever-openbsd"; exit 0
	;;

    OSF1:*:*:*alpha*)
	case "$RELEASE" in
	    V4*|X4*)
		echo "${MACHINE}-dec-osf4"
		;;
	    *)
		echo "${MACHINE}-dec-osf"
		;;
	esac
	exit 0
	;;

    QNX:*)
	case "$VERSION" in
	    423)
		echo "${MACHINE}-qssl-qnx32"
		;;
	    *)
		echo "${MACHINE}-qssl-qnx"
		;;
	esac
	exit 0
	;;

    Paragon*:*:*:*)
	echo "i860-intel-osf1"; exit 0
	;;

    SunOS:5.8:*)
	echo "${MACHINE}-sun-solaris8"; exit 0
	;;
    SunOS:5.7:*)
	echo "${MACHINE}-sun-solaris7"; exit 0
	;;

    SunOS:5.*)
	echo "${MACHINE}-sun-solaris2"; exit 0
	;;

    SunOS:*)
	echo "${MACHINE}-sun-sunos4"; exit 0
	;;

    UNIX_System_V:4.*:*)
	echo "${MACHINE}-whatever-sysv4"; exit 0
	;;

    *:4*:R4*:m88k)
	echo "${MACHINE}-whatever-sysv4"; exit 0
	;;

    DYNIX/ptx:4*:*)
	echo "${MACHINE}-whatever-sysv4"; exit 0
	;;

    *:4.0:3.0:3[34]?? | *:4.0:3.0:3[34]??,*)
	echo "i486-ncr-sysv4"; exit 0
	;;

    ULTRIX:*)
	echo "${MACHINE}-unknown-ultrix"; exit 0
	;;

    SINIX*)
	echo "${MACHINE}-sni-sysv4"; exit 0
	;;

    machten:*)
       echo "${MACHINE}-tenon-${SYSTEM}"; exit 0;
       ;;

    library:*)
	echo "${MACHINE}-ncr-sysv4"; exit 0
	;;

    ConvexOS:*:11.*:*)
	echo "${MACHINE}-v11-${SYSTEM}"; exit 0;
	;;
    
    UNIX_SV:*:*:maxion)
	echo "${MACHINE}-ccur-sysv4"; exit 0;
	;;
    
    NonStop-UX:4.[02]*:[BC]*:*)
	echo "${MACHINE}-tandem-sysv4"; exit 0;
	;;

    MPE/iX:*)
	echo "${SYSTEM}-${RELEASE}-${VERSION}" | tr -d ' '; exit 0;
	;;
esac

#
# Ugg. These are all we can determine by what we know about
# the output of uname. Be more creative:
#

# Do the Apollo stuff first. Here, we just simply assume
# that the existance of the /usr/apollo directory is proof
# enough
if [ -d /usr/apollo ]; then
    echo "whatever-apollo-whatever"
    exit 0
fi

# Now NeXT
ISNEXT=`hostinfo 2>/dev/null`
case "$ISNEXT" in
    *NeXT*)
	echo "whatever-next-nextstep"; exit 0
	;;
esac

# At this point we gone through all the one's
# we know of: Punt

echo "${MACHINE}-whatever-${SYSTEM}|${RELEASE}|${VERSION}" 
exit 0



More information about the xorg-test-commit mailing list