From 3e642e03c47a1b4151f96847fb9d5460a910267b Mon Sep 17 00:00:00 2001 From: dborca <> Date: Mon, 5 May 2003 07:12:48 +0000 Subject: [PATCH] no message --- glide3x/Makefile.DJ | 15 +- glide3x/chores.3dfx | 1 + glide3x/config.guess | 1066 ++++++++++++-------- glide3x/config.sub | 529 +++++++--- glide3x/configure.in | 6 +- glide3x/depcomp | 464 +++++++++ glide3x/h3/glide3/src/cpudtect.S | 23 +- glide3x/h3/glide3/src/fifo.c | 5 +- glide3x/h3/glide3/src/fxgasm.c | 2 +- glide3x/h3/glide3/src/fxglide.h | 16 +- glide3x/h3/glide3/src/g3df.c | 5 +- glide3x/h3/glide3/src/gdraw.c | 5 +- glide3x/h3/glide3/src/gerror.c | 6 + glide3x/h3/glide3/src/gsst.c.save | 11 +- glide3x/h3/glide3/src/gthread.c | 42 + glide3x/h3/glide3/src/makefile.autoconf.am | 51 +- glide3x/h3/glide3/src/xdraw2.S | 60 +- glide3x/h3/glide3/src/xdraw2.inc.S | 37 +- glide3x/h3/glide3/src/xdraw3.S | 243 +++-- glide3x/h3/glide3/src/xtexdl.S | 20 +- glide3x/h3/minihwc/dos_mode.c | 40 +- glide3x/h3/minihwc/minihwc.c | 18 +- glide3x/h5/glide3/src/cpuid.c | 40 +- glide3x/h5/glide3/src/diglide.c | 8 + glide3x/h5/glide3/src/gpci.c | 14 +- glide3x/h5/glide3/src/gsst.c | 2 +- glide3x/h5/glide3/src/makefile.autoconf.am | 35 +- glide3x/install-sh | 163 ++- glide3x/ltmain.sh | 12 +- glide3x/missing | 166 ++- glide3x/mkinstalldirs | 111 +- 31 files changed, 2269 insertions(+), 947 deletions(-) create mode 100644 glide3x/depcomp diff --git a/glide3x/Makefile.DJ b/glide3x/Makefile.DJ index ccc8014..0d081c2 100644 --- a/glide3x/Makefile.DJ +++ b/glide3x/Makefile.DJ @@ -80,8 +80,13 @@ endif ifeq ($(FX_GLIDE_HW),h5) GENDATE = h5/incsrc/gendate.h CFLAGS += -DFX_GLIDE_H5_CSIM=1 -DFX_GLIDE_NAPALM=1 +GLIDE_CPUID = \ + h5/glide3/src/cpuid.c +else +ifeq ($(FX_GLIDE_HW),h3) +GLIDE_CPUID = \ + h3/glide3/src/cpudtect.S else -ifneq ($(FX_GLIDE_HW),h3) $(error Invalid ASIC) endif endif @@ -118,7 +123,7 @@ GLIDE_SOURCES = \ $(FX_GLIDE_HW)/glide3/src/distrip.c \ $(FX_GLIDE_HW)/glide3/src/diget.c \ $(FX_GLIDE_HW)/glide3/src/glfb.o \ - $(FX_GLIDE_HW)/glide3/src/gsst.c \ + $(FX_GLIDE_HW)/glide3/src/gsst.o \ $(FX_GLIDE_HW)/glide3/src/gtex.c \ $(FX_GLIDE_HW)/glide3/src/gtexdl.c \ $(FX_GLIDE_HW)/glide3/src/fifo.c \ @@ -126,7 +131,7 @@ GLIDE_SOURCES = \ $(GLIDE_K3D) \ $(GLIDE_ASM) \ $(FX_GLIDE_HW)/glide3/src/xtexdl_def.c \ - $(FX_GLIDE_HW)/glide3/src/cpuid.c \ + $(GLIDE_CPUID) \ h3/cinit/h3cinit.c \ h3/cinit/h3cinit2.c \ $(FX_GLIDE_SW)/newpci/pcilib/fxpci.c \ @@ -157,7 +162,7 @@ $(GLIDE_LIBDIR)/$(GLIDE_DXE) $(GLIDE_LIBDIR)/$(GLIDE_IMP): $(GLIDE_OBJECTS) ifeq ($(HAVEDXE3),) $(warning Missing DXE3 package... Skipping $(GLIDE_DXE)) else - -dxe3gen -o $(GLIDE_LIBDIR)/$(GLIDE_DXE) -I $(GLIDE_LIBDIR)/$(GLIDE_IMP) -D "Glide3/$(FX_GLIDE_HW) DJGPP" -E _gr -E _gu -U $(GLIDE_OBJECTS) + -dxe3gen -o $(GLIDE_LIBDIR)/$(GLIDE_DXE) -Y $(GLIDE_LIBDIR)/$(GLIDE_IMP) -D "Glide3/$(FX_GLIDE_HW) DJGPP" -E _gr -E _gu -U $(GLIDE_OBJECTS) endif ############################################################################### @@ -167,6 +172,8 @@ h3/glide3/src/gglide.o: h3/glide3/src/gglide.c.save $(CC) -o $@ $(CFLAGS) -x c -c $< h3/glide3/src/glfb.o: h3/glide3/src/glfb.c.save $(CC) -o $@ $(CFLAGS) -x c -c $< +h3/glide3/src/gsst.o: h3/glide3/src/gsst.c.save + $(CC) -o $@ $(CFLAGS) -x c -c $< $(FX_GLIDE_HW)/glide3/src/xtexdl_3dnow.o: $(FX_GLIDE_HW)/glide3/src/xtexdl.S $(CC) -o $@ $(CFLAGS) -c $< $(FX_GLIDE_HW)/glide3/src/xdraw2_def.o: $(FX_GLIDE_HW)/glide3/src/xdraw2.S diff --git a/glide3x/chores.3dfx b/glide3x/chores.3dfx index 07ecdec..903ff63 100755 --- a/glide3x/chores.3dfx +++ b/glide3x/chores.3dfx @@ -1,4 +1,5 @@ #!/bin/sh -f + do_nothing() { return 0; } diff --git a/glide3x/config.guess b/glide3x/config.guess index e1b5871..4fc21ec 100755 --- a/glide3x/config.guess +++ b/glide3x/config.guess @@ -1,8 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999 -# Free Software Foundation, Inc. -# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + +timestamp='2003-01-30' + # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or @@ -22,99 +24,265 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -# Written by Per Bothner . -# The master version of this file is at the FSF in /home/gd/gnu/lib. -# Please send patches to . +# Originally written by Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you -# don't specify an explicit system type (host/target name). -# -# Only a few systems have been added to this list; please add others -# (but try to keep the structure clean). -# +# don't specify an explicit build system type. -# Use $HOST_CC if defined. $CC may point to a cross-compiler -if test x"$CC_FOR_BUILD" = x; then - if test x"$HOST_CC" != x; then - CC_FOR_BUILD="$HOST_CC" - else - if test x"$CC" != x; then - CC_FOR_BUILD="$CC" - else - CC_FOR_BUILD=cc - fi - fi +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 fi +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 8/24/94.) +# (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -dummy=dummy-$$ -trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15 - # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit 0 ;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + macppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvmeppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + pmax:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sgi:OpenBSD:*:*) + echo mipseb-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sun3:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + wgrisc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:MicroBSD:*:*) + echo ${UNAME_MACHINE}-unknown-microbsd${UNAME_RELEASE} + exit 0 ;; alpha:OSF1:*:*) if test $UNAME_RELEASE = "V4.0"; then UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` fi + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - cat <$dummy.s - .globl main - .ent main -main: - .frame \$30,0,\$26,0 - .prologue 0 - .long 0x47e03d80 # implver $0 - lda \$2,259 - .long 0x47e20c21 # amask $2,$1 - srl \$1,8,\$2 - sll \$2,2,\$2 - sll \$0,3,\$0 - addl \$1,\$0,\$0 - addl \$2,\$0,\$0 - ret \$31,(\$26),1 - .end main -EOF - $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null - if test "$?" = 0 ; then - ./$dummy - case "$?" in - 7) - UNAME_MACHINE="alpha" - ;; - 15) - UNAME_MACHINE="alphaev5" - ;; - 14) - UNAME_MACHINE="alphaev56" - ;; - 10) - UNAME_MACHINE="alphapca56" - ;; - 16) - UNAME_MACHINE="alphaev6" - ;; - esac - fi - rm -f $dummy.s $dummy echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; Alpha\ *:Windows_NT*:*) @@ -127,34 +295,13 @@ EOF echo alpha-dec-winnt3.5 exit 0 ;; Amiga*:UNIX_System_V:4.0:*) - echo m68k-cbm-sysv4 + echo m68k-unknown-sysv4 exit 0;; - amiga:NetBSD:*:*) - echo m68k-cbm-netbsd${UNAME_RELEASE} - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit 0 ;; - arc64:OpenBSD:*:*) - echo mips64el-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hkmips:OpenBSD:*:*) - echo mips-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mips-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos exit 0 ;; *:OS/390:*:*) echo i370-ibm-openedition @@ -162,10 +309,7 @@ EOF arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; - arm32:NetBSD:*:*) - echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - exit 0 ;; - SR2?01:HI-UX/MPP:*:*) + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) @@ -179,6 +323,10 @@ EOF NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; + DRS?6000:UNIX_SV:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7 && exit 0 ;; + esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; @@ -207,7 +355,7 @@ EOF echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; sun*:*:4.2BSD:*) - UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) @@ -221,15 +369,9 @@ EOF aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit 0 ;; - atari*:NetBSD:*:*) - echo m68k-atari-netbsd${UNAME_RELEASE} - exit 0 ;; - atari*:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor + # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not @@ -253,30 +395,9 @@ EOF *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; - sun3*:NetBSD:*:*) - echo m68k-sun-netbsd${UNAME_RELEASE} - exit 0 ;; - sun3*:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:NetBSD:*:*) - echo m68k-apple-netbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; - macppc:NetBSD:*:*) - echo powerpc-apple-netbsd${UNAME_RELEASE} - exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit 0 ;; @@ -290,8 +411,10 @@ EOF echo clipper-intergraph-clix${UNAME_RELEASE} exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus +#include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { @@ -310,12 +433,20 @@ EOF exit (-1); } EOF - $CC_FOR_BUILD $dummy.c -o $dummy \ - && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy + $CC_FOR_BUILD -o $dummy $dummy.c \ + && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && exit 0 echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit 0 ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit 0 ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit 0 ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit 0 ;; @@ -331,7 +462,7 @@ EOF AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110] + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] @@ -363,11 +494,20 @@ EOF ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i?86:AIX:*:*) + i*86:AIX:*:*) echo i386-ibm-aix exit 0 ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include @@ -379,8 +519,7 @@ EOF exit(0); } EOF - $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 @@ -388,9 +527,9 @@ EOF echo rs6000-ibm-aix3.2 fi exit 0 ;; - *:AIX:*:4) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` - if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc @@ -398,7 +537,7 @@ EOF if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=4.${UNAME_RELEASE} + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit 0 ;; @@ -408,7 +547,7 @@ EOF ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit 0 ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) @@ -424,11 +563,30 @@ EOF echo m68k-hp-bsd4.4 exit 0 ;; 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) - sed 's/^ //' << EOF >$dummy.c + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE #include #include @@ -459,13 +617,29 @@ EOF exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` - rm -f $dummy.c $dummy + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; esac - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + if [ ${HP_ARCH} = "hppa2.0w" ] + then + # avoid double evaluation of $set_cc_for_build + test -n "$CC_FOR_BUILD" || eval $set_cc_for_build + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit 0 ;; 3050*:HI-UX:*:*) + eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int @@ -491,8 +665,7 @@ EOF exit (0); } EOF - $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) @@ -501,7 +674,7 @@ EOF 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit 0 ;; - *9??*:MPE/iX:*:*) + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit 0 ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) @@ -510,7 +683,7 @@ EOF hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit 0 ;; - i?86:OSF1:*:*) + i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else @@ -520,9 +693,6 @@ EOF parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit 0 ;; - hppa*:OpenBSD:*:*) - echo hppa-unknown-openbsd - exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit 0 ;; @@ -541,41 +711,34 @@ EOF C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit 0 ;; - CRAY*X-MP:*:*:*) - echo xmp-cray-unicos - exit 0 ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3E:*:*:*) - echo alpha-cray-unicosmk${UNAME_RELEASE} + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; - CRAY-2:*:*:*) - echo cray2-cray-unicos - exit 0 ;; - F300:UNIX_System_V:*:*) + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + *:UNICOS/mp:*:*) + echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; - F301:UNIX_System_V:*:*) - echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` - exit 0 ;; - hp3[0-9][05]:NetBSD:*:*) - echo m68k-hp-netbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - i?86:BSD/386:*:* | i?86:BSD/OS:*:*) + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; sparc*:BSD/OS:*:*) @@ -585,19 +748,18 @@ EOF echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) - if test -x /usr/bin/objformat; then - if test "elf" = "`/usr/bin/objformat`"; then - echo ${UNAME_MACHINE}-unknown-freebsdelf`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'` - exit 0 - fi - fi - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; - *:NetBSD:*:*) - echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'` - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + # Determine whether the default compiler uses glibc. + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #if __GLIBC__ >= 2 + LIBC=gnu + #else + LIBC= + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin @@ -605,11 +767,20 @@ EOF i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit 0 ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit 0 ;; + x86:Interix*:3*) + echo i586-pc-interix3 + exit 0 ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit 0 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? - echo i386-pc-interix + echo i586-pc-interix exit 0 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin @@ -623,201 +794,159 @@ EOF *:GNU:*:*) echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; - *:Linux:*:*) - + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit 0 ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + mips:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips + #undef mipsel + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mipsel + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + ;; + mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips64 + #undef mips64el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mips64el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips64 + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit 0 ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit 0 ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit 0 ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit 0 ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit 0 ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit 0 ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit 0 ;; + i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. - ld_help_string=`cd /; ld --help 2>&1` - ld_supported_emulations=`echo $ld_help_string \ - | sed -ne '/supported emulations:/!d + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ + | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g - s/.*supported emulations: *// + s/.*supported targets: *// s/ .*// p'` - case "$ld_supported_emulations" in - *ia64) - echo "${UNAME_MACHINE}-unknown-linux" - exit 0 + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; - i?86linux) + a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 - ;; - i?86coff) + exit 0 ;; + coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 - ;; - sparclinux) - echo "${UNAME_MACHINE}-unknown-linux-gnuaout" - exit 0 - ;; - armlinux) - echo "${UNAME_MACHINE}-unknown-linux-gnuaout" - exit 0 - ;; - elf32arm*) - echo "${UNAME_MACHINE}-unknown-linux-gnu" - exit 0 - ;; - armelf_linux*) - echo "${UNAME_MACHINE}-unknown-linux-gnu" - exit 0 - ;; - m68klinux) - echo "${UNAME_MACHINE}-unknown-linux-gnuaout" - exit 0 - ;; - elf32ppc) - # Determine Lib Version - cat >$dummy.c < -#if defined(__GLIBC__) -extern char __libc_version[]; -extern char __libc_release[]; -#endif -main(argc, argv) - int argc; - char *argv[]; -{ -#if defined(__GLIBC__) - printf("%s %s\n", __libc_version, __libc_release); -#else - printf("unkown\n"); -#endif - return 0; -} -EOF - LIBC="" - $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null - if test "$?" = 0 ; then - ./$dummy | grep 1\.99 > /dev/null - if test "$?" = 0 ; then - LIBC="libc1" - fi - fi - rm -f $dummy.c $dummy - echo powerpc-unknown-linux-gnu${LIBC} - exit 0 - ;; + exit 0 ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. + echo "${UNAME_MACHINE}-pc-linux-gnuoldld" + exit 0 ;; esac - - if test "${UNAME_MACHINE}" = "alpha" ; then - sed 's/^ //' <$dummy.s - .globl main - .ent main - main: - .frame \$30,0,\$26,0 - .prologue 0 - .long 0x47e03d80 # implver $0 - lda \$2,259 - .long 0x47e20c21 # amask $2,$1 - srl \$1,8,\$2 - sll \$2,2,\$2 - sll \$0,3,\$0 - addl \$1,\$0,\$0 - addl \$2,\$0,\$0 - ret \$31,(\$26),1 - .end main + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #ifdef __INTEL_COMPILER + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif EOF - LIBC="" - $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null - if test "$?" = 0 ; then - ./$dummy - case "$?" in - 7) - UNAME_MACHINE="alpha" - ;; - 15) - UNAME_MACHINE="alphaev5" - ;; - 14) - UNAME_MACHINE="alphaev56" - ;; - 10) - UNAME_MACHINE="alphapca56" - ;; - 16) - UNAME_MACHINE="alphaev6" - ;; - esac - - objdump --private-headers $dummy | \ - grep ld.so.1 > /dev/null - if test "$?" = 0 ; then - LIBC="libc1" - fi - fi - rm -f $dummy.s $dummy - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 - elif test "${UNAME_MACHINE}" = "mips" ; then - cat >$dummy.c </dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - else - # Either a pre-BFD a.out linker (linux-gnuoldld) - # or one that does not give us useful --help. - # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. - # If ld does not provide *any* "supported emulations:" - # that means it is gnuoldld. - echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:" - test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 - - case "${UNAME_MACHINE}" in - i?86) - VENDOR=pc; - ;; - *) - VENDOR=unknown; - ;; - esac - # Determine whether the default compiler is a.out or elf - cat >$dummy.c < -#ifdef __cplusplus - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif -#ifdef __ELF__ -# ifdef __GLIBC__ -# if __GLIBC__ >= 2 - printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); -# else - printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); -# endif -# else - printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); -# endif -#else - printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); -#endif - return 0; -} -EOF - $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - fi ;; -# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions -# are messed up and put the nodename in both sysname and nodename. - i?86:DYNIX/ptx:4*:*) + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 + test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. echo i386-sequent-sysv4 exit 0 ;; - i?86:UNIX_SV:4.2MP:2.*) + i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, @@ -825,7 +954,24 @@ EOF # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit 0 ;; - i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit 0 ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit 0 ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit 0 ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit 0 ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} @@ -833,27 +979,26 @@ EOF echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit 0 ;; - i?86:*:5:7*) - # Fixed at (any) Pentium or better - UNAME_MACHINE=i586 - if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then - echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} - fi + i*86:*:5:[78]*) + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit 0 ;; - i?86:*:3.2:*) + i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` - (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 - (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 - (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else @@ -861,6 +1006,7 @@ EOF fi exit 0 ;; pc:*:*:*) + # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp @@ -882,9 +1028,15 @@ EOF # "miniframe" echo m68010-convergent-sysv exit 0 ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit 0 ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit 0 ;; M68*:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) + 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` @@ -895,21 +1047,21 @@ EOF 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:*) + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit 0 ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit 0 ;; - i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; - rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) + rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit 0 ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit 0 ;; @@ -927,8 +1079,8 @@ EOF echo ns32k-sni-sysv fi exit 0 ;; - PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says echo i586-unisys-sysv4 exit 0 ;; *:UNIX_System_V:4*:FTX*) @@ -940,10 +1092,14 @@ EOF # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit 0 ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit 0 ;; - news*:NEWS-OS:*:6*) + news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit 0 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) @@ -968,20 +1124,80 @@ EOF SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit 0 ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; + *:Darwin:*:*) + case `uname -p` in + *86) UNAME_PROCESSOR=i686 ;; + powerpc) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit 0 ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit 0 ;; *:QNX:*:4*) - echo i386-qnx-qnx${UNAME_VERSION} + echo i386-pc-qnx + exit 0 ;; + NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit 0 ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit 0 ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit 0 ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit 0 ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit 0 ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit 0 ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit 0 ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit 0 ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit 0 ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit 0 ;; + *:ITS:*:*) + echo pdp10-unknown-its exit 0 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 +eval $set_cc_for_build cat >$dummy.c < @@ -1068,11 +1284,24 @@ main () #endif #if defined (vax) -#if !defined (ultrix) - printf ("vax-dec-bsd\n"); exit (0); -#else - printf ("vax-dec-ultrix\n"); exit (0); -#endif +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif #endif #if defined (alliant) && defined (i860) @@ -1083,8 +1312,7 @@ main () } EOF -$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0 -rm -f $dummy.c $dummy +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 # Apollos put the system type in the environment. @@ -1116,6 +1344,48 @@ then esac fi -#echo '(Unable to guess system type)' 1>&2 +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/glide3x/config.sub b/glide3x/config.sub index 28426bb..5f94062 100755 --- a/glide3x/config.sub +++ b/glide3x/config.sub @@ -1,6 +1,10 @@ #! /bin/sh -# Configuration validation subroutine script, version 1.1. -# Copyright (C) 1991, 92-97, 1998, 1999 Free Software Foundation, Inc. +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + +timestamp='2003-02-03' + # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. @@ -25,6 +29,9 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. @@ -45,30 +52,73 @@ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. -if [ x$1 = x ] -then - echo Configuration name missing. 1>&2 - echo "Usage: $0 CPU-MFR-OPSYS" 1>&2 - echo "or $0 ALIAS" 1>&2 - echo where ALIAS is a recognized configuration type. 1>&2 - exit 1 -fi +me=`echo "$0" | sed -e 's,.*/,,'` -# First pass through any local machine types. -case $1 in - *local*) - echo $1 - exit 0 - ;; - *) - ;; +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit 0;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - linux-gnu*) + nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -94,7 +144,7 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple) + -apple | -axis) os= basic_machine=$1 ;; @@ -108,6 +158,14 @@ case $os in os=-vxworks basic_machine=$1 ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; -hiux*) os=-hiuxwe2 ;; @@ -166,27 +224,62 @@ esac case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. - tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \ - | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \ - | 580 | i960 | h8300 \ - | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \ - | alpha | alphaev[4-7] | alphaev56 | alphapca5[67] \ - | we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \ - | 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \ - | mips64orion | mips64orionel | mipstx39 | mipstx39el \ - | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \ - | mips64vr5000 | miprs64vr5000el | mcore \ - | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \ - | thumb | d10v | fr30) + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k \ + | m32r | m68000 | m68k | m88k | mcore \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64vr | mips64vrel \ + | mips64orion | mips64orionel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | msp430 \ + | ns16k | ns32k \ + | openrisc | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ + | strongarm \ + | tahoe | thumb | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xscale | xstormy16 | xtensa \ + | z8k) basic_machine=$basic_machine-unknown ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl) + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. - i[34567]86) + i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. @@ -195,24 +288,60 @@ case $basic_machine in exit 1 ;; # Recognize the basic CPU types with company name. - # FIXME: clean up the formatting here. - vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \ - | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \ - | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ - | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \ - | xmp-* | ymp-* \ - | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* | hppa2.0n-* \ - | alpha-* | alphaev[4-7]-* | alphaev56-* | alphapca5[67]-* \ - | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \ - | clipper-* | orion-* \ - | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ - | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \ - | mips64el-* | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \ - | mipstx39-* | mipstx39el-* | mcore-* \ - | f301-* | armv*-* | t3e-* \ - | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \ - | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* ) + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* \ + | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* \ + | m32r-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | msp430-* \ + | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ + | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ + | xtensa-* \ + | ymp-* \ + | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. @@ -249,14 +378,14 @@ case $basic_machine in os=-sysv ;; amiga | amiga-*) - basic_machine=m68k-cbm + basic_machine=m68k-unknown ;; amigaos | amigados) - basic_machine=m68k-cbm + basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) - basic_machine=m68k-cbm + basic_machine=m68k-unknown os=-sysv4 ;; apollo68) @@ -275,6 +404,10 @@ case $basic_machine in basic_machine=ns32k-sequent os=-dynix ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; convex-c1) basic_machine=c1-convex os=-bsd @@ -295,27 +428,30 @@ case $basic_machine in basic_machine=c38-convex os=-bsd ;; - cray | ymp) - basic_machine=ymp-cray - os=-unicos - ;; - cray2) - basic_machine=cray2-cray - os=-unicos - ;; - [ctj]90-cray) - basic_machine=c90-cray + cray | j90) + basic_machine=j90-cray os=-unicos ;; crds | unos) basic_machine=m68k-crds ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola @@ -357,6 +493,10 @@ case $basic_machine in basic_machine=tron-gmicro os=-sysv ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 @@ -432,19 +572,19 @@ case $basic_machine in basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? - i[34567]86v32) + i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; - i[34567]86v4*) + i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; - i[34567]86v) + i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; - i[34567]86sol2) + i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; @@ -456,17 +596,6 @@ case $basic_machine in basic_machine=i386-unknown os=-vsta ;; - i386-go32 | go32) - basic_machine=i386-unknown - os=-go32 - ;; - i386-mingw32 | mingw32) - basic_machine=i386-unknown - os=-mingw32 - ;; - i386-qnx | qnx) - basic_machine=i386-qnx - ;; iris | iris4d) basic_machine=mips-sgi case $os in @@ -492,6 +621,10 @@ case $basic_machine in basic_machine=ns32k-utek os=-sysv ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; miniframe) basic_machine=m68000-convergent ;; @@ -499,26 +632,26 @@ case $basic_machine in basic_machine=m68k-atari os=-mint ;; - mipsel*-linux*) - basic_machine=mipsel-unknown - os=-linux-gnu - ;; - mips*-linux*) - basic_machine=mips-unknown - os=-linux-gnu - ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; + mmix*) + basic_machine=mmix-knuth + os=-mmixware + ;; monitor) basic_machine=m68k-rom68k os=-coff ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; msdos) - basic_machine=i386-unknown + basic_machine=i386-pc os=-msdos ;; mvs) @@ -582,13 +715,28 @@ case $basic_machine in basic_machine=i960-intel os=-mon960 ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; np1) basic_machine=np1-gould ;; + nv1) + basic_machine=nv1-cray + os=-unicosmp + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; + or32 | or32-*) + basic_machine=or32-unknown + os=-coff + ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose @@ -611,45 +759,59 @@ case $basic_machine in pbb) basic_machine=m68k-tti ;; - pc532 | pc532-*) + pc532 | pc532-*) basic_machine=ns32k-pc532 ;; - pentium | p5 | k5 | k6 | nexen) + pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; - pentiumpro | p6 | 6x86) + pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2) - basic_machine=i786-pc + basic_machine=i686-pc ;; - pentium-* | p5-* | k5-* | k6-* | nexen-*) + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - pentiumpro-* | p6-* | 6x86-*) + pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; - power) basic_machine=rs6000-ibm + power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown - ;; + ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown - ;; + ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; ps2) basic_machine=i386-ibm ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; rom68k) basic_machine=m68k-rom68k os=-coff @@ -660,10 +822,22 @@ case $basic_machine in rtpc | rtpc-*) basic_machine=romp-ibm ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; sa29200) basic_machine=a29k-amd os=-udi ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; sequent) basic_machine=i386-sequent ;; @@ -671,7 +845,7 @@ case $basic_machine in basic_machine=sh-hitachi os=-hms ;; - sparclite-wrs) + sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; @@ -729,20 +903,48 @@ case $basic_machine in sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) - basic_machine=t3e-cray + basic_machine=alphaev5-cray os=-unicos ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic4x | c4x*) + basic_machine=tic4x-unknown + os=-coff + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; tower | tower-32) basic_machine=m68k-ncr ;; @@ -767,8 +969,8 @@ case $basic_machine in os=-vms ;; vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; + basic_machine=f301-fujitsu + ;; vxworks960) basic_machine=i960-wrs os=-vxworks @@ -789,13 +991,13 @@ case $basic_machine in basic_machine=hppa1.1-winbond os=-proelf ;; - xmp) - basic_machine=xmp-cray - os=-unicos - ;; - xps | xps100) + xps | xps100) basic_machine=xps100-honeywell ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim @@ -816,13 +1018,6 @@ case $basic_machine in op60c) basic_machine=hppa1.1-oki ;; - mips) - if [ x$os = x-linux-gnu ]; then - basic_machine=mips-unknown - else - basic_machine=mips-mips - fi - ;; romp) basic_machine=romp-ibm ;; @@ -832,16 +1027,26 @@ case $basic_machine in vax) basic_machine=vax-dec ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; - sparc | sparcv9) + sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparc | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; - cydra) + cydra) basic_machine=cydra-cydrome ;; orion) @@ -856,9 +1061,8 @@ case $basic_machine in pmac | pmac-mpw) basic_machine=powerpc-apple ;; - c4x*) - basic_machine=c4x-none - os=-coff + *-unknown) + # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 @@ -916,14 +1120,34 @@ case $os in | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -rhapsody* | -opened* | -openstep* | -oskit*) + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -microbsd*) # Remember, each alternative MUST END IN *, to match a version number. ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ - | -macos* | -mpw* | -magic* | -mon960* | -lnews*) + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` @@ -940,6 +1164,9 @@ case $os in -opened*) os=-openedition ;; + -wince*) + os=-wince + ;; -osfrose*) os=-osfrose ;; @@ -955,14 +1182,23 @@ case $os in -acis*) os=-aos ;; + -atheos*) + os=-atheos + ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; + -nova*) + os=-rtmk-nova + ;; -ns2 ) - os=-nextstep2 + os=-nextstep2 + ;; + -nsk*) + os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) @@ -977,9 +1213,6 @@ case $os in -oss*) os=-sysv3 ;; - -qnx) - os=-qnx4 - ;; -svr4) os=-sysv4 ;; @@ -1001,8 +1234,14 @@ case $os in -xenix) os=-xenix ;; - -*mint | -*MiNT) - os=-mint + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos ;; -none) ;; @@ -1035,7 +1274,11 @@ case $basic_machine in arm*-semi) os=-aout ;; - pdp11-*) + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) os=-none ;; *-dec | vax-*) @@ -1062,6 +1305,9 @@ case $basic_machine in mips*-*) os=-elf ;; + or32-*) + os=-coff + ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; @@ -1125,25 +1371,25 @@ case $basic_machine in *-next) os=-nextstep3 ;; - *-gould) + *-gould) os=-sysv ;; - *-highlevel) + *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; - *-sgi) + *-sgi) os=-irix ;; - *-siemens) + *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; - f301-fujitsu) + f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) @@ -1209,7 +1455,7 @@ case $basic_machine in -ptx*) vendor=sequent ;; - -vxsim* | -vxworks*) + -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) @@ -1221,12 +1467,23 @@ case $basic_machine in -mpw* | -macos*) vendor=apple ;; - -*mint | -*MiNT) + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; + -vos*) + vendor=stratus + ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/glide3x/configure.in b/glide3x/configure.in index c79eeff..b511d13 100644 --- a/glide3x/configure.in +++ b/glide3x/configure.in @@ -225,6 +225,7 @@ AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(CP, cp, false) AC_PROG_INSTALL AM_PROG_LIBTOOL +AM_PROG_AS MAKE="make -f makefile.autoconf" AC_SUBST(MAKE) dnl Checks for libraries. @@ -282,7 +283,6 @@ AC_OUTPUT(build.3dfx swlibs/texus/lib/makefile.autoconf:swlibs/texus/lib/makefile.autoconf.in:swlibs/include/make/makefile.autoconf.bottom swlibs/texus2/makefile.autoconf:swlibs/texus2/makefile.autoconf.in:swlibs/include/make/makefile.autoconf.bottom swlibs/texus2/lib/makefile.autoconf:swlibs/texus2/lib/makefile.autoconf.in:swlibs/include/make/makefile.autoconf.bottom - swlibs/texus2/cmd/makefile.autoconf:swlibs/texus2/cmd/makefile.autoconf.in:swlibs/include/make/makefile.autoconf.bottom + swlibs/texus2/cmd/makefile.autoconf:swlibs/texus2/cmd/makefile.autoconf.in:swlibs/include/make/makefile.autoconf.bottom, + [chmod +x build.3dfx] ) -AC_OUTPUT_COMMANDS([chmod +x build.3dfx]) - diff --git a/glide3x/depcomp b/glide3x/depcomp new file mode 100644 index 0000000..51606f8 --- /dev/null +++ b/glide3x/depcomp @@ -0,0 +1,464 @@ +#! /bin/sh + +# depcomp - compile a program generating dependencies as side-effects +# Copyright 1999, 2000 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi +# `libtool' can also be set to `yes' or `no'. + +if test -z "$depfile"; then + base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` + dir=`echo "$object" | sed 's,/.*$,/,'` + if test "$dir" = "$object"; then + dir= + fi + # FIXME: should be _deps on DOS. + depfile="$dir.deps/$base" +fi + +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. + "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> $depfile + echo >> $depfile + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> $depfile + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. This file always lives in the current directory. + # Also, the AIX compiler puts `$object:' at the start of each line; + # $object doesn't have directory information. + stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` + tmpdepfile="$stripped.u" + outname="$stripped.o" + if test "$libtool" = yes; then + "$@" -Wc,-M + else + "$@" -M + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + + if test -f "$tmpdepfile"; then + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" + sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Must come before tru64. + + # Intel's C compiler understands `-MD -MF file'. However + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + sed -e "s,^[^:]*: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + tmpdepfile1="$dir.libs/$base.lo.d" + tmpdepfile2="$dir.libs/$base.d" + "$@" -Wc,-MD + else + tmpdepfile1="$dir$base.o.d" + tmpdepfile2="$dir$base.d" + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + if test -f "$tmpdepfile1"; then + tmpdepfile="$tmpdepfile1" + else + tmpdepfile="$tmpdepfile2" + fi + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a space and a tab in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the proprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no + for arg in "$@"; do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix="`echo $object | sed 's/^.*\././'`" + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the proprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the proprocessed file to stdout, regardless of -o, + # because we must use -o when running libtool. + "$@" || exit $? + IFS=" " + for arg + do + case "$arg" in + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 diff --git a/glide3x/h3/glide3/src/cpudtect.S b/glide3x/h3/glide3/src/cpudtect.S index 0d4b828..4f051e7 100644 --- a/glide3x/h3/glide3/src/cpudtect.S +++ b/glide3x/h3/glide3/src/cpudtect.S @@ -20,7 +20,10 @@ */ /* $Header$ */ -/* $Log$ */ +/* $Log$ +/* Revision 1.1.1.1 1999/11/24 21:44:53 joseph +/* Initial checkin for SourceForge +/* */ /* */ /* 4 4/06/99 3:54p Dow */ /* Alt tab again. */ @@ -49,6 +52,8 @@ .file "cpudtect.asm" +/* [dBorca] */ +#include "assyntax.h" /* Data for data segment goes here */ /* _DATA SEGMENT DWORD USE32 PUBLIC 'DATA' */ @@ -74,9 +79,7 @@ /* returns 4 for non-pen */ -.globl _cpu_detect_asm -.type _cpu_detect_asm,@function -_cpu_detect_asm: +GLOBL(_cpu_detect_asm) .L_cpu_detect_asm_P6Stuff: push %esi /* save registers that are not volatile */ push %edi @@ -284,10 +287,8 @@ _cpu_detect_asm: /* ------------------------------------------------------------------------------ */ /* this routine sets the precision to single */ /* which effects all adds, mults, and divs */ -.align 4 /* */ -.globl single_precision_asm -.type single_precision_asm,@function -single_precision_asm: +ALIGN(4) /* */ +GLOBL(single_precision_asm) push %eax /* make room */ fnclex /* clear pending exceptions */ fstcw (%esp) @@ -303,10 +304,8 @@ single_precision_asm: /* ------------------------------------------------------------------------------ */ /* this routine sets the precision to double */ /* which effects all adds, mults, and divs */ -.align 4 /* */ -.globl double_precision_asm -.type double_precision_asm,@function -double_precision_asm: +ALIGN(4) /* */ +GLOBL(double_precision_asm) push %eax /* make room */ fnclex /* clear pending exceptions */ fstcw (%esp) diff --git a/glide3x/h3/glide3/src/fifo.c b/glide3x/h3/glide3/src/fifo.c index 2e743ed..bb88ae6 100644 --- a/glide3x/h3/glide3/src/fifo.c +++ b/glide3x/h3/glide3/src/fifo.c @@ -19,6 +19,9 @@ ** ** $Header$ ** $Log$ + ** Revision 1.1.1.1 1999/11/24 21:44:55 joseph + ** Initial checkin for SourceForge + ** ** ** 6 4/16/99 4:27p Kcd ** SET*_FIFO macros. @@ -691,7 +694,7 @@ _grCommandTransportMakeRoom(const FxI32 blockSize, const char* fName, const int GR_BEGIN_NOFIFOCHECK(FN_NAME, 400); if ( gc->windowed ) { -#if defined( GLIDE_INIT_HWC ) && !defined(__linux__) +#if defined( GLIDE_INIT_HWC ) && !defined(__linux__) && !defined(__DJGPP__) /* [dBorca] */ struct cmdTransportInfo* gcFifo = &gc->cmdTransportInfo; HwcWinFifo diff --git a/glide3x/h3/glide3/src/fxgasm.c b/glide3x/h3/glide3/src/fxgasm.c index cde0cde..0f3af1d 100644 --- a/glide3x/h3/glide3/src/fxgasm.c +++ b/glide3x/h3/glide3/src/fxgasm.c @@ -37,7 +37,7 @@ * macros for creating assembler offset files *----------------------------------------------------------------------*/ -#if !defined(__linux__) && !defined(__FreeBSD__) +#if !defined(__linux__) && !defined(__FreeBSD__) && !defined(__DJGPP__) /* [dBorca] */ #define NEWLINE printf("\n") #define COMMENT printf(";----------------------------------------------------------------------\n") diff --git a/glide3x/h3/glide3/src/fxglide.h b/glide3x/h3/glide3/src/fxglide.h index e846944..fa19089 100644 --- a/glide3x/h3/glide3/src/fxglide.h +++ b/glide3x/h3/glide3/src/fxglide.h @@ -19,6 +19,10 @@ ** ** $Header$ ** $Log$ +** Revision 1.2 2000/11/24 18:36:48 alanh +** Add new grStippleMode and grStipplePattern functions for both Voodoo3 and +** Voodoo5 hardware. +** ** Revision 1.1.1.1 1999/11/24 21:44:56 joseph ** Initial checkin for SourceForge ** @@ -825,7 +829,7 @@ typedef struct { */ #define GR_MEMTYPE GR_GET_RESERVED_1 -#ifndef __linux__ +#if !defined(__linux__) && (!defined(__DJGPP__) || defined(GLIDE_USE_C_TRISETUP)) /* [dBorca] */ #define TRISETUPARGS const void *a, const void *b, const void *c #else #define TRISETUPARGS const void *g, const void *a, const void *b, const void *c @@ -1234,7 +1238,7 @@ typedef struct GrGC_s windowedState; #endif /* GLIDE_INIT_HWC */ } cmdTransportInfo; -#ifndef __linux__ +#if !defined(__linux__) && (!defined(__DJGPP__) || defined(GLIDE_USE_C_TRISETUP)) /* [dBorca] */ FxI32 (FX_CALL *triSetupProc)(const void *a, const void *b, const void *c); #else FxI32 (FX_CALL *triSetupProc)(const void *gc, const void *a, const void *b, const void *c); @@ -1616,7 +1620,7 @@ _trisetup_noclip_valid(TRISETUPARGS); #else -#if defined( __linux__ ) +#if defined( __linux__ ) || (defined(__DJGPP__) && !defined(GLIDE_USE_C_TRISETUP)) /* [dBorca] */ #define TRISETUP(a, b, c) (gc->triSetupProc)(gc, a, b, c) @@ -1824,6 +1828,12 @@ extern FxU32 threadValueLinux; #define getThreadValueFast() threadValueLinux #endif +/* [dBorca] */ +#ifdef __DJGPP__ +extern FxU32 threadValueDJGPP; +#define getThreadValueFast() threadValueDJGPP +#endif + #define CUR_TRI_PROC(__checkValidP, __cullP) \ (*gc->archDispatchProcs.coorModeTriVector)[__checkValidP][__cullP] #define INVALIDATE(regset) {\ diff --git a/glide3x/h3/glide3/src/g3df.c b/glide3x/h3/glide3/src/g3df.c index cc5ac2b..e239a9d 100644 --- a/glide3x/h3/glide3/src/g3df.c +++ b/glide3x/h3/glide3/src/g3df.c @@ -19,6 +19,9 @@ ** ** $Header$ ** $Log$ +** Revision 1.1.1.1 1999/11/24 21:44:56 joseph +** Initial checkin for SourceForge +** ** ** 4 4/06/99 3:54p Dow ** Alt tab again. @@ -394,7 +397,7 @@ GR_DIENTRY(gu3dfGetInfo, FxBool, /* ** determine the color format of the input image */ -#ifdef __GNUC__ +#if defined(__GNUC__) && !defined(__DJGPP__) /* [dBorca] DJGPP has `strupr' */ /* This function is not found in libgcc.a */ { char* tempStr = (char*)color_format; diff --git a/glide3x/h3/glide3/src/gdraw.c b/glide3x/h3/glide3/src/gdraw.c index 975d758..2c28e29 100644 --- a/glide3x/h3/glide3/src/gdraw.c +++ b/glide3x/h3/glide3/src/gdraw.c @@ -19,6 +19,9 @@ ** ** $Header$ ** $Log$ + ** Revision 1.2 2000/02/15 22:35:58 joseph + ** Changes to support FreeBSD (patch submitted by Doug Rabson) + ** ** Revision 1.1.1.1 1999/11/24 21:44:56 joseph ** Initial checkin for SourceForge ** @@ -285,7 +288,7 @@ GR_ENTRY(grDrawTriangle, void, (const void *a, const void *b, const void *c)) } lostContext: ; /* <-- my, that's odd, but MSVC was insistent */ } -#elif defined( __linux__ ) || defined(__FreeBSD__) +#elif defined( __linux__ ) || defined(__FreeBSD__) || defined(__DJGPP__) /* [dBorca] */ { GR_BEGIN_NOFIFOCHECK("grDrawTriangle",92); TRISETUP(a, b, c); diff --git a/glide3x/h3/glide3/src/gerror.c b/glide3x/h3/glide3/src/gerror.c index bcb335a..bf55d50 100644 --- a/glide3x/h3/glide3/src/gerror.c +++ b/glide3x/h3/glide3/src/gerror.c @@ -20,6 +20,9 @@ ** ** $Header$ ** $Log$ +** Revision 1.2 2000/02/15 22:35:58 joseph +** Changes to support FreeBSD (patch submitted by Doug Rabson) +** ** Revision 1.1.1.1 1999/11/24 21:44:56 joseph ** Initial checkin for SourceForge ** @@ -225,6 +228,8 @@ _grErrorDefaultCallback( const char *s, FxBool fatal ) } #endif +/* [dBorca] */ +#ifndef __DJGPP__ #ifdef __DOS__ int _guHeapCheck( void ) { @@ -244,6 +249,7 @@ i3(void) __asm int 3; } #endif +#endif void _grAssert(char *exp, char *fileName, int lineNo) diff --git a/glide3x/h3/glide3/src/gsst.c.save b/glide3x/h3/glide3/src/gsst.c.save index e61f993..7532eac 100644 --- a/glide3x/h3/glide3/src/gsst.c.save +++ b/glide3x/h3/glide3/src/gsst.c.save @@ -19,6 +19,9 @@ ** ** $Header$ ** $Log$ +** Revision 1.1.1.1 1999/11/24 21:45:00 joseph +** Initial checkin for SourceForge +** ** ** 11 6/24/99 1:28a Stb_mmcclure ** Modifications to fix PRS 6627. Added hwcUnmapMemory9x for revised 9x @@ -924,7 +927,7 @@ GR_ENTRY(grSstWinOpen, GrContext_t, ( FxU32 hWnd, struct cmdTransportInfo *gcFifo = 0; GrContext_t retVal = 0; -#ifndef __linux__ +#if !defined(__linux__) && !defined(__DJGPP__) /* [dBorca] */ if (!hWnd) GrErrorCallback("grSstWinOpen: need to use a valid window handle", FXTRUE); @@ -1167,7 +1170,7 @@ GR_ENTRY(grSstWinOpen, GrContext_t, ( FxU32 hWnd, gc->tBuffer.bufBPP = 0xffffffff; /* Don't matter to me */ GDBG_INFO(1, "autoBump: 0x%x\n", _GlideRoot.environment.autoBump); - if (gc->cmdTransportInfo.autoBump = _GlideRoot.environment.autoBump) { + if ((gc->cmdTransportInfo.autoBump = _GlideRoot.environment.autoBump)) { /* [dBorca] avoid warning */ if (!hwcInitFifo( bInfo, gc->cmdTransportInfo.autoBump)) { hwcRestoreVideo(bInfo); GrErrorCallback(hwcGetErrorString(), FXFALSE); @@ -1612,7 +1615,7 @@ GR_ENTRY(grSstWinClose, FxBool, (GrContext_t context)) } _GlideRoot.windowsInit--; -#ifndef __linux__ +#if !defined(__linux__) && !defined(__DJGPP__) /* [dBorca] */ if ( gc->bInfo->osNT ) hwcUnmapMemory(); else @@ -1837,7 +1840,7 @@ GR_ENTRY(grFinish, void, (void)) grFlush(); if ( gc->windowed ) { -#if defined( GLIDE_INIT_HWC ) && !defined( __linux__ ) +#if defined( GLIDE_INIT_HWC ) && !defined( __linux__ ) && !defined(__DJGPP__) /* [dBorca] */ struct cmdTransportInfo* gcFifo = &gc->cmdTransportInfo; diff --git a/glide3x/h3/glide3/src/gthread.c b/glide3x/h3/glide3/src/gthread.c index 40af398..87790cd 100644 --- a/glide3x/h3/glide3/src/gthread.c +++ b/glide3x/h3/glide3/src/gthread.c @@ -185,6 +185,48 @@ void endCriticalSection(void) { } +/* [dBorca] */ +#elif defined(__DJGPP__) + + +#include <3dfx.h> +#include + +#define FX_DLL_DEFINITION +#include +#include + +#include "fxglide.h" +#include "fxcmd.h" + +FxU32 threadValueDJGPP; + +void initThreadStorage(void) +{ +} + +void setThreadValue( FxU32 value ) +{ + threadValueDJGPP = value; +} + +FxU32 getThreadValueSLOW( void ) +{ + return threadValueDJGPP; +} + +void initCriticalSection(void) +{ +} + +void beginCriticalSection(void) +{ +} + +void endCriticalSection(void) +{ +} + #else # error "No thread synchronization/storage functions defined for this OS" #endif diff --git a/glide3x/h3/glide3/src/makefile.autoconf.am b/glide3x/h3/glide3/src/makefile.autoconf.am index fa0c7ba..9c915b5 100644 --- a/glide3x/h3/glide3/src/makefile.autoconf.am +++ b/glide3x/h3/glide3/src/makefile.autoconf.am @@ -93,15 +93,11 @@ FX_GLIDE_CTRISETUP_SRC = gxdraw.c ASMTRISETUP = else FX_GLIDE_CTRISETUP_SRC = -if GL_AMD3D -ASMTRISETUP = -else -ASMTRISETUP = xdraw2.S xdraw3.S -endif +ASMTRISETUP = xdraw2_def.S xdraw3_def.S endif if GL_AMD3D -GL_AMD3D_SRC = xtexdl_3dnow.S xdraw2_3dnow.S xdraw3_3dnow.S xdraw2_def.S xdraw3_def.S +GL_AMD3D_SRC = xtexdl_3dnow.S xdraw2_3dnow.S xdraw3_3dnow.S endif VDEFS = $(FX_CHRIS_DENIS_ANTHONY_HACK_VDEFS) \ @@ -138,30 +134,28 @@ VINCLUDES = $(HAL_CSIM_INCLUDES) # # Special rules for assembly files. # -xdraw2.lo : xdraw2.S xdraw2.inc.S fxgasm.h - libtool --mode=compile $(CC) $(AFLAGS) -c -o $@ xdraw2.S +cpudtect.o cpudtect.lo: cpudtect.S assyntax.h + libtool --mode=compile $(CC) -$$ -I. $(AFLAGS) -c -o $*.o $< -xdraw3.lo : xdraw3.S fxgasm.h - libtool --mode=compile $(CC) $(AFLAGS) -c -o $@ xdraw3.S +xdraw2_def.o xdraw2_def.lo: xdraw2.S xdraw2.inc.S fxgasm.h assyntax.h + libtool --mode=compile $(CC) -$$ -I. $(AFLAGS) -c -o $*.o $< + +xdraw3_def.o xdraw3_def.lo: xdraw3.S fxgasm.h assyntax.h + libtool --mode=compile $(CC) -$$ -I. $(AFLAGS) -c -o $*.o $< # 3DNow!(tm) dependencies # XXX_def.obj targets are the default targets if GL_AMD3D -xdraw2_def.lo: xdraw2.S xdraw2.inc.S fxgasm.h - libtool --mode=compile $(CC) $(AFLAGS) -c -o $@ xdraw2.S -xdraw2_3dnow.lo: xdraw2.S xdraw2.inc.S fxgasm.h - libtool --mode=compile $(CC) $(AFLAGS) -DGL_AMD3D -DUSE_PACKET_FIFO=1 -c -o $@ xdraw2.S +xdraw2_3dnow.o xdraw2_3dnow.lo: xdraw2.S xdraw2.inc.S fxgasm.h assyntax.h + libtool --mode=compile $(CC) -$$ -I. $(AFLAGS) -DGL_AMD3D -DUSE_PACKET_FIFO=1 -c -o $*.o $< -xdraw3_def.lo: xdraw3.S fxgasm.h - libtool --mode=compile $(CC) $(AFLAGS) -c -o $@ xdraw3.S +xdraw3_3dnow.o xdraw3_3dnow.lo: xdraw3.S fxgasm.h assyntax.h + libtool --mode=compile $(CC) -$$ -I. $(AFLAGS) -DGL_AMD3D -DUSE_PACKET_FIFO=1 -c -o $*.o $< -xdraw3_3dnow.lo: xdraw3.S fxgasm.h - libtool --mode=compile $(CC) $(AFLAGS) -DGL_AMD3D -DUSE_PACKET_FIFO=1 -c -o $@ xdraw3.S - -xtexdl_3dnow.lo: xtexdl.S fxgasm.h - libtool --mode=compile $(CC) $(AFLAGS) -DGL_AMD3D -DUSE_PACKET_FIFO=1 -c -o $@ xtexdl.S +xtexdl_3dnow.o xtexdl_3dnow.lo: xtexdl.S fxgasm.h assyntax.h + libtool --mode=compile $(CC) -$$ -I. $(AFLAGS) -DGL_AMD3D -DUSE_PACKET_FIFO=1 -c -o $*.o $< endif @@ -200,14 +194,15 @@ WHOLE_LIBS = $(top_builddir)/swlibs/fxmisc/libfxmisc.la \ $(top_builddir)/@FX_GLIDE_HW@/minihwc/libminihwc.la LINK_LIBS = -L/usr/X11R6/lib -lX11 -lXext -lXxf86dga -lXxf86vm -CLEANFILES = fxinline.h fxgasm.h +CLEANFILES = fxinline.h fxgasm.h assyntax.h noinst_PROGRAMS = fxgasm include_HEADERS = g3ext.h glide.h glideutl.h glidesys.h noinst_HEADERS = fxglide.h gsstdef.h gsfc.h \ fxcmd.h fxsplash.h tv.h rcver.h qmodes.h \ macglide3.h -fxgasm_SOURCES = fxgasm.c gthread.c +fxgasm_SOURCES = fxgasm.c +# gthread.c lib_LTLIBRARIES = libglide3.la libglide3_la_SOURCES = fxinline.h fxgasm.h \ @@ -223,16 +218,18 @@ libglide3_la_LDFLAGS = -version-info 13:0:10 libglide3_la_LIBADD = $(WHOLE_LIBS) $(LINK_LIBS) #--------------------------------------------------------------------------# -# special rules for making fxgasm.h, fxinclude.h +# special rules for making fxgasm.h, fxinclude.h, assyntax.h # fxgasm.h: fxgasm ./fxgasm -hex > fxgasm.h fxinline.h: fxgasm ./fxgasm -inline > fxinline.h +assyntax.h: $(top_srcdir)/swlibs/fxmisc/assyntax.h + ln -sf $< $@ #--------------------------------------------------------------------------# # special rules for using fxgasm.h, fxinclude.h # -diget.o diget.lo gdraw.o gdraw.lo gu.o gu.lo: fxinline.h -xdraw2.o xdraw2_3dnow.o xdraw3_3dnow.o: fxgasm.h -xdraw2.lo xdraw2_3dnow.lo xdraw3_3dnow.lo: fxgasm.h +diget.o diget.lo gdraw.o gdraw.lo gu.o gu.lo: fxinline.h +xdraw2_def.o xdraw2_3dnow.o xdraw3_3dnow.o: fxgasm.h +xdraw2_def.lo xdraw2_3dnow.lo xdraw3_3dnow.lo: fxgasm.h diff --git a/glide3x/h3/glide3/src/xdraw2.S b/glide3x/h3/glide3/src/xdraw2.S index 3330adc..3fe0ac4 100644 --- a/glide3x/h3/glide3/src/xdraw2.S +++ b/glide3x/h3/glide3/src/xdraw2.S @@ -21,6 +21,9 @@ /* $Header$ */ /* $Revision$ */ /* $Log$ +/* Revision 1.2 2000/02/15 22:35:59 joseph +/* Changes to support FreeBSD (patch submitted by Doug Rabson) +/* /* Revision 1.1.1.1 1999/11/24 21:44:58 joseph /* Initial checkin for SourceForge /* */ @@ -89,6 +92,8 @@ .file "xdraw2.asm" +/* [dBorca] */ +#include "assyntax.h" /* Definitions of cvg regs and glide root structures. */ #include "fxgasm.h" @@ -155,10 +160,8 @@ T2006: .int 0x43800000 /* 256 */ .text -.align 32 -.globl PROC_TYPE(clip_nocull_invalid) -.type PROC_TYPE(clip_nocull_invalid),@function -PROC_TYPE(clip_nocull_invalid): +ALIGN(32) +GLOBL(PROC_TYPE(clip_nocull_invalid)) #define LOCAL(arg) L_clip_nocull_invalid##arg @@ -179,10 +182,8 @@ PROC_TYPE(clip_nocull_invalid): END_PROC_TYPE(clip_nocull_invalid): .size PROC_TYPE(clip_nocull_invalid),END_PROC_TYPE(clip_nocull_invalid)-PROC_TYPE(clip_nocull_invalid) -.align 32 -.globl PROC_TYPE(clip_cull_invalid) -.type PROC_TYPE(clip_cull_invalid),@function -PROC_TYPE(clip_cull_invalid): +ALIGN(32) +GLOBL(PROC_TYPE(clip_cull_invalid)) #define LOCL(arg) .L_clip_cull_invalid_##arg @@ -203,10 +204,8 @@ PROC_TYPE(clip_cull_invalid): END_PROC_TYPE(clip_cull_invalid): .size PROC_TYPE(clip_cull_invalid),END_PROC_TYPE(clip_cull_invalid)-PROC_TYPE(clip_cull_invalid) -.align 32 -.globl PROC_TYPE(clip_cull_valid) -.type PROC_TYPE(clip_cull_valid),@function -PROC_TYPE(clip_cull_valid): +ALIGN(32) +GLOBL(PROC_TYPE(clip_cull_valid)) #define LOCAL(arg) L_clip_cull_valid_##arg @@ -227,10 +226,8 @@ PROC_TYPE(clip_cull_valid): END_PROC_TYPE(clip_cull_valid): .size PROC_TYPE(clip_cull_valid),END_PROC_TYPE(clip_cull_valid)-PROC_TYPE(clip_cull_valid) -.align 32 -.globl PROC_TYPE(clip_nocull_valid) -.type PROC_TYPE(clip_nocull_valid),@function -PROC_TYPE(clip_nocull_valid): +ALIGN(32) +GLOBL(PROC_TYPE(clip_nocull_valid)) #define LOCAL(arg) L_clip_nocull_valid_##arg @@ -251,10 +248,8 @@ PROC_TYPE(clip_nocull_valid): END_PROC_TYPE(clip_nocull_valid): .size PROC_TYPE(clip_nocull_valid),END_PROC_TYPE(clip_nocull_valid)-PROC_TYPE(clip_nocull_valid) -.align 32 -.globl PROC_TYPE(win_nocull_invalid) -.type PROC_TYPE(win_nocull_invalid),@function -PROC_TYPE(win_nocull_invalid): +ALIGN(32) +GLOBL(PROC_TYPE(win_nocull_invalid)) #define LOCAL(arg) L_win_nocull_invalid_##arg @@ -275,11 +270,8 @@ PROC_TYPE(win_nocull_invalid): END_PROC_TYPE(win_nocull_invalid): .size PROC_TYPE(win_nocull_invalid),END_PROC_TYPE(win_nocull_invalid)-PROC_TYPE(win_nocull_invalid) -.align 32 -.globl PROC_TYPE(win_cull_invalid) - -.type PROC_TYPE(win_cull_invalid),@function -PROC_TYPE(win_cull_invalid): +ALIGN(32) +GLOBL(PROC_TYPE(win_cull_invalid)) #define LOCAL(arg) L_win_cull_invalid_##arg @@ -300,10 +292,8 @@ PROC_TYPE(win_cull_invalid): END_PROC_TYPE(win_cull_invalid): .size PROC_TYPE(win_cull_invalid),END_PROC_TYPE(win_cull_invalid)-PROC_TYPE(win_cull_invalid) -.align 32 -.globl PROC_TYPE(win_cull_valid) -.type PROC_TYPE(win_cull_valid),@function -PROC_TYPE(win_cull_valid): +ALIGN(32) +GLOBL(PROC_TYPE(win_cull_valid)) #define LOCAL(arg) L_win_cull_valid_##arg @@ -324,10 +314,8 @@ PROC_TYPE(win_cull_valid): END_PROC_TYPE(win_cull_valid): .size PROC_TYPE(win_cull_valid),END_PROC_TYPE(win_cull_valid)-PROC_TYPE(win_cull_valid) -.align 32 -.globl PROC_TYPE(win_nocull_valid) -.type PROC_TYPE(win_nocull_valid),@function -PROC_TYPE(win_nocull_valid): +ALIGN(32) +GLOBL(PROC_TYPE(win_nocull_valid)) #define LOCAL(arg) L_win_nocull_valid_##arg @@ -349,10 +337,8 @@ END_PROC_TYPE(win_nocull_valid): .size PROC_TYPE(win_nocull_valid),END_PROC_TYPE(win_nocull_valid)-PROC_TYPE(win_nocull_valid) #ifdef GL_AMD3D -.align 32 -.globl _trisetup_clip_coor_thunk -.type _trisetup_clip_coor_thunk,@function -_trisetup_clip_coor_thunk: +ALIGN(32) +GLOBL(_trisetup_clip_coor_thunk) #define procPtr eax #define vPtr ecx diff --git a/glide3x/h3/glide3/src/xdraw2.inc.S b/glide3x/h3/glide3/src/xdraw2.inc.S index f3fb566..a816e59 100644 --- a/glide3x/h3/glide3/src/xdraw2.inc.S +++ b/glide3x/h3/glide3/src/xdraw2.inc.S @@ -22,6 +22,9 @@ /* $Header$ */ /* $Revision$ */ /* $Log$ +/* Revision 1.4 2002/04/09 22:21:43 alanh +/* AMD 3DNow fixes +/* /* Revision 1.3 2000/10/20 19:07:00 billwhite /* 1.) Added changes for AMD 3DNow instructions in h5/glide3 and /* h3/glide3. @@ -148,7 +151,7 @@ LOCAL(win_coordinates): test %ebp , %ebp /* does state need validation? */ jz LOCAL(no_validation) /* valid, don't need to validate */ - call _grValidateState /* validate state */ + call EXTRN(_grValidateState) /* validate state */ LOCAL(no_validation): @@ -160,7 +163,7 @@ LOCAL(no_validation): mov _vc(%esp) , fc /* get base address of vertex C */ nop /* filler */ -.align 4 +ALIGN(4) femms /* will use AMD3D, clear FPU/MMX registers */ @@ -214,14 +217,14 @@ LOCAL(no_validation): push $0x0 /* pointer to function name = NULL */ push tempVal /* fifo space required */ - call _grCommandTransportMakeRoom /* note: updates fifoPtr */ + call EXTRN(_grCommandTransportMakeRoom) /* note: updates fifoPtr */ add $12, %esp jmp LOCAL(__triBegin) /* merge back with short path */ /* culling disabled */ -.align 4 +ALIGN(4) LOCAL(nocull): /* Check to make sure that we have enough room for */ @@ -237,7 +240,7 @@ LOCAL(nocull): push $0x0 /* pointer to function name = NULL */ push tempVal /* fifo space needed */ - call _grCommandTransportMakeRoom /* note: updates fifoPtr */ + call EXTRN(_grCommandTransportMakeRoom) /* note: updates fifoPtr */ add $12, %esp #else /* !GLIDE_CULLING */ @@ -280,7 +283,7 @@ LOCAL(nocull): ret /* return, pop 3 DWORD arguments off stack */ -.align 4 +ALIGN(4) LOCAL(win_coordinates): #endif @@ -289,7 +292,7 @@ LOCAL(win_coordinates): test %ebp , %ebp /* does state need validation? */ jz LOCAL(no_validation) /* valid, don't need to validate */ - call _grValidateState /* validate state */ + call EXTRN(_grValidateState) /* validate state */ LOCAL(no_validation): @@ -308,7 +311,7 @@ LOCAL(no_validation): push $0x0 /* pointer to function name = NULL */ push tempVal /* fifo space needed */ - call _grCommandTransportMakeRoom /* note: updates fifoPtr */ + call EXTRN(_grCommandTransportMakeRoom) /* note: updates fifoPtr */ add $12, %esp jmp LOCAL(__triBegin) /* large distance due to alignment */ @@ -319,7 +322,7 @@ LOCAL(no_validation): #define dlpstrt %ecx /* points to begin of dataList structure */ #define vertex %edx /* the current vertex */ -.align 4 +ALIGN(4) LOCAL(__triBegin): mov triPacketHdr(gc) , %eax /* Packet 3 header */ @@ -709,7 +712,7 @@ LOCAL(__triDone_cull): mov (%edx) , %ebx test $1 , %ebx jnz LOCAL(__triDone) -.align 4 +ALIGN(4) #endif LOCAL(pastContextTest): @@ -718,8 +721,8 @@ LOCAL(pastContextTest): movl invalid(gc) , %edx test %edx , %edx je LOCAL(no_validation) - call _grValidateState -.align 4 + call EXTRN(_grValidateState) +ALIGN(4) #endif LOCAL(no_validation): @@ -781,7 +784,7 @@ LOCAL(Area_Computation): xor cull , intArea /* if (j ^ (culltest << 31)) */ jge LOCAL(__triDone) -.align 4 +ALIGN(4) #endif /* GLIDE_CULLING */ LOCAL(nocull): @@ -799,7 +802,7 @@ LOCAL(nocull): push $0x0 push %eax - call _grCommandTransportMakeRoom + call EXTRN(_grCommandTransportMakeRoom) add $12, %esp /* Send triangle parameters */ @@ -816,7 +819,7 @@ LOCAL(nocull): mov \__data , \__offset(\__addr) .endm /* GR_FIFO_WRITE */ -.align 4 +ALIGN(4) LOCAL(__triBegin): mov fifoPtr(gc) , fifo /* Fetch Fifo Ptr */ mov $_va-STKOFF , vOffset /* Starting vertex */ @@ -827,7 +830,7 @@ LOCAL(__triBegin): GR_FIFO_WRITE fifo , 0 , %eax /* Write packet header to fifo */ add $4 , fifo /* Advance fifo for hdr & x/y coordinate */ -.align 4 +ALIGN(4) LOCAL(__vertexStart): mov STKOFF(%esp, vOffset) , vertex /* Current vertex */ add $8 , fifo @@ -868,7 +871,7 @@ LOCAL(__paramLoop): jne LOCAL(__paramLoop) -.align 4 +ALIGN(4) LOCAL(__nextVertex): /* On to the next vertex */ add $4 , vOffset diff --git a/glide3x/h3/glide3/src/xdraw3.S b/glide3x/h3/glide3/src/xdraw3.S index 56d1bcb..8b11c95 100644 --- a/glide3x/h3/glide3/src/xdraw3.S +++ b/glide3x/h3/glide3/src/xdraw3.S @@ -20,6 +20,13 @@ .file "xdraw3.asm" +/* [dBorca] */ +#include "assyntax.h" +#ifdef __DJGPP__ +#define THREADVALUE EXTRN(threadValueDJGPP) +#else +#define THREADVALUE threadValueLinux +#endif #ifdef GL_AMD3D @@ -34,7 +41,7 @@ .section .rodata .data -.align 8 +ALIGN(8) .type btab,@object .size btab,4 btab: .int 8 @@ -55,13 +62,11 @@ vertices: .int 0 .text -.align 32 -.globl _grDrawTriangles_3DNow +ALIGN(32) +GLOBL(_grDrawTriangles_3DNow) #define _mode 20 #define _count 24 #define _pointers 28 -.type _grDrawTriangles_3DNow,@function -_grDrawTriangles_3DNow: /* 930 : { */ /* 931 : #define FN_NAME "_grDrawTriangles" */ @@ -96,7 +101,7 @@ _grDrawTriangles_3DNow: push %ebx /* save caller's register variable */ mov _count-4(%esp) , %vertexCount /* number of vertices in triangles */ - movl (threadValueLinux) , %gc + movl (THREADVALUE) , %gc mov _pointers-4(%esp) , %vertexPtr /* get current vertex pointer (deref mode) */ push %ebp /* save frame pointer */ @@ -108,7 +113,7 @@ _grDrawTriangles_3DNow: test %edx , %edx /* do we need to validate state ? */ je .L_grDrawTriangles_3DNow_no_validation /* nope, it's valid */ - call _grValidateState /* validate state */ + call EXTRN(_grValidateState) /* validate state */ .L_grDrawTriangles_3DNow_no_validation: @@ -195,10 +200,10 @@ _grDrawTriangles_3DNow: push $0x0 /* pointer to function name = NULL */ push %ecx /* fifo space needed */ - call _grCommandTransportMakeRoom /* note: updates fifoPtr */ + call EXTRN(_grCommandTransportMakeRoom) /* note: updates fifoPtr */ add $12, %esp -.align 32 +ALIGN(32) .L_grDrawTriangles_3DNow_win_tri_begin_ND: mov %vertexCount , %eax /* number of vertices in triangles */ @@ -394,7 +399,7 @@ _grDrawTriangles_3DNow: ret /* return, pop 3 DWORD parameters off stack */ -.align 32 +ALIGN(32) .L_grDrawTriangles_3DNow_deref_mode: @@ -425,10 +430,10 @@ _grDrawTriangles_3DNow: push $0x0 /* pointer to function name = NULL */ push %ecx /* fifo space needed */ - call _grCommandTransportMakeRoom /* note: updates fifoPtr */ + call EXTRN(_grCommandTransportMakeRoom) /* note: updates fifoPtr */ add $12, %esp -.align 32 +ALIGN(32) .L_grDrawTriangles_3DNow_win_tri_begin_D: mov %vertexCount , %eax /* number of vertices in triangles */ @@ -602,7 +607,7 @@ _grDrawTriangles_3DNow: ret /* return, pop 3 DWORD parameters off stack */ -.align 32 +ALIGN(32) /* 989 : } */ /* 990 : else { */ @@ -646,7 +651,7 @@ _grDrawTriangles_3DNow: #define dataElem ebp /* number of vertex components processed */ - movd (_GlideRoot+pool_f255) , %mm6 /* GlideRoot.pool.f255 */ + movd (EXTRN(_GlideRoot)+pool_f255) , %mm6 /* GlideRoot.pool.f255 */ .L_grDrawTriangles_3DNow_clip_coords_begin: @@ -670,10 +675,10 @@ _grDrawTriangles_3DNow: push $0x0 /* pointer to function name = NULL */ push %ecx /* fifo space needed */ - call _grCommandTransportMakeRoom /* note: updates fifoPtr */ + call EXTRN(_grCommandTransportMakeRoom) /* note: updates fifoPtr */ add $12, %esp -.align 32 +ALIGN(32) .L_grDrawTriangles_3DNow_clip_tri_begin: mov %vertexCount , %edx /* number of vertices in triangles */ mov fifoPtr(%gc) , %fifo /* get fifoPtr */ @@ -1109,11 +1114,9 @@ _grDrawTriangles_3DNow: #define X 0 #define Y 4 -.align 32 +ALIGN(32) -.globl _grDrawVertexList_3DNow_Window -.type _grDrawVertexList_3DNow_Window,@function -_grDrawVertexList_3DNow_Window: +GLOBL(_grDrawVertexList_3DNow_Window) /* 132 : { */ push %edi /* save caller's register variable */ @@ -1127,7 +1130,7 @@ _grDrawVertexList_3DNow_Window: mov _pointers(%esp) , %vertexPtr /* get current vertex pointer (deref mode) */ /* get current vertex (non-deref mode) */ - movl (threadValueLinux) , %gc + movl (THREADVALUE) , %gc test %vertexCount , %vertexCount /* number of vertices <= 0 ? */ nop /* filler */ @@ -1196,10 +1199,10 @@ _grDrawVertexList_3DNow_Window: push $0x0 /* pointer to function name = NULL */ push %ecx /* fifo space needed */ - call _grCommandTransportMakeRoom /* note: updates fifoPtr */ + call EXTRN(_grCommandTransportMakeRoom) /* note: updates fifoPtr */ add $12, %esp -.align 32 +ALIGN(32) .L_grDrawVertexList_3DNow_Window_win_strip_begin_ND: /* Setup packet header */ @@ -1328,7 +1331,7 @@ _grDrawVertexList_3DNow_Window: ret /* return, pop 5 DWORD parameters off stack */ -.align 32 +ALIGN(32) .L_grDrawVertexList_3DNow_Window_fifo_aligned_ND: @@ -1428,7 +1431,7 @@ _grDrawVertexList_3DNow_Window: ret /* return, pop 5 DWORD parameters off stack */ -.align 32 +ALIGN(32) .L_grDrawVertexList_3DNow_Window_deref_mode: @@ -1458,10 +1461,10 @@ _grDrawVertexList_3DNow_Window: push $0x0 /* pointer to function name = NULL */ push %ecx /* fifo space needed */ - call _grCommandTransportMakeRoom /* note: updates fifoPtr */ + call EXTRN(_grCommandTransportMakeRoom) /* note: updates fifoPtr */ add $12, %esp -.align 32 +ALIGN(32) .L_grDrawVertexList_3DNow_Window_win_strip_begin_D: /* Setup packet header */ @@ -1591,7 +1594,7 @@ _grDrawVertexList_3DNow_Window: ret /* return, pop 5 DWORD parameters off stack */ -.align 32 +ALIGN(32) .L_grDrawVertexList_3DNow_Window_fifo_aligned_D: @@ -1698,12 +1701,10 @@ _grDrawVertexList_3DNow_Window: -.globl _grDrawVertexList_3DNow_Clip -.type _grDrawVertexList_3DNow_Clip,@function -_grDrawVertexList_3DNow_Clip: +GLOBL(_grDrawVertexList_3DNow_Clip) /* 132 : { */ -.align 32 +ALIGN(32) push %edi /* save caller's register variable */ @@ -1716,7 +1717,7 @@ _grDrawVertexList_3DNow_Clip: mov _pointers(%esp) , %vertexPtr /* get current vertex pointer (deref mode) */ /* get current vertex (non-deref mode) */ - movl (threadValueLinux) , %gc + movl (THREADVALUE) , %gc test %vertexCount , %vertexCount /* number of vertices <= 0 ? */ jle .L_grDrawVertexList_3DNow_Clip_strip_done /* yup, the strip/fan is done */ @@ -1743,7 +1744,7 @@ _grDrawVertexList_3DNow_Clip: test %edx , %edx /* mode 0 (array of vertices) ? */ mov vertexStride(%gc) , %edx /* get stride in DWORDs */ - movd (_GlideRoot+pool_f255) , %mm6 /* GlideRoot.pool.f255 */ + movd (EXTRN(_GlideRoot)+pool_f255) , %mm6 /* GlideRoot.pool.f255 */ movl $4 , (strideinbytes) /* array of pointers */ jnz .L_grDrawVertexList_3DNow_Clip_clip_coords_begin /* nope, it's mode 1 */ @@ -1753,7 +1754,7 @@ _grDrawVertexList_3DNow_Clip: shl $2 , %edx /* stride in bytes */ movl %edx , (strideinbytes) /* save off stride (in bytes) */ -.align 32 +ALIGN(32) .L_grDrawVertexList_3DNow_Clip_clip_coords_begin: #define dataElem ebp /* number of vertex components processed */ @@ -1784,10 +1785,10 @@ _grDrawVertexList_3DNow_Clip: push $0x0 /* pointer to function name = NULL */ push %ecx /* fifo space needed */ - call _grCommandTransportMakeRoom /* note: updates fifoPtr */ + call EXTRN(_grCommandTransportMakeRoom) /* note: updates fifoPtr */ add $12, %esp -.align 32 +ALIGN(32) .L_grDrawVertexList_3DNow_Clip_clip_strip_begin: /* TRI_STRIP_BEGIN(type, vcount, vSize, pktype) */ @@ -1916,7 +1917,7 @@ _grDrawVertexList_3DNow_Clip: movd %mm2 , -4(%fifo) /* PCI write a*255 */ jmp .L_grDrawVertexList_3DNow_Clip_clip_setup_ooz /* check whether we need to push out z */ -.align 32 +ALIGN(32) .L_grDrawVertexList_3DNow_Clip_clip_setup_pargb: movd (%eax,%edx) , %mm2 /* get packed ARGB data */ @@ -2013,7 +2014,7 @@ _grDrawVertexList_3DNow_Clip: movd %mm2 , -4(%fifo) /* PCI write transformed Q */ jmp .L_grDrawVertexList_3DNow_Clip_clip_setup_qow0 /* continue with q0 */ -.align 32 +ALIGN(32) .L_grDrawVertexList_3DNow_Clip_clip_setup_oow: add $4 , %fifo /* fifoPtr += sizeof(FxFloat) */ @@ -2041,7 +2042,7 @@ _grDrawVertexList_3DNow_Clip: movd %mm2 , -4(%fifo) /* PCI write transformed q0 */ jmp .L_grDrawVertexList_3DNow_Clip_clip_setup_stow0 /* continue with stow0 */ -.align 32 +ALIGN(32) .L_grDrawVertexList_3DNow_Clip_clip_setup_oow0: add $4 , %fifo /* fifoPtr += sizeof(FxFloat) */ @@ -2091,7 +2092,7 @@ _grDrawVertexList_3DNow_Clip: movd %mm2 , -4(%fifo) /* PCI write transformed q1 */ jmp .L_grDrawVertexList_3DNow_Clip_clip_setup_stow1 /* continue with stow1 */ -.align 32 +ALIGN(32) .L_grDrawVertexList_3DNow_Clip_clip_setup_oow1: add $4 , %fifo /* fifoPtr += sizeof(FxFloat) */ @@ -2245,18 +2246,16 @@ vPtr2: .int 0 #define vertexCount ebx /* Current vertex counter in the packet */ #define vertexPtr edi /* Current vertex pointer */ -.align 32 +ALIGN(32) -.globl _drawvertexlist -.type _drawvertexlist,@function -_drawvertexlist: +GLOBL(_drawvertexlist) /* 132 : { */ #if 0 movl (0x18) , %eax /* get thread local storage base pointer */ push %esi - mov (_GlideRoot+tlsOffset) , %esi /* GC position relative to tls base */ + mov (EXTRN(_GlideRoot)+tlsOffset) , %esi /* GC position relative to tls base */ push %edi movl (%eax,%esi) , %gc @@ -2265,7 +2264,7 @@ _drawvertexlist: push %esi push %edi push %ebx - movl (threadValueLinux) , %gc + movl (THREADVALUE) , %gc #endif /* GR_DCL_GC */ @@ -2288,7 +2287,7 @@ _drawvertexlist: movl vertexStride(%gc) , %edx shl $2 , %edx -.align 4 +ALIGN(4) .L_drawvertexlist_no_stride: /* Draw the first (or possibly only) set. This is necessary because */ @@ -2312,14 +2311,14 @@ _drawvertexlist: test %eax , %eax jle .L_drawvertexlist_strip_done -.align 4 +ALIGN(4) .L_drawvertexlist_window_coords_begin: cmp $15 , %vertexCount /* 0000000fH */ jl .L_drawvertexlist_win_partial_packet mov $15 , %vertexCount /* 0000000fH */ -.align 4 +ALIGN(4) .L_drawvertexlist_win_partial_packet: movl vSize , %eax @@ -2331,10 +2330,10 @@ _drawvertexlist: pushl $__LINE__ push $0x0 push %eax - call _grCommandTransportMakeRoom + call EXTRN(_grCommandTransportMakeRoom) add $12, %esp -.align 4 +ALIGN(4) .L_drawvertexlist_win_strip_begin: /* Setup pacet header */ @@ -2366,7 +2365,7 @@ _drawvertexlist: /* TRI_SETF(FARRAY(vPtr, 4)) */ /* i = gc->tsuDataList[dataElem] */ -.align 4 +ALIGN(4) .L_drawvertexlist_win_for_begin: mov %vertexPtr , %edx @@ -2375,7 +2374,7 @@ _drawvertexlist: jne .L_drawvertexlist_win_no_deref movl (%vertexPtr) , %edx -.align 4 +ALIGN(4) .L_drawvertexlist_win_no_deref: add $8 , %fifo @@ -2393,7 +2392,7 @@ _drawvertexlist: leal tsuDataList(%gc) , %dlp je .L_drawvertexlist_win_datalist_end -.align 4 +ALIGN(4) /* while (i != GR_DLIST_END) { */ /* TRI_SETF(FARRAY(vPtr, i)) */ @@ -2464,18 +2463,16 @@ _drawvertexlist: #define fifo ecx /* points to next entry in fifo */ #define vertexPtr edx /* pointer to vertex or vertex array */ -.align 32 +ALIGN(32) -.globl _vpdrawvertexlist -.type _vpdrawvertexlist,@function -_vpdrawvertexlist: +GLOBL(_vpdrawvertexlist) push %esi push %edi push %ebx - movl (threadValueLinux) , %gc + movl (THREADVALUE) , %gc push %ebp movl _mode(%esp) , %ecx @@ -2488,7 +2485,7 @@ _vpdrawvertexlist: movl (%edi) , %edi -.align 4 +ALIGN(4) .L_vpdrawvertexlist_w_no_dref: /* load first w */ @@ -2512,7 +2509,7 @@ _vpdrawvertexlist: movl vertexStride(%gc) , %edx shl $2 , %edx -.align 4 +ALIGN(4) .L_vpdrawvertexlist_no_stride: movl %edx , strideinbytes @@ -2540,10 +2537,10 @@ _vpdrawvertexlist: pushl $__LINE__ push $0x0 push %eax - call _grCommandTransportMakeRoom + call EXTRN(_grCommandTransportMakeRoom) add $12, %esp -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_strip_begin: /* TRI_STRIP_BEGIN(type, vcount, vSize, pktype) */ @@ -2574,7 +2571,7 @@ _vpdrawvertexlist: je .L_vpdrawvertexlist_clip_for_begin movl (%vertexPtr) , %vertexPtr -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_for_begin: add $8 , %fifo @@ -2618,11 +2615,11 @@ _vpdrawvertexlist: add $12 , %fifo mov $3 , %ebp - flds _GlideRoot+pool_f255 + flds EXTRN(_GlideRoot)+pool_f255 fmuls (%ebx,%vertexPtr) - flds _GlideRoot+pool_f255 + flds EXTRN(_GlideRoot)+pool_f255 fmuls 4(%ebx,%vertexPtr) - flds _GlideRoot+pool_f255 + flds EXTRN(_GlideRoot)+pool_f255 fmuls 8(%ebx,%vertexPtr) fxch %st(2) fstps -12(%fifo) @@ -2630,7 +2627,7 @@ _vpdrawvertexlist: fstps -4(%fifo) movl tsuDataList+12(%gc) , %ebx -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_a: test $2 , %al @@ -2640,13 +2637,13 @@ _vpdrawvertexlist: inc %ebp flds (%ebx,%vertexPtr) - fmuls _GlideRoot+pool_f255 + fmuls EXTRN(_GlideRoot)+pool_f255 fstps -4(%fifo) movl tsuDataList(%gc,%ebp,4) , %ebx jmp .L_vpdrawvertexlist_clip_setup_ooz -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_pargb: add $4 , %fifo movl (%ebx,%vertexPtr) , %ebx @@ -2656,7 +2653,7 @@ _vpdrawvertexlist: mov $1 , %ebp movl tsuDataList+4(%gc) , %ebx -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_ooz: test $4 , %al @@ -2680,7 +2677,7 @@ _vpdrawvertexlist: movl tsuDataList(%gc,%ebp,4) , %ebx jmp .L_vpdrawvertexlist_clip_setup_qow -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_fog_oow: movl ccoow , %ebx @@ -2688,7 +2685,7 @@ _vpdrawvertexlist: movl tsuDataList(%gc,%ebp,4) , %ebx jmp .L_vpdrawvertexlist_clip_setup_qow -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_ooz_nofog: flds (%ebx,%vertexPtr) @@ -2698,7 +2695,7 @@ _vpdrawvertexlist: fstps -4(%fifo) movl tsuDataList(%gc,%ebp,4) , %ebx -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_qow: test $8 , %al @@ -2715,7 +2712,7 @@ _vpdrawvertexlist: jmp .L_vpdrawvertexlist_clip_setup_oow_inc -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_oow_nofog: movl qInfo_mode(%gc) , %ebx @@ -2729,19 +2726,19 @@ _vpdrawvertexlist: jmp .L_vpdrawvertexlist_clip_setup_oow_inc -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_oow: movl ccoow , %ebx movl %ebx , (%fifo) -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_oow_inc: movl tsuDataList+4(%gc,%ebp,4) , %ebx add $4 , %fifo inc %ebp -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_qow0: test $16 , %al @@ -2758,18 +2755,18 @@ _vpdrawvertexlist: fstps (%fifo) jmp .L_vpdrawvertexlist_clip_setup_oow0_inc -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_oow0: movl ccoow , %ebx movl %ebx , (%fifo) -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_oow0_inc: movl tsuDataList+4(%gc,%ebp,4) , %ebx add $4 , %fifo inc %ebp -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_stow0: test $32 , %al @@ -2791,7 +2788,7 @@ _vpdrawvertexlist: fstps -8(%fifo) fstps -4(%fifo) -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_qow1: test $64 , %al @@ -2808,12 +2805,12 @@ _vpdrawvertexlist: fstps (%fifo) jmp .L_vpdrawvertexlist_clip_setup_oow1_inc -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_oow1: movl ccoow , %ebx movl %ebx , (%fifo) -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_oow1_inc: movl tsuDataList+4(%gc,%ebp,4) , %ebx @@ -2821,7 +2818,7 @@ _vpdrawvertexlist: inc %ebp -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_stow1: test $128 , %al @@ -2839,7 +2836,7 @@ _vpdrawvertexlist: fstps -8(%fifo) fstps -4(%fifo) -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_setup_end: dec %edi @@ -2853,7 +2850,7 @@ _vpdrawvertexlist: movl (%vertexPtr) , %vertexPtr -.align 4 +ALIGN(4) .L_vpdrawvertexlist_w_clip_no_deref: movl wInfo_offset(%gc) , %ebx @@ -2862,7 +2859,7 @@ _vpdrawvertexlist: fdivrs _F1 jmp .L_vpdrawvertexlist_clip_for_begin -.align 4 +ALIGN(4) .L_vpdrawvertexlist_clip_for_end: movl fifoPtr(%gc) , %ebx @@ -2889,7 +2886,7 @@ _vpdrawvertexlist: je .L_vpdrawvertexlist_w1_clip_no_deref movl (%edx) , %edx -.align 4 +ALIGN(4) .L_vpdrawvertexlist_w1_clip_no_deref: movl wInfo_offset(%gc) , %ebx @@ -2897,7 +2894,7 @@ _vpdrawvertexlist: fdivrs _F1 jmp .L_vpdrawvertexlist_clip_coords_begin -.align 4 +ALIGN(4) .L_vpdrawvertexlist_strip_done: pop %ebp @@ -2919,11 +2916,9 @@ _vpdrawvertexlist: /* YOU HAVE BEEN WARNED */ -.align 32 +ALIGN(32) -.globl _vptrisetup_cull -.type _vptrisetup_cull,@function -_vptrisetup_cull: +GLOBL(_vptrisetup_cull) #define _va 20 #define _vb 24 #define _vc 28 @@ -2959,7 +2954,7 @@ _vptrisetup_cull: /* GR_SET_EXPECTED_SIZE(_GlideRoot.curTriSize, 1) */ - movl _GlideRoot+curTriSize , %eax + movl EXTRN(_GlideRoot)+curTriSize , %eax movl fifoRoom(%gc) , %ecx add $4 , %eax @@ -2972,10 +2967,10 @@ _vptrisetup_cull: push $0x0 /* pointer to function name = NULL */ push %eax - call _grCommandTransportMakeRoom + call EXTRN(_grCommandTransportMakeRoom) add $12, %esp -.align 4 +ALIGN(4) .L_vptrisetup_cull_setup_pkt_hdr: /* TRI_STRIP_BEGIN(kSetupStrip, 3, gc->state.vData.vSize, SSTCP_PKT3_BDDBDD) */ @@ -2998,7 +2993,7 @@ _vptrisetup_cull: /* Begin loop */ -.align 4 +ALIGN(4) .L_vptrisetup_cull_begin_for_loop: add $4 , %edx @@ -3039,11 +3034,11 @@ _vptrisetup_cull: add $12 , %fifo add $3 , %ebx - flds _GlideRoot+pool_f255 + flds EXTRN(_GlideRoot)+pool_f255 fmuls (%vertexPtr,%ebp) - flds _GlideRoot+pool_f255 + flds EXTRN(_GlideRoot)+pool_f255 fmuls 4(%vertexPtr,%ebp) - flds _GlideRoot+pool_f255 + flds EXTRN(_GlideRoot)+pool_f255 fmuls 8(%vertexPtr,%ebp) fxch %st(2) fstps -12(%fifo) @@ -3051,7 +3046,7 @@ _vptrisetup_cull: fstps -4(%fifo) movl tsuDataList+12(%gc) , %ebp -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_a: test $2 , %al @@ -3061,12 +3056,12 @@ _vptrisetup_cull: inc %ebx flds (%vertexPtr,%ebp) - fmuls _GlideRoot+pool_f255 + fmuls EXTRN(_GlideRoot)+pool_f255 fstps -4(%fifo) movl tsuDataList(%gc, %ebx, 4) , %ebp jmp .L_vptrisetup_cull_clip_setup_ooz -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_pargb: add $4 , %fifo movl (%vertexPtr,%ebp) , %ebx @@ -3076,7 +3071,7 @@ _vptrisetup_cull: mov $1 , %ebx movl tsuDataList+4(%gc) , %ebp -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_ooz: test $4 , %al @@ -3100,7 +3095,7 @@ _vptrisetup_cull: movl tsuDataList(%gc, %ebx, 4) , %ebp jmp .L_vptrisetup_cull_clip_setup_qow -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_fog_oow: movl oowa , %ebp @@ -3108,7 +3103,7 @@ _vptrisetup_cull: movl tsuDataList(%gc, %ebx, 4) , %ebp jmp .L_vptrisetup_cull_clip_setup_qow -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_ooz_nofog: flds (%vertexPtr,%ebp) @@ -3118,7 +3113,7 @@ _vptrisetup_cull: fstps -4(%fifo) movl tsuDataList(%gc, %ebx, 4) , %ebp -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_qow: test $8 , %al @@ -3133,7 +3128,7 @@ _vptrisetup_cull: fstps (%fifo) jmp .L_vptrisetup_cull_clip_setup_oow_inc -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_oow_nofog: cmpl $1 , qInfo_mode(%gc) jne .L_vptrisetup_cull_clip_setup_oow @@ -3144,19 +3139,19 @@ _vptrisetup_cull: fstps (%fifo) jmp .L_vptrisetup_cull_clip_setup_oow_inc -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_oow: movl oowa , %ebp movl %ebp , (%fifo) -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_oow_inc: movl tsuDataList+4(%gc, %ebx, 4) , %ebp add $4 , %fifo inc %ebx -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_qow0: test $16 , %al /* 00000010H */ @@ -3172,18 +3167,18 @@ _vptrisetup_cull: fstps (%fifo) jmp .L_vptrisetup_cull_clip_setup_oow0_inc -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_oow0: movl oowa , %ebp movl %ebp , (%fifo) -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_oow0_inc: movl tsuDataList+4(%gc, %ebx, 4) , %ebp add $4 , %fifo inc %ebx -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_stow0: test $32 , %al @@ -3205,7 +3200,7 @@ _vptrisetup_cull: fstps -8(%fifo) fstps -4(%fifo) -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_qow1: test $64 , %al @@ -3221,18 +3216,18 @@ _vptrisetup_cull: fstps (%fifo) jmp .L_vptrisetup_cull_clip_setup_oow1_inc -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_oow1: movl oowa , %ebp movl %ebp , (%fifo) -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_oow1_inc: movl tsuDataList+4(%gc, %ebx, 4) , %ebp add $4 , %fifo inc %ebx -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_stow1: test $128 , %al @@ -3250,7 +3245,7 @@ _vptrisetup_cull: fstps -8(%fifo) fstps -4(%fifo) -.align 4 +ALIGN(4) .L_vptrisetup_cull_clip_setup_end: cmp $12 , %edx @@ -3265,7 +3260,7 @@ _vptrisetup_cull: movl (%ebx,%edx) , %vertexPtr jmp .L_vptrisetup_cull_begin_for_loop -.align 4 +ALIGN(4) .L_vptrisetup_cull_update_fifo_ptr: movl fifoPtr(%gc) , %ebx @@ -3281,7 +3276,7 @@ _vptrisetup_cull: pop %edi movl %fifo , fifoPtr(%gc) - movl _GlideRoot+trisProcessed , %ebx + movl EXTRN(_GlideRoot)+trisProcessed , %ebx /* _GlideRoot.stats.trisProcessed++ */ @@ -3289,7 +3284,7 @@ _vptrisetup_cull: pop %esi inc %ebx - movl %ebx , _GlideRoot+trisProcessed + movl %ebx , EXTRN(_GlideRoot)+trisProcessed pop %ebx ret /* 0000000cH */ diff --git a/glide3x/h3/glide3/src/xtexdl.S b/glide3x/h3/glide3/src/xtexdl.S index 405c235..a393db8 100644 --- a/glide3x/h3/glide3/src/xtexdl.S +++ b/glide3x/h3/glide3/src/xtexdl.S @@ -20,7 +20,10 @@ /* $Header$ */ /* $Revision$ */ -/* $Log$ */ +/* $Log$ +/* Revision 1.1.1.1 1999/11/24 21:45:00 joseph +/* Initial checkin for SourceForge +/* */ /* */ /* 5 4/08/99 6:21p Atai */ /* added contect check for _grTexDownload_3DNow_MMX */ @@ -64,6 +67,8 @@ .file "xtexdl.asm" +/* [dBorca] */ +#include "assyntax.h" #ifdef USE_PACKET_FIFO #endif @@ -100,12 +105,9 @@ .text -.align 32 +ALIGN(32) -.globl _grTexDownload_3DNow_MMX - -.type _grTexDownload_3DNow_MMX,@function -_grTexDownload_3DNow_MMX: +GLOBL(_grTexDownload_3DNow_MMX) push %ebx /* save caller's register variable */ mov _maxT-12(%esp) , %curT /* curT = maxT */ @@ -175,7 +177,7 @@ _grTexDownload_3DNow_MMX: push $0 /* NULL file name */ push $4 /* fifo space required (bytes) */ - call _grCommandTransportMakeRoom /* make fifo room */ + call EXTRN(_grCommandTransportMakeRoom) /* make fifo room */ add $12, %esp #endif @@ -198,7 +200,7 @@ _grTexDownload_3DNow_MMX: mov %fifo , fifoPtr(%gc) /* store new fifoPtr */ jmp .L_grTexDownload_3DNow_MMX___startDownload /* fifo aligned, download texture now */ -.align 32 +ALIGN(32) /* ebx = curT, edi = dataPtr, esi = gc, ebp = fifo, ecx = maxS = curS */ /* edx=fifoRoom, mm1 = texAddr|packetHdr, mm2 = TEX_ROW_ADDR_INCR(1)|0 */ @@ -270,7 +272,7 @@ _grTexDownload_3DNow_MMX: push $0x0 /* NULL file name */ push %eax /* fifo space required */ - call _grCommandTransportMakeRoom /* make fifo room (if fifoPtr QWORD aligned before */ + call EXTRN(_grCommandTransportMakeRoom) /* make fifo room (if fifoPtr QWORD aligned before */ add $12, %esp #endif diff --git a/glide3x/h3/minihwc/dos_mode.c b/glide3x/h3/minihwc/dos_mode.c index 20e9160..9f40a22 100644 --- a/glide3x/h3/minihwc/dos_mode.c +++ b/glide3x/h3/minihwc/dos_mode.c @@ -19,6 +19,9 @@ ** ** $Header$ ** $Log$ +** Revision 1.1.1.1 1999/11/24 21:45:03 joseph +** Initial checkin for SourceForge +** ** ** 3 4/06/99 3:36p Dow ** Alt tab stuff @@ -38,7 +41,12 @@ #include #include <3dfx.h> +/* [dBorca] */ +#ifdef __DJGPP__ +#include +#else #include +#endif #include static FxU16 oldVidMode; @@ -54,11 +62,24 @@ static ResTableEntry _table[] = { { 640, 480, 0x111 }, { 800, 600, 0x114 }, { 1024, 768, 0x117 }, +/* [dBorca] */ +#ifdef H4 + { 320, 200, 0x010e }, + { 320, 240, 0x0182 }, + { 400, 300, 0x0185 }, + { 640, 400, 0x018a }, + { 1280, 1024, 0x011a }, +#endif { 0, 0, 0 } }; static unsigned long _tableSize = sizeof( _table ) / sizeof( ResTableEntry ); +/* [dBorca] */ +#include "glide.h" +#include "fxglide.h" +extern FxBool h3VideoMode (FxU32 regBase, FxU32 xRes, FxU32 yRes, FxU32 refresh); + FxBool setVideoMode( unsigned long dummy, int xres, int yres, int refresh, void *hmon ) { @@ -81,9 +102,17 @@ setVideoMode( unsigned long dummy, int xres, int yres, int refresh, void *hmon ) } } - if ( mode == 0 ) { - GDBG_INFO(80, "Setmode failed -- unimplemented resolution\n" ); - return FXFALSE; + /* [dBorca] + * if resolution not found or refresh rate != 0, try the hard way... + */ + if ((mode == 0) || (refresh != 0)) { + GR_DCL_GC; + if (!h3VideoMode(gc->bInfo->regInfo.ioPortBase, xres, yres, refresh)) { + GDBG_INFO(80, "Setmode failed -- unimplemented resolution\n" ); + return FXFALSE; + } else { + return FXTRUE; + } } @@ -96,8 +125,9 @@ setVideoMode( unsigned long dummy, int xres, int yres, int refresh, void *hmon ) int386(0x10, &r, &rOut); /* XXXTACO!! - We should check the return value */ - - return FXTRUE; + + /* [dBorca] */ + return (rOut.w.ax==0x004f); } /* setVideoMode */ void diff --git a/glide3x/h3/minihwc/minihwc.c b/glide3x/h3/minihwc/minihwc.c index 8029e82..bbfb1ca 100644 --- a/glide3x/h3/minihwc/minihwc.c +++ b/glide3x/h3/minihwc/minihwc.c @@ -19,6 +19,9 @@ ** ** $Header$ ** $Log$ +** Revision 1.1.1.1 1999/11/24 21:45:07 joseph +** Initial checkin for SourceForge +** ** ** 27 6/24/99 12:45a Stb_mmcclure ** Modifications to fix PRS 6627. Added hwcUnmapMemory9x for revised 9x @@ -576,6 +579,9 @@ modify [eax]; #define P6FENCE { __asm xchg eax, fenceVar } #elif defined(__POWERPC__) && defined(__MWERKS__) #define P6FENCE __eieio() +/* [dBorca] */ +#elif defined(__DJGPP__) +#define P6FENCE __asm __volatile ("xchg %%eax, _fenceVar":::"%eax"); #else #error "P6 Fencing in-line assembler code needs to be added for this compiler" #endif /* Compiler specific fence commands */ @@ -1200,7 +1206,10 @@ hwcInitRegisters(hwcBoardInfo *bInfo) if (GETENV("SSTH3_GRXCLOCK") || GETENV("SSTH3_MEMCLOCK")) { switch (bInfo->pciInfo.deviceID) { case 0x03: /* banshee */ +/* [dBorca] `h3InitPlls' is missing when H4 is defined */ +#ifndef H4 h3InitPlls(bInfo->regInfo.ioPortBase, grxSpeedInMHz, memSpeedInMHz); +#endif break; case 0x5: /* voodoo3/avenger */ break; @@ -4191,11 +4200,17 @@ hwcShareContextData(hwcBoardInfo *bInfo, FxU32 **data) GDBG_INFO(80, FN_NAME ": pointer to context = 0x%x\n", ctxRes.optData.shareContextDWORDRes.contextDWORD); -#endif + +/* [dBorca] that must be initialized to something... */ +#elif defined(__DJGPP__) + *data = &dummyContextDWORD; +#endif return retVal; #undef FN_NAME } /* hwcShareContextData */ +/* [dBorca] */ +#ifdef HWC_EXT_INIT void hwcUnmapMemory9x(hwcBoardInfo *bInfo) { @@ -4217,7 +4232,6 @@ hwcUnmapMemory9x(hwcBoardInfo *bInfo) } /* hwcUnmapMemory9x */ -#ifdef HWC_EXT_INIT void hwcUnmapMemory() { diff --git a/glide3x/h5/glide3/src/cpuid.c b/glide3x/h5/glide3/src/cpuid.c index 212efa5..49a4c2f 100644 --- a/glide3x/h5/glide3/src/cpuid.c +++ b/glide3x/h5/glide3/src/cpuid.c @@ -65,20 +65,18 @@ static void handler (int signal) * In : feature request * Out : non-zero if requested feature supported * - * Note: uses standard ANSI signal mechanism + * Note: this should be in the `has_feature' body. The reason it isn't: + * under some systems (notably Linux), the `setjmp' may thrash EBX, + * which is used for PositionIndependentCode/GlobalOffsetTable system. + * Since EBX is non-volatile register, it should be restored upon return. */ -static int has_feature (int feature) +static int check_feature (int feature) { - int rv; - /* register signal handlers */ - void (*old_sigill)(int) = signal(SIGILL, handler); - if (setjmp(j)) { /* we got here only when `longjmp'ed by signal handlers */ - rv = 0; + return 0; } else { /* we have signals and jump buffer set */ - rv = 1; switch (feature) { case _CPU_HAS_CPUID: TEST_CPUID(0); break; case _CPU_FEATURE_SSE: TEST_SSE(); break; @@ -87,9 +85,29 @@ static int has_feature (int feature) case _CPU_FEATURE_MMX: TEST_MMX(); break; case _CPU_FEATURE_3DNOWPLUS: TEST_3DNOWPLUS(); break; case _CPU_FEATURE_MMXPLUS: TEST_MMXPLUS(); break; - default: rv = 0; + default: return 0; } + return !0; } +} + + + +/* Desc: perform (possibly faulting) instructions in a safe manner + * + * In : feature request + * Out : non-zero if requested feature supported + * + * Note: uses standard ANSI signal mechanism + */ +static int has_feature (int feature) +{ + int rv; + + /* register signal handlers */ + void (*old_sigill)(int) = signal(SIGILL, handler); + + rv = check_feature(feature); /* restore the signal handlers */ signal(SIGILL, old_sigill); @@ -261,6 +279,7 @@ int _cpuid (_p_info *pinfo) #ifdef __GNUC__ __asm("\n\ + pushl %%ebx \n\ /* get the vendor string */ \n\ xorl %%eax, %%eax \n\ cpuid \n\ @@ -281,6 +300,7 @@ int _cpuid (_p_info *pinfo) movl $0x80000001, %%eax \n\ cpuid \n\ movl %%edx, %1 \n\ + popl %%ebx \n\ 0: \n\ ":"=g"(dwMax), "=g"(dwExt), "=g"(dwStandard), "=g"(dwFeature), @@ -375,7 +395,7 @@ notamd: -#if CPUDEBUG +#if CPUTEST #include /* Desc: * diff --git a/glide3x/h5/glide3/src/diglide.c b/glide3x/h5/glide3/src/diglide.c index 363630f..4a7d22b 100644 --- a/glide3x/h5/glide3/src/diglide.c +++ b/glide3x/h5/glide3/src/diglide.c @@ -351,14 +351,22 @@ GR_DIENTRY(grGlideInit, void, (void)) GDBG_INFO(80,"grGlideInit()\n"); FXUNUSED(*glideIdent); + + /* dBorca - play safe */ + grErrorSetCallback(_grErrorDefaultCallback); /* KoolSmoky - let's detect glide devices *before* GETENV is called ** need to know where the devices are first if we want multimonitor ** capabilities. */ if ( !_grSstDetectResources() ) { + /* Hack alert: + * dBorca - Linux/DRI failed the above call, so bypass the next one + */ +#ifndef __linux__ #ifdef GLIDE_INIT_HWC GrErrorCallback( hwcGetErrorString(), FXTRUE ); +#endif #endif } diff --git a/glide3x/h5/glide3/src/gpci.c b/glide3x/h5/glide3/src/gpci.c index 8a1376a..f6b4c61 100644 --- a/glide3x/h5/glide3/src/gpci.c +++ b/glide3x/h5/glide3/src/gpci.c @@ -839,7 +839,7 @@ static GrTexDownloadProc _texDownloadProcs[][4][5] = #undef GETENV #endif //#if defined(HWC_EXT_INIT) -#ifndef __DJGPP__ +#if !defined(__DJGPP__) && !defined(__linux__) #define GETENV(a, b) hwcGetenvEx(a, b) #else #define GETENV(a, b) hwcGetenv(a) @@ -1098,16 +1098,10 @@ _grSstDetectResources(void) char* envChipNum; FxU32 chipCount = 1; -#ifndef __linux__ -#ifdef __DJGPP__ + if ((hInfo = hwcInit(0x121a, 0x9)) == NULL) if ((hInfo = hwcInit(0x121a, 0x5)) == NULL) /* Voodoo3 */ -#endif if ((hInfo = hwcInit(0x121a, 0x3)) == NULL) goto __errExit; -#else /* defined(__linux__) */ - if ((hInfo = hwcInit(0x121a, 0x9)) == NULL) - goto __errExit; -#endif /* defined(__linux__) */ /* Iterate through boards found */ for (ctx = 0; ctx < hInfo->nBoards; ctx++) { @@ -2158,8 +2152,10 @@ _GlideInitEnvironment(int which) /* KoolSmoky - current_sst is not always 0 */ /* _GlideRoot.current_sst = 0; */ /* make sure there's a valid GC */ _GlideRoot.current_sst = ctx; - + + /* dBorca - moved to grGlideInit grErrorSetCallback(_grErrorDefaultCallback); + */ /* KoolSmoky - Moved to grGlideInit if ( !_grSstDetectResources() ) { diff --git a/glide3x/h5/glide3/src/gsst.c b/glide3x/h5/glide3/src/gsst.c index 1a0b72b..a63f1a0 100644 --- a/glide3x/h5/glide3/src/gsst.c +++ b/glide3x/h5/glide3/src/gsst.c @@ -860,7 +860,7 @@ static FxU32 lostcontext_csim; static void _grSstSetColumnsOfNWidth(FxU32 width); #endif /* FX_GLIDE_NAPALM */ -#ifndef __DJGPP__ +#if !defined(__DJGPP__) && !defined(__linux__) WINUSERAPI BOOL WINAPI diff --git a/glide3x/h5/glide3/src/makefile.autoconf.am b/glide3x/h5/glide3/src/makefile.autoconf.am index 5a2b8e4..6aa6969 100644 --- a/glide3x/h5/glide3/src/makefile.autoconf.am +++ b/glide3x/h5/glide3/src/makefile.autoconf.am @@ -153,46 +153,40 @@ VINCLUDES = $(HAL_CSIM_INCLUDES) # Special rules for assembly files. # PREPROCESSOR=/lib/cpp -$$ -I. -xdraw2_def.o xdraw2_def.lo: xdraw2.s xdraw2.inc.s fxgasm.h +xdraw2_def.o xdraw2_def.lo: xdraw2.s xdraw2.inc.s fxgasm.h assyntax.h $(PREPROCESSOR) $< > $*.tmp.s libtool --mode=compile $(CC) $(AFLAGS) -c -o $*.o $*.tmp.s $(RM) -f $*.tmp.s -xdraw2_3dnow.o xdraw2_3dnow.lo: xdraw2.s xdraw2.inc.s fxgasm.h +xdraw2_3dnow.o xdraw2_3dnow.lo: xdraw2.s xdraw2.inc.s fxgasm.h assyntax.h $(PREPROCESSOR) -DGL_AMD3D -DUSE_PACKET_FIFO=1 $< > $*.tmp.s libtool --mode=compile $(CC) $(AFLAGS) -c -o $*.o $*.tmp.s $(RM) -f $*.tmp.s -xdraw3_def.o xdraw3_def.lo: xdraw3.s fxgasm.h +xdraw3_def.o xdraw3_def.lo: xdraw3.s fxgasm.h assyntax.h $(PREPROCESSOR) $< > $*.tmp.s libtool --mode=compile $(CC) $(AFLAGS) -c -o $*.o $*.tmp.s $(RM) -f $*.tmp.s -xdraw3_3dnow.o xdraw3_3dnow.lo: xdraw3.s fxgasm.h +xdraw3_3dnow.o xdraw3_3dnow.lo: xdraw3.s fxgasm.h assyntax.h $(PREPROCESSOR) -DGL_AMD3D -DUSE_PACKET_FIFO=1 $< > $*.tmp.s libtool --mode=compile $(CC) $(AFLAGS) -c -o $*.o $*.tmp.s $(RM) -f $*.tmp.s -xtexdl_3dnow.o xtexdl_3dnow.lo: xtexdl.s fxgasm.h +xtexdl_3dnow.o xtexdl_3dnow.lo: xtexdl.s fxgasm.h assyntax.h $(PREPROCESSOR) -DGL_AMD3D -DUSE_PACKET_FIFO=1 $< > $*.tmp.s libtool --mode=compile $(CC) $(AFLAGS) -c -o $*.o $*.tmp.s $(RM) -f $*.tmp.s -cpudtect.o cpudtect.lo: cpudtect.s - $(PREPROCESSOR) -DUSE_PACKET_FIFO=1 $< > $*.tmp.s - libtool --mode=compile $(CC) $(AFLAGS) -c -o $*.o $*.tmp.s - $(RM) -f $*.tmp.s - # # Library definitions. # if FX_GLIDE_CTRISETUP FX_GLIDE_CTRISETUP_SRC = gxdraw.c else -if GL_AMD3D -FX_GLIDE_CTRISETUP_SRC = xdraw2_3dnow.s xdraw3_3dnow.s xtexdl_3dnow.s xdraw2_def.s xdraw3_def.s -else FX_GLIDE_CTRISETUP_SRC = xdraw2_def.s xdraw3_def.s +if GL_AMD3D +FX_GLIDE_CTRISETUP_SRC += xdraw2_3dnow.s xdraw3_3dnow.s xtexdl_3dnow.s endif endif @@ -204,7 +198,7 @@ WHOLE_LIBS = $(top_builddir)/swlibs/fxmisc/libfxmisc.la \ $(top_builddir)/@FX_GLIDE_HW@/minihwc/libminihwc.la LINK_LIBS = -L/usr/X11R6/lib -lX11 -lXext -lXxf86dga -lXxf86vm -lm -CLEANFILES = fxinline.h fxgasm.h +CLEANFILES = fxinline.h fxgasm.h assyntax.h noinst_PROGRAMS = fxgasm include_HEADERS = g3ext.h glide.h glideutl.h glidesys.h @@ -215,8 +209,9 @@ noinst_HEADERS = fxcmd.h fxsplash.h \ gsfc.h gsstdef.h \ qmodes.h tv.h \ fxgasm.h fxinline.h -fxgasm_SOURCES = fxgasm.c gthread.c -fxgasm_DEPENDENCIES = gthread.lo +fxgasm_SOURCES = fxgasm.c +# gthread.c +# fxgasm_DEPENDENCIES = gthread.lo lib_LTLIBRARIES = libglide3.la libglide3_la_SOURCES = fxinline.h fxgasm.h \ @@ -225,17 +220,19 @@ libglide3_la_SOURCES = fxinline.h fxgasm.h \ gbanner.c gerror.c gaa.c gdraw.c \ gglide.c distate.c gstrip.c distrip.c \ diget.c glfb.c gsst.c gtex.c gtexdl.c \ - fifo.c cpudtect.s xtexdl_def.c $(VGLIDE_SRC) -libglide3_la_LDFLAGS = -version-info 13:0:10 + fifo.c cpuid.c xtexdl_def.c $(VGLIDE_SRC) +libglide3_la_LDFLAGS = -version-info 13:1:10 libglide3_la_LIBADD = $(WHOLE_LIBS) $(LINK_LIBS) #--------------------------------------------------------------------------# -# special rules for making fxgasm.h, fxinclude.h +# special rules for making fxgasm.h, fxinclude.h, assyntax.h # fxgasm.h: fxgasm ./fxgasm -hex > fxgasm.h fxinline.h: fxgasm ./fxgasm -inline > fxinline.h +assyntax.h: $(top_srcdir)/swlibs/fxmisc/assyntax.h + ln -sf $< $@ #--------------------------------------------------------------------------# # special rules for using fxgasm.h, fxinclude.h diff --git a/glide3x/install-sh b/glide3x/install-sh index 853408c..36f96f3 100755 --- a/glide3x/install-sh +++ b/glide3x/install-sh @@ -53,13 +53,10 @@ mvcmd="$mvprog" src="" dst="" dir_arg="" -# CYGNUS LOCAL: exeext variable -exeext="" -# END CYGNUS LOCAL while [ x"$1" != x ]; do case $1 in - -c) instcmd="$cpprog" + -c) instcmd=$cpprog shift continue;; @@ -82,7 +79,7 @@ while [ x"$1" != x ]; do shift continue;; - -s) stripcmd="$stripprog" + -s) stripcmd=$stripprog shift continue;; @@ -94,16 +91,6 @@ while [ x"$1" != x ]; do shift continue;; - # CYGNUS LOCAL: -x option - -x=*) exeext=`echo $1 | sed 's/-x=//'` - shift - continue;; - - -x) exeext=".exe" - shift - continue;; - # END CYGNUS LOCAL - *) if [ x"$src" = x ] then src=$1 @@ -119,151 +106,132 @@ done if [ x"$src" = x ] then - echo "install: no input file specified" + echo "$0: no input file specified" >&2 exit 1 else - true + : fi if [ x"$dir_arg" != x ]; then dst=$src src="" - - if [ -d $dst ]; then + + if [ -d "$dst" ]; then instcmd=: chmodcmd="" else - instcmd=mkdir + instcmd=$mkdirprog fi else -# CYGNUS LOCAL noer -# Win32-based gcc automatically appends .exe to produced executables, -# whether asked for or not. This breaks installs. The following -# changes the value of $src to $src.exe if $src is missing - - if [ -f $src ] - then - true - elif [ -f $src.exe ] - then - echo "install: $src does not exist, trying with .exe appended" - src="$src".exe - fi - -# end CYGNUS LOCAL noer - # Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad +# might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. - if [ -f $src -o -d $src ] + if [ -f "$src" ] || [ -d "$src" ] then - true + : else - echo "install: $src does not exist" + echo "$0: $src does not exist" >&2 exit 1 fi - + if [ x"$dst" = x ] then - echo "install: no destination specified" + echo "$0: no destination specified" >&2 exit 1 else - true + : fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic - if [ -d $dst ] + if [ -d "$dst" ] then - dst="$dst"/`basename $src` + dst=$dst/`basename "$src"` else - true + : fi - - # CYGNUS LOCAL: Use exeext - case "`basename $dst`" in - *.*) ;; - *) dst="$dst$exeext" ;; - esac - # END CYGNUS LOCAL fi ## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` +dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then -defaultIFS=' -' -IFS="${IFS-${defaultIFS}}" +defaultIFS=' + ' +IFS="${IFS-$defaultIFS}" -oIFS="${IFS}" +oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" +set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS=$oIFS pathcomp='' while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" + pathcomp=$pathcomp$1 shift - if [ ! -d "${pathcomp}" ] ; + if [ ! -d "$pathcomp" ] ; then - $mkdirprog "${pathcomp}" + $mkdirprog "$pathcomp" else - true + : fi - pathcomp="${pathcomp}/" + pathcomp=$pathcomp/ done fi if [ x"$dir_arg" != x ] then - $doit $instcmd $dst && + $doit $instcmd "$dst" && - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi + if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi else # If we're going to rename the final executable, determine the name now. - if [ x"$transformarg" = x ] + if [ x"$transformarg" = x ] then - dstfile=`basename $dst` + dstfile=`basename "$dst"` else - dstfile=`basename $dst $transformbasename | + dstfile=`basename "$dst" $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename - if [ x"$dstfile" = x ] + if [ x"$dstfile" = x ] then - dstfile=`basename $dst` + dstfile=`basename "$dst"` else - true + : fi -# Make a temp file name in the proper directory. +# Make a couple of temp file names in the proper directory. dsttmp=$dstdir/#inst.$$# + rmtmp=$dstdir/#rm.$$# + +# Trap to clean up temp files at exit. + + trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 + trap '(exit $?); exit' 1 2 13 15 # Move or copy the file name to the temp name - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && + $doit $instcmd "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits @@ -271,17 +239,38 @@ else # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi && + +# Now remove or move aside any old file at destination location. We try this +# two ways since rm can't unlink itself on some systems and the destination +# file might be busy for other reasons. In this case, the final cleanup +# might fail but the new file should still install successfully. + +{ + if [ -f "$dstdir/$dstfile" ] + then + $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null || + $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null || + { + echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 + (exit 1); exit + } + else + : + fi +} && # Now rename the file to the real destination. - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile + $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" fi && +# The final little trick to "correctly" pass the exit status to the exit trap. -exit 0 +{ + (exit 0); exit +} diff --git a/glide3x/ltmain.sh b/glide3x/ltmain.sh index 766732d..1f5b10c 100644 --- a/glide3x/ltmain.sh +++ b/glide3x/ltmain.sh @@ -83,11 +83,11 @@ if test "${LANG+set}" = set; then save_LANG="$LANG"; LANG=C; export LANG fi -if test "$LTCONFIG_VERSION" != "$VERSION"; then - echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 - echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 -fi +#if test "$LTCONFIG_VERSION" != "$VERSION"; then +# echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 +# echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 +# exit 1 +#fi if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then echo "$modename: not configured to build any kind of library" 1>&2 @@ -2623,7 +2623,7 @@ static const void *lt_preloaded_setup() { # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; diff --git a/glide3x/missing b/glide3x/missing index 7789652..6a37006 100755 --- a/glide3x/missing +++ b/glide3x/missing @@ -1,7 +1,7 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -# Copyright (C) 1996, 1997 Free Software Foundation, Inc. -# Franc,ois Pinard , 1996. +# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc. +# Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,11 +18,37 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi +run=: + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +case "$1" in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. case "$1" in -h|--h|--he|--hel|--help) @@ -35,6 +61,7 @@ error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' @@ -43,13 +70,15 @@ Supported PROGRAM values: automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing - GNU libit 0.0" + echo "missing 0.4 - GNU automake" ;; -*) @@ -58,31 +87,46 @@ Supported PROGRAM values: exit 1 ;; - aclocal) + aclocal*) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acinclude.m4' or \`configure.in'. You might want + you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if - you modified \`configure.in'. You might want to install the + you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acconfig.h' or \`configure.in'. You might want + you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in` + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do @@ -95,10 +139,15 @@ WARNING: \`$1' is missing on your system. You should only need it if touch $touch_files ;; - automake) + automake*) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | @@ -106,6 +155,34 @@ WARNING: \`$1' is missing on your system. You should only need it if while read f; do touch "$f"; done ;; + autom4te) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is needed, and you do not seem to have it handy on your + system. You might have modified some files without having the + proper tools for further handling them. + You can get \`$1Help2man' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` + test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if @@ -159,7 +236,37 @@ WARNING: \`$1' is missing on your system. You should only need it if fi ;; + help2man) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` + fi + if [ -f "$file" ]; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit 1 + fi + ;; + makeinfo) + if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then + # We have makeinfo, but it failed. + exit 1 + fi + echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file @@ -175,6 +282,45 @@ WARNING: \`$1' is missing on your system. You should only need it if touch $file ;; + tar) + shift + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + fi + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case "$firstarg" in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case "$firstarg" in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your diff --git a/glide3x/mkinstalldirs b/glide3x/mkinstalldirs index 6b3b5fc..d2d5f21 100755 --- a/glide3x/mkinstalldirs +++ b/glide3x/mkinstalldirs @@ -4,37 +4,108 @@ # Created: 1993-05-16 # Public domain -# $Id$ - errstatus=0 +dirmode="" + +usage="\ +Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." + +# process command line arguments +while test $# -gt 0 ; do + case $1 in + -h | --help | --h*) # -h for help + echo "$usage" 1>&2 + exit 0 + ;; + -m) # -m PERM arg + shift + test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } + dirmode=$1 + shift + ;; + --) # stop option processing + shift + break + ;; + -*) # unknown option + echo "$usage" 1>&2 + exit 1 + ;; + *) # first non-opt arg + break + ;; + esac +done for file do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift + if test -d "$file"; then + shift + else + break + fi +done - pathcomp= - for d - do - pathcomp="$pathcomp$d" - case "$pathcomp" in - -* ) pathcomp=./$pathcomp ;; - esac +case $# in + 0) exit 0 ;; +esac - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" +case $dirmode in + '') + if mkdir -p -- . 2>/dev/null; then + echo "mkdir -p -- $*" + exec mkdir -p -- "$@" + fi + ;; + *) + if mkdir -m "$dirmode" -p -- . 2>/dev/null; then + echo "mkdir -m $dirmode -p -- $*" + exec mkdir -m "$dirmode" -p -- "$@" + fi + ;; +esac - mkdir "$pathcomp" || lasterr=$? +for file +do + set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + shift - if test ! -d "$pathcomp"; then - errstatus=$lasterr - fi - fi + pathcomp= + for d + do + pathcomp="$pathcomp$d" + case $pathcomp in + -*) pathcomp=./$pathcomp ;; + esac - pathcomp="$pathcomp/" - done + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + else + if test ! -z "$dirmode"; then + echo "chmod $dirmode $pathcomp" + lasterr="" + chmod "$dirmode" "$pathcomp" || lasterr=$? + + if test ! -z "$lasterr"; then + errstatus=$lasterr + fi + fi + fi + fi + + pathcomp="$pathcomp/" + done done exit $errstatus +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# End: # mkinstalldirs ends here