Make osmesa a DLL instead of a static lib (Windows). This is more
authorKarl Schultz <kschultz@freedesktop.org>
Fri, 21 Sep 2001 21:32:14 +0000 (21:32 +0000)
committerKarl Schultz <kschultz@freedesktop.org>
Fri, 21 Sep 2001 21:32:14 +0000 (21:32 +0000)
consistent with the other modules and platforms.  It also makes the
API and linkage on Windows more consistent.

src/mesa/drivers/osmesa/Makefile.win
src/mesa/drivers/osmesa/osmesa.c
src/mesa/drivers/osmesa/osmesa.def [new file with mode: 0644]
src/mesa/main/Makefile.win

index c754782..d6c11b1 100644 (file)
@@ -13,24 +13,27 @@ DRIVER_SRCS = $(OSMESA_SRCS)
 
 SRCS   = $(OSMESA_SRCS)
 
-all    : osmesalib
+all    : osmesadll
 
 !include "$(TOP)/mesawin32.mak"
 
-osmesalib: $(OSMESALIB)
+osmesadll: $(OSMESADLL)
 
-# Undefine _DLL because osmesa is a LIB, not a DLL
-CFLAGS = $(cvarsdll) $(CFLAGS) -U_DLL -D_OPENGL32_ -I$(TOP)/src
-LFLAGS = /LIB
+CFLAGS = $(cvarsdll) $(CFLAGS) -D_OPENGL32_ -DBUILD_GL32 -I$(TOP)/src
+LFLAGS = $(LFLAGS) $(dlllflags)
 
 OBJS   = $(ASM_SRCS:.S=.obj) $(CORE_SRCS:.c=.obj) $(DRIVER_SRCS:.c=.obj)
-LIBS   = $(TOP)/lib/$(MESALIB)
+LIBS   = $(guilibsdll) $(TOP)/lib/$(MESALIB)
 
-$(OSMESALIB)   : $(OBJS)
-       $(link) $(LFLAGS) -out:$(OSMESALIB) $(OBJS) $(LIBS)
+$(OSMESADLL)   : $(OBJS) osmesa.def
+       $(link) $(LFLAGS) -def:osmesa.def -out:$(OSMESADLL) $(OBJS) $(LIBS)
        @echo "copying OSMesa library to library directory..."
        -copy $(OSMESALIB) $(TOP)\lib
+       @echo "copying OSMesa dll to library directory..."
+       -copy $(OSMESADLL) $(TOP)\lib
 
-install        : $(OSMESALIB)
+install        : $(OSMESADLL)
        @echo "copying OSMesa library to system library directory..."
        -copy $(OSMESALIB) $(LIBINSTALL)
+       @echo "copying OSMesa dll to system library directory..."
+       -copy $(OSMESADLL) $(DLLINSTALL)
index e6cbeaf..d60cd19 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: osmesa.c,v 1.68 2001/09/18 16:51:45 kschultz Exp $ */
+/* $Id: osmesa.c,v 1.69 2001/09/21 21:32:14 kschultz Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -112,7 +112,7 @@ static void osmesa_register_swrast_functions( GLcontext *ctx );
  *                     display lists.  NULL indicates no sharing.
  * Return:  an OSMesaContext or 0 if error
  */
-OSMesaContext GLAPIENTRY
+GLAPI OSMesaContext GLAPIENTRY
 OSMesaCreateContext( GLenum format, OSMesaContext sharelist )
 {
    return OSMesaCreateContextExt(format, DEFAULT_SOFTWARE_DEPTH_BITS,
@@ -126,7 +126,7 @@ OSMesaCreateContext( GLenum format, OSMesaContext sharelist )
  *
  * Create context and specify size of ancillary buffers.
  */
-OSMesaContext GLAPIENTRY
+GLAPI OSMesaContext GLAPIENTRY
 OSMesaCreateContextExt( GLenum format, GLint depthBits, GLint stencilBits,
                         GLint accumBits, OSMesaContext sharelist )
 {
@@ -357,7 +357,7 @@ OSMesaCreateContextExt( GLenum format, GLint depthBits, GLint stencilBits,
  *
  * Input:  ctx - the context to destroy
  */
-void GLAPIENTRY OSMesaDestroyContext( OSMesaContext ctx )
+GLAPI void GLAPIENTRY OSMesaDestroyContext( OSMesaContext ctx )
 {
    if (ctx) {
       _swsetup_DestroyContext( &ctx->gl_ctx );
@@ -444,7 +444,7 @@ static void compute_row_addresses( OSMesaContext ctx )
  *          invalid buffer address, type!=GL_UNSIGNED_BYTE, width<1, height<1,
  *          width>internal limit or height>internal limit.
  */
-GLboolean GLAPIENTRY
+GLAPI GLboolean GLAPIENTRY
 OSMesaMakeCurrent( OSMesaContext ctx, void *buffer, GLenum type,
                    GLsizei width, GLsizei height )
 {
@@ -488,7 +488,7 @@ OSMesaMakeCurrent( OSMesaContext ctx, void *buffer, GLenum type,
 
 
 
-OSMesaContext GLAPIENTRY OSMesaGetCurrentContext( void )
+GLAPI OSMesaContext GLAPIENTRY OSMesaGetCurrentContext( void )
 {
    GLcontext *ctx = _mesa_get_current_context();
    if (ctx)
@@ -499,7 +499,7 @@ OSMesaContext GLAPIENTRY OSMesaGetCurrentContext( void )
 
 
 
-void GLAPIENTRY OSMesaPixelStore( GLint pname, GLint value )
+GLAPI void GLAPIENTRY OSMesaPixelStore( GLint pname, GLint value )
 {
    OSMesaContext ctx = OSMesaGetCurrentContext();
 
@@ -525,7 +525,7 @@ void GLAPIENTRY OSMesaPixelStore( GLint pname, GLint value )
 }
 
 
-void GLAPIENTRY OSMesaGetIntegerv( GLint pname, GLint *value )
+GLAPI void GLAPIENTRY OSMesaGetIntegerv( GLint pname, GLint *value )
 {
    OSMesaContext ctx = OSMesaGetCurrentContext();
 
@@ -568,7 +568,7 @@ void GLAPIENTRY OSMesaGetIntegerv( GLint pname, GLint *value )
  *          buffer - pointer to depth buffer values
  * Return:  GL_TRUE or GL_FALSE to indicate success or failure.
  */
-GLboolean GLAPIENTRY
+GLAPI GLboolean GLAPIENTRY
 OSMesaGetDepthBuffer( OSMesaContext c, GLint *width, GLint *height,
                       GLint *bytesPerValue, void **buffer )
 {
@@ -599,7 +599,7 @@ OSMesaGetDepthBuffer( OSMesaContext c, GLint *width, GLint *height,
  *          buffer - pointer to color buffer values
  * Return:  GL_TRUE or GL_FALSE to indicate success or failure.
  */
-GLboolean GLAPIENTRY
+GLAPI GLboolean GLAPIENTRY
 OSMesaGetColorBuffer( OSMesaContext c, GLint *width,
                       GLint *height, GLint *format, void **buffer )
 {
diff --git a/src/mesa/drivers/osmesa/osmesa.def b/src/mesa/drivers/osmesa/osmesa.def
new file mode 100644 (file)
index 0000000..68cdbad
--- /dev/null
@@ -0,0 +1,13 @@
+DESCRIPTION 'Mesa OSMesa lib for Win32'
+VERSION 3.5
+
+EXPORTS
+       OSMesaCreateContext
+       OSMesaCreateContextExt
+       OSMesaDestroyContext
+       OSMesaMakeCurrent
+       OSMesaGetCurrentContext
+       OSMesaPixelStore
+       OSMesaGetIntegerv
+       OSMesaGetDepthBuffer
+       OSMesaGetColorBuffer
index 65b6ed8..2d2138f 100644 (file)
@@ -195,6 +195,8 @@ clean       ::
 
 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.