no message

This commit is contained in:
dborca
2003-05-05 07:12:48 +00:00
parent 11cf13c445
commit 3e642e03c4
31 changed files with 2269 additions and 947 deletions

View File

@@ -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

View File

@@ -1,4 +1,5 @@
#!/bin/sh -f
do_nothing() {
return 0;
}

1066
glide3x/config.guess vendored

File diff suppressed because it is too large Load Diff

529
glide3x/config.sub vendored
View File

@@ -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 <config-patches@gnu.org>. 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 <config-patches@gnu.org>."
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:

View File

@@ -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])

464
glide3x/depcomp Normal file
View File

@@ -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 <oliva@dcc.unicamp.br>.
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

View File

@@ -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)

View File

@@ -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

View File

@@ -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")

View File

@@ -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) {\

View File

@@ -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;

View File

@@ -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);

View File

@@ -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)

View File

@@ -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;

View File

@@ -185,6 +185,48 @@ void endCriticalSection(void)
{
}
/* [dBorca] */
#elif defined(__DJGPP__)
#include <3dfx.h>
#include <glidesys.h>
#define FX_DLL_DEFINITION
#include <fxdll.h>
#include <glide.h>
#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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 */

View File

@@ -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

View File

@@ -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 <string.h>
#include <3dfx.h>
/* [dBorca] */
#ifdef __DJGPP__
#include <dos.h>
#else
#include <i86.h>
#endif
#include <gdebug.h>
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

View File

@@ -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()
{

View File

@@ -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 <stdio.h>
/* Desc:
*

View File

@@ -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
}

View File

@@ -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() ) {

View File

@@ -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

View File

@@ -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

View File

@@ -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
}

View File

@@ -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";;

View File

@@ -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 <pinard@iro.umontreal.ca>, 1996.
# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 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

View File

@@ -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