From 1b6cca67b5f7c658b6a141e83bbb20ce45a3b85c Mon Sep 17 00:00:00 2001 From: Daniel Borca Date: Tue, 21 Oct 2003 11:15:52 +0000 Subject: documentation update; also new makefiles for Win32 MesaFX build --- Makefile.wfx | 87 ++++++++++ docs/README.3DFX | 49 +++++- include/GL/fxmesa.h | 2 +- src/mesa/Makefile.wfx | 433 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 566 insertions(+), 5 deletions(-) create mode 100644 Makefile.wfx create mode 100644 src/mesa/Makefile.wfx diff --git a/Makefile.wfx b/Makefile.wfx new file mode 100644 index 0000000000..14ab00c8d1 --- /dev/null +++ b/Makefile.wfx @@ -0,0 +1,87 @@ +# Mesa 3-D graphics library +# Version: 5.1 +# +# Copyright (C) 1999-2003 Brian Paul All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# Win32/FX makefile for Mesa +# +# Copyright (c) 2003 - Hiroshi Morii +# Email : koolsmoky@users.sourceforge.net +# URL : http://www.3dfxzone.it/koolsmoky + +# Debug build : nmake -f Makefile.wfx debug +# Optimized build : nmake -f Makefile.wfx +# Remove objects : nmake -f Makefile.wfx clean +# Remove files in bin, lib : nmake -f Makefile.wfx clobber +# Remove all generated files : nmake -f Makefile.wfx realclean + +# Build the libs +SUBDIRS = src\mesa.dir +DBGBUILD = $(SUBDIRS:.dir=.debug) +CLEAN = $(SUBDIRS:.dir=.clean) +CLOBBER = $(SUBDIRS:.dir=.clobber) +REALCLEAN = $(SUBDIRS:.dir=.realclean) +LIBDIR = lib + +# default rule +default : $(LIBDIR) $(SUBDIRS) + +# debug build rules +debug : $(LIBDIR) $(DBGBUILD) + +# cleanup rules +clean : $(CLEAN) +clobber : $(CLOBBER) +realclean : $(REALCLEAN) + +# inference rules +$(LIBDIR): + @echo. + @mkdir $(LIBDIR) + +$(SUBDIRS): + @echo. + @cd $* + @nmake -f Makefile.wfx + @cd .. + +$(DBGBUILD): + @echo. + @cd $* + @nmake -f Makefile.wfx DEBUG=1 + @cd .. + +$(CLEAN): + @echo. + @cd $* + @nmake -f Makefile.wfx clean + @cd .. + +$(CLOBBER): + @echo. + @cd $* + @nmake -f Makefile.wfx clobber + @cd .. + +$(REALCLEAN): + @echo. + @cd $* + @nmake -f Makefile.wfx realclean + @cd .. diff --git a/docs/README.3DFX b/docs/README.3DFX index 1ccb766fd2..2b6b2e9e93 100644 --- a/docs/README.3DFX +++ b/docs/README.3DFX @@ -9,18 +9,59 @@ Mesa-5.1 release notes: 1) Glide2 support has been ceased; in order to keep Voodoo Graphics, Voodoo2 and Voodoo Rush compatibility, please visit the Glide SourceForge and help us to fix Glide3 for those cards. -2) The non-DRI Linux build is currently broken. Any help will be appreciated. +2) The current release is a WIP; among other things, the Linux build works + only to some extent. Any help will be appreciated. 3) Glide3 can be found at http://sourceforge.net/projects/glide/ -Known supported HW: Voodoo Banshee, Voodoo3, Voodoo4, Voodoo5 5500 -Known supported OS: DOS (DJGPP), Windows9x/2k (MinGW/MSVC), Linux+DRI -Comments, notes, flames: + +Known supported HW/OS: +---------------------- + +Voodoo Banshee, Voodoo3, Voodoo4, Voodoo5 5500 +DOS (DJGPP), Windows9x/2k (MinGW/MSVC), Linux + + + +How to compile: +--------------- + +DJGPP/MinGW/MSVC: + Place the Glide3 SDK in the top Mesa directory: + $(MESA)/glide3/include/*.h + $(MESA)/glide3/lib/ + Required headers: + 3dfx.h, g3ext.h, glide.h, glidesys.h, glideutl.h, sst1vid.h + Required libraries: + OS specific + Type: + make -f Makefile.DJ HAVE_MMX=1 HAVE_3DNOW=1 FX=1 + or + make -f Makefile.mgw HAVE_MMX=1 HAVE_3DNOW=1 FX=1 + or + nmake -f Makefile.wfx + Look into the corresponding makefiles for further information. + +Linux: + Place the Glide3 SDK in /usr/local/glide + Type: + make linux-glide + + + +Contact: +-------- + Daniel Borca Hiroshi Morii +The info below this line is outdated. You have been warned... +************************************************************* + + + Info for Mesa 4.1 ----------------- diff --git a/include/GL/fxmesa.h b/include/GL/fxmesa.h index 24c38278f5..fd3dbaeac5 100644 --- a/include/GL/fxmesa.h +++ b/include/GL/fxmesa.h @@ -22,7 +22,7 @@ /* * FXMesa - 3Dfx Glide driver for Mesa. Contributed by David Bucciarelli * - * NOTE: This version requires Glide 2.3 or later. + * NOTE: This version requires Glide3 (http://sourceforge.net/projects/glide) */ diff --git a/src/mesa/Makefile.wfx b/src/mesa/Makefile.wfx new file mode 100644 index 0000000000..afc17de199 --- /dev/null +++ b/src/mesa/Makefile.wfx @@ -0,0 +1,433 @@ +# Mesa 3-D graphics library +# Version: 5.1 +# +# Copyright (C) 1999-2003 Brian Paul All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# Win32/FX core makefile for Mesa +# +# Copyright (c) 2003 - Hiroshi Morii +# Email : koolsmoky@users.sourceforge.net +# URL : http://www.3dfxzone.it/koolsmoky + +# Debug build : nmake -f Makefile.fx.win32 DEBUG=1 +# Optimized build : nmake -f Makefile.fx.win32 +# Remove objects : nmake -f Makefile.fx.win32 clean +# Remove files in bin, lib : nmake -f Makefile.fx.win32 clobber +# Remove all generated files : nmake -f Makefile.fx.win32 realclean + +.SUFFIXES: .S +################################## +# general +################################## +BUILDROOT = ..\.. + +!if "$(GLIDE3SDK)"=="" +GLIDE3SDK = $(BUILDROOT)\glide3 +!endif + +!if "$(GLIDE3SDK)"=="" +!error GLIDE3SDK undefined! Need to specify Glide3x SDK path! +!endif + +GLIDE3LIB = $(GLIDE3SDK)\lib\glide3x.lib +TEXUS2LIB = #$(GLIDE3SDK)\lib\texus2.lib +LIBDIR = $(BUILDROOT)\lib +GL_DLL = Mesa.dll + +HAVE_X86 = 1 +HAVE_MMX = 1 +HAVE_SSE = +HAVE_3DNOW = 1 + +################################## +# build flags +################################## +FLAGS = -DH3 -DFX_GLIDE_NAPALM=1 -DH4=1 -DFX_GLIDE_H5_CSIM=1 -DGLIDE3=1 -DGLIDE3_ALPHA=1 -DBUILD_GL32 -DFX #-DGLX_DIRECT_RENDERING + +!if "$(USE_IEEE)"=="1" +FLAGS = $(FLAGS) -D__i386__ +!endif + +!if "$(HAVE_MMX)"=="1" +FLAGS = $(FLAGS) -DUSE_MMX_ASM +!endif +!if "$(HAVE_SSE)"=="1" +FLAGS = $(FLAGS) -DUSE_SSE_ASM +!endif +!if "$(HAVE_3DNOW)"=="1" +FLAGS = $(FLAGS) -DUSE_3DNOW_ASM +!endif +!if "$(HAVE_X86)"=="1" +FLAGS = $(FLAGS) -DUSE_X86_ASM +!endif + +!if "$(DEBUG)" == "1" +FLAGS = $(FLAGS) -DMESA_DEBUG -DFX_DEBUG +!endif + +################################## +# compiler setup +################################## +CC = cl +LINK = link +AR = lib +AS = nasm + +CFLAGS = -G6 -c -D__MSC__ -D_MSC_VER=1200 -D_WIN32 -DWIN32 -DSTRICT -W3 #-WX -D__WIN32__ +LFLAGS = -nologo /DLL /OPT:WIN98 /MACHINE:IX86 /NODEFAULTLIB #/SUBSYSTEM:WINDOWS,4.00 +ARFLAGS = -nologo +ASFLAGS = -O2 -fwin32 + +!if "$(DEBUG)"== "1" +CFLAGS = $(CFLAGS) -Od -MDd -DDEBUG=1 -D_DEBUG -D_MT -Zi #-D_DLL conflicts with BUILD_GL32 +LFLAGS = $(LFLAGS) -debugtype:both /DEBUG +ARFLAGS = $(ARFLAGS) -debugtype:both +ASFLAGS = $(ASFLAGS) -g -DDEBUG=1 +!else +CFLAGS = $(CFLAGS) -Ox -MD -D_MT +!endif + +################################# +# OS commands +################################# +RM = @del +MV = mv + +################################# +# sources +################################# +MAIN_SOURCES = \ + main\api_arrayelt.c \ + main\api_loopback.c \ + main\api_noop.c \ + main\api_validate.c \ + main\accum.c \ + main\arbprogram.c \ + main\arbfragparse.c \ + main\arbvertparse.c \ + main\attrib.c \ + main\blend.c \ + main\bufferobj.c \ + main\buffers.c \ + main\clip.c \ + main\colortab.c \ + main\context.c \ + main\convolve.c \ + main\debug.c \ + main\depth.c \ + main\dispatch.c \ + main\dlist.c \ + main\drawpix.c \ + main\enable.c \ + main\enums.c \ + main\eval.c \ + main\extensions.c \ + main\feedback.c \ + main\fog.c \ + main\get.c \ + main\hash.c \ + main\hint.c \ + main\histogram.c \ + main\image.c \ + main\imports.c \ + main\light.c \ + main\lines.c \ + main\matrix.c \ + main\nvprogram.c \ + main\nvfragparse.c \ + main\nvvertexec.c \ + main\nvvertparse.c \ + main\occlude.c \ + main\pixel.c \ + main\points.c \ + main\polygon.c \ + main\program.c \ + main\rastpos.c \ + main\state.c \ + main\stencil.c \ + main\texcompress.c \ + main\texformat.c \ + main\teximage.c \ + main\texobj.c \ + main\texstate.c \ + main\texstore.c \ + main\texutil.c \ + main\varray.c \ + main\vtxfmt.c + +GLAPI_SOURCES = \ + glapi\glapi.c \ + glapi\glthread.c + +MATH_SOURCES = \ + math\m_debug_clip.c \ + math\m_debug_norm.c \ + math\m_debug_xform.c \ + math\m_eval.c \ + math\m_matrix.c \ + math\m_translate.c \ + math\m_vector.c \ + math\m_xform.c + +ARRAY_CACHE_SOURCES = \ + array_cache\ac_context.c \ + array_cache\ac_import.c + +SWRAST_SOURCES = \ + swrast\s_aaline.c \ + swrast\s_aatriangle.c \ + swrast\s_accum.c \ + swrast\s_alpha.c \ + swrast\s_alphabuf.c \ + swrast\s_bitmap.c \ + swrast\s_blend.c \ + swrast\s_buffers.c \ + swrast\s_copypix.c \ + swrast\s_context.c \ + swrast\s_depth.c \ + swrast\s_drawpix.c \ + swrast\s_feedback.c \ + swrast\s_fog.c \ + swrast\s_imaging.c \ + swrast\s_lines.c \ + swrast\s_logic.c \ + swrast\s_masking.c \ + swrast\s_nvfragprog.c \ + swrast\s_pixeltex.c \ + swrast\s_points.c \ + swrast\s_readpix.c \ + swrast\s_span.c \ + swrast\s_stencil.c \ + swrast\s_texture.c \ + swrast\s_texstore.c \ + swrast\s_triangle.c \ + swrast\s_zoom.c + +SWRAST_SETUP_SOURCES = \ + swrast_setup\ss_context.c \ + swrast_setup\ss_triangle.c \ + swrast_setup\ss_vb.c + +TNL_SOURCES = \ + tnl\t_array_api.c \ + tnl\t_array_import.c \ + tnl\t_context.c \ + tnl\t_eval_api.c \ + tnl\t_imm_alloc.c \ + tnl\t_imm_api.c \ + tnl\t_imm_debug.c \ + tnl\t_imm_dlist.c \ + tnl\t_imm_elt.c \ + tnl\t_imm_eval.c \ + tnl\t_imm_exec.c \ + tnl\t_imm_fixup.c \ + tnl\t_pipeline.c \ + tnl\t_vb_fog.c \ + tnl\t_vb_light.c \ + tnl\t_vb_normals.c \ + tnl\t_vb_points.c \ + tnl\t_vb_program.c \ + tnl\t_vb_render.c \ + tnl\t_vb_texgen.c \ + tnl\t_vb_texmat.c \ + tnl\t_vb_vertex.c + +DRIVER_SOURCES = \ + drivers\glide\fxapi.c \ + drivers\glide\fxdd.c \ + drivers\glide\fxddspan.c \ + drivers\glide\fxddtex.c \ + drivers\glide\fxsetup.c \ + drivers\glide\fxtexman.c \ + drivers\glide\fxtris.c \ + drivers\glide\fxvb.c \ + drivers\glide\fxglidew.c \ + drivers\glide\fxwgl.c \ + drivers\glide\fxg.c + +X86_SOURCES = \ + x86\x86.c \ + x86\glapi_x86.S \ + x86\common_x86.c \ + x86\common_x86_asm.S \ + x86\x86_xform2.S \ + x86\x86_xform3.S \ + x86\x86_xform4.S \ + x86\x86_cliptest.S + +MMX_SOURCES = \ + x86\mmx_blend.S + +SSE_SOURCES = \ + x86\sse.c \ + x86\sse_xform2.S \ + x86\sse_xform3.S \ + x86\sse_xform4.S \ + x86\sse_normal.S + +K3D_SOURCES = \ + x86\3dnow.c \ + x86\3dnow_xform2.S \ + x86\3dnow_xform3.S \ + x86\3dnow_xform4.S \ + x86\3dnow_normal.S + +!if "$(HAVE_MMX)"=="1" +X86_SOURCES = $(X86_SOURCES) $(MMX_SOURCES) +HAVE_X86 = 1 +!endif +!if "$(HAVE_SSE)"=="1" +X86_SOURCES = $(X86_SOURCES) $(SSE_SOURCES) +HAVE_X86 = 1 +!endif +!if "$(HAVE_3DNOW)"=="1" +X86_SOURCES = $(X86_SOURCES) $(K3D_SOURCES) +HAVE_X86 = 1 +!endif +!if "$(HAVE_X86)"=="1" +!else +X86_SOURCES = +!endif + +EXPORTS = drivers\glide\fxopengl.def + +MAIN_OBJS = $(MAIN_SOURCES:.c=.obj) +GLAPI_OBJS = $(GLAPI_SOURCES:.c=.obj) +MATH_OBJS = $(MATH_SOURCES:.c=.obj) +ARRAY_CACHE_OBJS = $(ARRAY_CACHE_SOURCES:.c=.obj) +SWRAST_OBJS = $(SWRAST_SOURCES:.c=.obj) +SWRAST_SETUP_OBJS = $(SWRAST_SETUP_SOURCES:.c=.obj) +TNL_OBJS = $(TNL_SOURCES:.c=.obj) +DRIVER_OBJS = $(DRIVER_SOURCES:.c=.obj) +X86_OBJS = $(X86_SOURCES:.c=.obj) +X86_OBJS = $(X86_OBJS:.S=.obj) + +RES = drivers\glide\fx.res + +CORE_LIBS = \ + $(LIBDIR)\main.lib \ + $(LIBDIR)\glapi.lib \ + $(LIBDIR)\math.lib \ + $(LIBDIR)\array_cache.lib \ + $(LIBDIR)\swrast.lib \ + $(LIBDIR)\swarst_setup.lib \ + $(LIBDIR)\tnl.lib + +!if "$(X86_SOURCES)"!="" +X86_LIB = $(LIBDIR)\x86.lib +!else +X86_LIB = +!endif + +INCS = -I$(BUILDROOT)\include \ + -I. \ + -I.\drivers\glide \ + -I.\main \ + -I.\glapi \ + -I$(GLIDE3SDK)\include + +DEP_LIB = user32.lib gdi32.lib kernel32.lib + +!if "$(DEBUG)" == "1" +STD_LIB = MSVCRTD.lib +!else +STD_LIB = MSVCRT.lib +!endif + +################################# +# build rules +################################# +default:: all + +all: $(X86_LIB) $(CORE_LIBS) $(LIBDIR)\$(GL_DLL) + +$(LIBDIR)\$(GL_DLL): $(DRIVER_OBJS) $(CORE_LIBS) $(X86_LIB) $(RES) + $(LINK) -out:$@ -def:$(EXPORTS) $(LFLAGS) $(DRIVER_OBJS) $(CORE_LIBS) $(X86_LIB) $(DEP_LIB) $(STD_LIB) $(TEXUS2LIB) $(GLIDE3LIB) $(RES) + +$(LIBDIR)\main.lib: $(MAIN_OBJS) + $(AR) -out:$@ $(ARFLAGS) $(MAIN_OBJS) + +$(LIBDIR)\glapi.lib: $(GLAPI_OBJS) + $(AR) -out:$@ $(ARFLAGS) $(GLAPI_OBJS) + +$(LIBDIR)\math.lib: $(MATH_OBJS) + $(AR) -out:$@ $(ARFLAGS) $(MATH_OBJS) + +$(LIBDIR)\array_cache.lib: $(ARRAY_CACHE_OBJS) + $(AR) -out:$@ $(ARFLAGS) $(ARRAY_CACHE_OBJS) + +$(LIBDIR)\swrast.lib: $(SWRAST_OBJS) + $(AR) -out:$@ $(ARFLAGS) $(SWRAST_OBJS) + +$(LIBDIR)\swarst_setup.lib: $(SWRAST_SETUP_OBJS) + $(AR) -out:$@ $(ARFLAGS) $(SWRAST_SETUP_OBJS) + +$(LIBDIR)\tnl.lib: $(TNL_OBJS) + $(AR) -out:$@ $(ARFLAGS) $(TNL_OBJS) + +x86\matypes.h: x86\gen_matypes.exe + x86\gen_matypes.exe > $@ + +x86\gen_matypes.exe: x86\gen_matypes.obj + $(CC) -o $@ x86\gen_matypes.obj + +$(LIBDIR)\x86.lib: x86\matypes.h $(X86_OBJS) + $(AR) -out:$@ $(ARFLAGS) $(X86_OBJS) + +.c.obj: + $(CC) $(CFLAGS) $(FLAGS) $(INCS) $< /Fo$*.obj + +.S.obj: + $(CC) $(CFLAGS) $(FLAGS) $(INCS) $< -D__WIN32__ -DNASM_ASSEMBLER -EP > $*.i + $(AS) $(ASFLAGS) $(INCS) $*.i -o $*.obj + $(RM) $*.i + +.rc.res: + $(RC) -Fo$@ $(INCS) $(FLAGS) -D__WIN32__ $< + +# [dBorca] Hack alert: +# use standard API, to work around Win32 @x names +# also glapi_x86.S is protected against __WIN32__ +main\dispatch.obj: main\dispatch.c + $(CC) $(CFLAGS) $(FLAGS) $(INCS) -UUSE_X86_ASM main\dispatch.c /Fo$*.obj + +################################# +# cleanup rules +################################# +realclean: clean clobber + +clean:: + $(RM) array_cache\*.obj + $(RM) glapi\*.obj + $(RM) main\*.obj + $(RM) math\*.obj + $(RM) swrast\*.obj + $(RM) swrast_setup\*.obj + $(RM) tnl\*.obj + $(RM) x86\*.obj + $(RM) drivers\glide\*.obj + $(RM) drivers\glide\*.res + $(RM) $(LIBDIR)\*.pdb + $(RM) *.pdb + +clobber:: + $(RM) $(LIBDIR)\*.lib + $(RM) $(LIBDIR)\*.exp + $(RM) $(LIBDIR)\*.dll -- cgit v1.2.3