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