# Makefile for Win32
+#
+# NOTE: the install target may overwrite important files in the system dirs
+# Check first, before making the install target.
+#
+# This builds both the osmesa and Windows drivers.
+#
!include <win32.mak>
TOP = ..
+SUBDIRS = osmesa.dir
CORE_SRCS = \
- 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_render.c \
- tnl\t_vb_texgen.c \
- tnl\t_vb_texmat.c \
- tnl\t_vb_vertex.c \
- swrast_setup\ss_context.c \
- swrast_setup\ss_triangle.c \
- swrast_setup\ss_vb.c \
- swrast_setup\ss_interp.c \
api_loopback.c \
api_noop.c \
api_validate.c \
accum.c \
+ arbprogram.c \
attrib.c \
blend.c \
+ bufferobj.c \
buffers.c \
clip.c \
colortab.c \
- config.c \
context.c \
convolve.c \
debug.c \
glapi.c \
glthread.c \
hash.c \
- highpc.c \
hint.c \
histogram.c \
image.c \
imports.c \
light.c \
lines.c \
- lowpc.c \
matrix.c \
- mem.c \
- mmath.c \
+ nvprogram.c \
+ nvfragparse.c \
+ nvvertexec.c \
+ nvvertparse.c \
pixel.c \
points.c \
polygon.c \
rastpos.c \
state.c \
stencil.c \
+ texcompress.c \
teximage.c \
+ texformat.c \
texobj.c \
texstate.c \
texstore.c \
texutil.c \
varray.c \
vtxfmt.c \
- X86\x86.c \
- X86\common_x86.c \
- X86\3dnow.c \
- X86\sse.c \
+# X86\x86.c \
+# X86\common_x86.c \
+# X86\3dnow.c \
+# X86\sse.c \
math\m_debug_norm.c \
- math\m_debug_vertex.c \
math\m_debug_xform.c \
math\m_eval.c \
math\m_matrix.c \
math\m_translate.c \
math\m_vector.c \
- math\m_vertices.c \
math\m_xform.c \
array_cache\ac_context.c \
array_cache\ac_import.c \
swrast\s_drawpix.c \
swrast\s_feedback.c \
swrast\s_fog.c \
- swrast\s_histogram.c \
+ swrast\s_imaging.c \
swrast\s_lines.c \
swrast\s_logic.c \
swrast\s_masking.c \
- swrast\s_pb.c \
+ swrast\s_nvfragprog.c \
swrast\s_pixeltex.c \
swrast\s_points.c \
swrast\s_readpix.c \
- swrast\s_scissor.c \
swrast\s_span.c \
swrast\s_stencil.c \
+ swrast\s_texstore.c \
swrast\s_texture.c \
swrast\s_triangle.c \
- swrast\s_zoom.c
+ swrast\s_zoom.c \
+ swrast_setup\ss_context.c \
+ swrast_setup\ss_triangle.c \
+ swrast_setup\ss_vb.c \
+ 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_SRCS = \
Trace\tr_context.c \
Trace\tr_error.c \
Trace\tr_support.c \
Trace\tr_wrapper.c \
- Trace\tr_write.c
+ Trace\tr_write.c \
+ Windows\wgl.c \
+ Windows\wmesa.c
ASM_SRCS =
SRCS = $(CORE_SRCS) $(DRIVER_SRCS)
-OSMESA_SRCS = OSmesa\osmesa.c
-OSMESA_OBJS = OSmesa\osmesa.obj
-
-all : mesadll install
+all : mesadll $(SUBDIRS)
!include "$(TOP)/mesawin32.mak"
mesadll : $(MESADLL)
-CFLAGS = $(cvarsdll) $(CFLAGS) -D_OPENGL32_
-LFLAGS = $(dlllflags) $(LFLAGS)
+CFLAGS = $(cvarsdll) $(CFLAGS) -D_OPENGL32_ -DBUILD_GL32 -DNO_PARALLEL -DNO_STEREO
+!IFNDEF NODEBUG
+CFLAGS = $(CFLAGS) -DMESA_DEBUG
+!ENDIF
+LFLAGS = $(dlllflags) $(lcommon) $(LFLAGS)
OBJS = $(ASM_SRCS:.S=.obj) $(CORE_SRCS:.c=.obj) $(DRIVER_SRCS:.c=.obj)
-LIBS = $(OPENGL) $(GLU) winmm.lib $(guilibsdll)
+LIBS = winmm.lib $(guilibsdll)
$(MESADLL) : $(OBJS) mesa.def
$(link) $(LFLAGS) -out:$(MESADLL) -def:mesa.def $(OBJS) $(LIBS)
+ @echo "copying Mesa dynamic link library to lib directory..."
+ -copy $(MESADLL) ..\lib
+ @echo "copying Mesa import library to lib directory..."
+ -copy $(MESALIB) ..\lib
+
+$(SUBDIRS) :
+ @echo.
+ @echo Making in $* directory
+ @cd $*
+ @nmake -f Makefile.win -nologo
+ @cd ..
-#install : $(MESADLL)
-# @echo "copying Mesa dynamic link library to system directory..."
-# -copy $(MESADLL) $(DLLINSTALL)
-# @echo "copying Mesa header files to include directory..."
-# -copy ..\..\include\GL\gl.h $(INCLUDEINSTALL)
-# -copy ..\..\include\GL\glext.h $(INCLUDEINSTALL)
-# @echo "copying Mesa import library to library directory..."
-# -copy $(MESALIB) $(LIBINSTALL)
install : $(MESADLL)
+ @echo.
@echo "copying Mesa dynamic link library to system directory..."
- -copy $(MESADLL) $(TOP)\lib
+ -copy $(MESADLL) $(DLLINSTALL)
+ @echo "copying Mesa header files to include directory..."
+ -copy ..\..\include\GL\gl.h $(INCLUDEINSTALL)
+ -copy ..\..\include\GL\glext.h $(INCLUDEINSTALL)
@echo "copying Mesa import library to library directory..."
- -copy $(MESALIB) $(TOP)\lib
+ -copy $(MESALIB) $(LIBINSTALL)
+
+clean ::
+ @del /f tnl\*.obj
+ @del /f swrast_setup\*.obj
+ @del /f math\*.obj
+ @del /f array_cache\*.obj
+ @del /f swrast\*.obj
+ @del /f Trace\*.obj
+ @del /f osmesa\*.obj
+ @del /f Windows\*.obj
+
+clobber ::
+ @del /f OSmesa\*.lib
+ @del /f OSmesa\*.exp
+ @del /f OSmesa\*.dll
+# override default inference rule with one that writes the object to
+# the same subdir that the c file is in.
.c.obj :
- $(cc) $(CFLAGS) -I. $<
+ $(cc) $(CFLAGS) -I. $< /Fo$*.obj