# 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 = OpenGL32.dll HAVE_X86 = 1 HAVE_MMX = 1 HAVE_SSE = HAVE_3DNOW = 1 ################################## # build flags ################################## FLAGS = -DFX -DBUILD_GL32 !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 = -nologo -Zm300 -G6 -W3 -c -D_MSC_VER=1200 -D__MSC__ -D_WIN32 -DWIN32 -DSTRICT LFLAGS = -nologo /DLL /OPT:WIN98 /MACHINE:IX86 /NODEFAULTLIB ARFLAGS = -nologo ASFLAGS = -O2 -fwin32 !if "$(DEBUG)"== "1" CFLAGS = $(CFLAGS) -Od -MTd -Zi -DDEBUG=1 -D_DEBUG -D_MT LFLAGS = $(LFLAGS) -debugtype:both /DEBUG ARFLAGS = $(ARFLAGS) -debugtype:both ASFLAGS = $(ASFLAGS) -g -DDEBUG=1 !else CFLAGS = $(CFLAGS) -Ox -MT -D_MT LFLAGS = $(LFLAGS) -RELEASE !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\arbparse.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 TNL_SOURCES =\ tnl\t_array_api.c\ tnl\t_array_import.c\ tnl\t_context.c\ tnl\t_pipeline.c\ tnl\t_save_api.c\ tnl\t_save_loopback.c\ tnl\t_save_playback.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\ tnl\t_vertex.c\ tnl\t_vtx_api.c\ tnl\t_vtx_eval.c\ tnl\t_vtx_exec.c DRIVER_SOURCES =\ drivers\common\driverfuncs.c\ 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 $(LINK) -out:$@ -nologo 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: # glapi_x86.S needs some adjustments # in order to generate correct entrypoints x86\glapi_x86.obj: x86\glapi_x86.S $(CC) $(CFLAGS) $(FLAGS) $(INCS) x86\glapi_x86.S -DSTDCALL_API -DNASM_ASSEMBLER -EP > $*.i $(AS) $(ASFLAGS) $(INCS) $*.i -o $*.obj $(RM) $*.i ################################# # 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\common\*.obj $(RM) drivers\glide\*.obj $(RM) drivers\glide\*.res $(RM) $(LIBDIR)\*.pdb $(RM) *.pdb clobber:: $(RM) $(LIBDIR)\*.lib $(RM) $(LIBDIR)\*.exp $(RM) $(LIBDIR)\*.dll