Commit 844a4094 authored by Reinhard Tartler's avatar Reinhard Tartler

Imported nx-X11-3.1.0-3.tar.gz

Summary: Imported nx-X11-3.1.0-3.tar.gz Keywords: Imported nx-X11-3.1.0-3.tar.gz into Git repository
parent f4092abd
ChangeLog:
nx-X11-3.1.0-3
- Moved a variable definition placed in _mesa_make_current().
nx-X11-3.1.0-2
- Fixed TR10E01924. A crash could occur in _mesa_make_current().
- Initialized after_ret variable in _XcmsGetProperty().
nx-X11-3.1.0-1
- Opened the 3.1.0 branch based on nx-X11-3.0.0-37.
......
ChangeLog:
nx-X11-3.1.0-3
- Moved a variable definition placed in _mesa_make_current().
nx-X11-3.1.0-2
- Fixed TR10E01924. A crash could occur in _mesa_make_current().
- Initialized after_ret variable in _XcmsGetProperty().
nx-X11-3.1.0-1
- Opened the 3.1.0 branch based on nx-X11-3.0.0-37.
nx-X11-3.0.0-37
- Changed the Xserver Imakefile to link against Xcomposite on the
......
/**************************************************************************/
/* */
/* Copyright (c) 2001, 2007 NoMachine, http://www.nomachine.com/. */
/* */
/* NXAGENT, NX protocol compression and NX extensions to this software */
/* are copyright of NoMachine. Redistribution and use of the present */
/* software is allowed according to terms specified in the file LICENSE */
/* which comes in the source distribution. */
/* */
/* Check http://www.nomachine.com/licensing.html for applicability. */
/* */
/* NX and NoMachine are trademarks of NoMachine S.r.l. */
/* */
/* All rights reserved. */
/* */
/**************************************************************************/
typedef struct _WSDrawBufferRec {
GLframebuffer *DrawBuffer;
struct _WSDrawBufferRec *next;
} WSDrawBufferRec, *WSDrawBufferPtr;
WSDrawBufferPtr pWSDrawBuffer;
/**************************************************************************/
/* */
/* Copyright (c) 2001, 2007 NoMachine, http://www.nomachine.com/. */
/* */
/* NXAGENT, NX protocol compression and NX extensions to this software */
/* are copyright of NoMachine. Redistribution and use of the present */
/* software is allowed according to terms specified in the file LICENSE */
/* which comes in the source distribution. */
/* */
/* Check http://www.nomachine.com/licensing.html for applicability. */
/* */
/* NX and NoMachine are trademarks of NoMachine S.r.l. */
/* */
/* All rights reserved. */
/* */
/**************************************************************************/
typedef struct _WSDrawBufferRec {
GLframebuffer *DrawBuffer;
struct _WSDrawBufferRec *next;
} WSDrawBufferRec, *WSDrawBufferPtr;
WSDrawBufferPtr pWSDrawBuffer;
......@@ -131,6 +131,10 @@
#endif
#include "shaderobjects.h"
#ifdef NXAGENT_SERVER
#include "WSDrawBuffer.h"
#endif
#ifdef USE_SPARC_ASM
#include "sparc/sparc.h"
#endif
......@@ -143,6 +147,47 @@ int MESA_VERBOSE = 0;
int MESA_DEBUG_FLAGS = 0;
#endif
#ifdef NXAGENT_SERVER
extern WSDrawBufferPtr pWSDrawBuffer;
int IsWSDrawBuffer(GLframebuffer *mesa_buffer)
{
WSDrawBufferPtr p = pWSDrawBuffer;
while (p != NULL) {
if (p -> DrawBuffer == mesa_buffer) {
return 1;
}
p = p -> next;
}
return 0;
}
void FreeWSDrawBuffer(GLframebuffer *mesa_buffer)
{
WSDrawBufferPtr p = pWSDrawBuffer;
WSDrawBufferPtr pOld = NULL;
if (p == NULL)
return;
if (p -> DrawBuffer == mesa_buffer) {
pWSDrawBuffer = p -> next;
free(p);
return;
}
while (p -> next != NULL) {
if (p -> next -> DrawBuffer == mesa_buffer) {
pOld = p -> next;
p -> next = p -> next -> next;
free(pOld);
return;
}
p = p -> next;
}
}
#endif
/* ubyte -> float conversion */
GLfloat _mesa_ubyte_to_float_color_tab[256];
......@@ -1520,6 +1565,10 @@ void
_mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer,
GLframebuffer *readBuffer )
{
#ifdef NXAGENT_SERVER
int flag;
#endif
if (MESA_VERBOSE & VERBOSE_API)
_mesa_debug(newCtx, "_mesa_make_current()\n");
......@@ -1558,11 +1607,30 @@ _mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer,
ASSERT(readBuffer->Name == 0);
newCtx->WinSysDrawBuffer = drawBuffer;
newCtx->WinSysReadBuffer = readBuffer;
#ifdef NXAGENT_SERVER
flag = 0;
if (newCtx->DrawBuffer) {
if (!IsWSDrawBuffer(newCtx->DrawBuffer)) {
if (newCtx->DrawBuffer->Name == 0) {
flag = 1;
}
FreeWSDrawBuffer(newCtx->DrawBuffer);
}
else flag = 1;
}
if (!newCtx->DrawBuffer || flag) {
newCtx->DrawBuffer = drawBuffer;
newCtx->ReadBuffer = readBuffer;
}
#else
/* don't replace user-buffer bindings with window system buffer */
if (!newCtx->DrawBuffer || newCtx->DrawBuffer->Name == 0) {
newCtx->DrawBuffer = drawBuffer;
newCtx->ReadBuffer = readBuffer;
}
#endif
newCtx->NewState |= _NEW_BUFFERS;
......
......@@ -121,7 +121,11 @@ _XcmsGetProperty(
char *prop_ret;
int format_ret;
long len = 6516;
#ifdef NXAGENT_SERVER
unsigned long nitems_ret, after_ret = 0;
#else
unsigned long nitems_ret, after_ret;
#endif
Atom atom_ret;
while (XGetWindowProperty (pDpy, w, property, 0, len, False,
......
/* $Xorg: cmsProp.c,v 1.3 2000/08/17 19:45:10 cpqbld Exp $ */
/*
*
* Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
* All Rights Reserved
*
* This file is a component of an X Window System-specific implementation
* of Xcms based on the TekColor Color Management System. Permission is
* hereby granted to use, copy, modify, sell, and otherwise distribute this
* software and its documentation for any purpose and without fee, provided
* that this copyright, permission, and disclaimer notice is reproduced in
* all copies of this software and in supporting documentation. TekColor
* is a trademark of Tektronix, Inc.
*
* Tektronix makes no representation about the suitability of this software
* for any purpose. It is provided "as is" and with all faults.
*
* TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
* INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
* PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
* SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
* RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
* CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
*
* NAME
* XcmsProp.c
*
* DESCRIPTION
* This utility routines for manipulating properties.
*
*/
/* $XFree86$ */
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/Xatom.h>
#include "Xlibint.h"
#include "Xcmsint.h"
#include "Cv.h"
/************************************************************************
* *
* API PRIVATE ROUTINES *
* *
************************************************************************/
/*
* NAME
* _XcmsGetElement -- get an element value from the property passed
*
* SYNOPSIS
*/
unsigned long
_XcmsGetElement(
int format,
char **pValue,
unsigned long *pCount)
/*
* DESCRIPTION
* Get the next element from the property and return it.
* Also increment the pointer the amount needed.
*
* Returns
* unsigned long
*/
{
unsigned long value;
switch (format) {
case 32:
value = *((unsigned long *)(*pValue)) & 0xFFFFFFFF;
*pValue += sizeof(unsigned long);
*pCount -= 1;
break;
case 16:
value = *((unsigned short *)(*pValue));
*pValue += sizeof(unsigned short);
*pCount -= 1;
break;
case 8:
value = *((unsigned char *) (*pValue));
*pValue += 1;
*pCount -= 1;
break;
default:
value = 0;
break;
}
return(value);
}
/*
* NAME
* _XcmsGetProperty -- Determine the existance of a property
*
* SYNOPSIS
*/
int
_XcmsGetProperty(
Display *pDpy,
Window w,
Atom property,
int *pFormat,
unsigned long *pNItems,
unsigned long *pNBytes,
char **pValue)
/*
* DESCRIPTION
*
* Returns
* 0 if property does not exist.
* 1 if property exists.
*/
{
char *prop_ret;
int format_ret;
long len = 6516;
unsigned long nitems_ret, after_ret;
Atom atom_ret;
while (XGetWindowProperty (pDpy, w, property, 0, len, False,
XA_INTEGER, &atom_ret, &format_ret,
&nitems_ret, &after_ret,
(unsigned char **)&prop_ret)) {
if (after_ret > 0) {
len += nitems_ret * (format_ret >> 3);
XFree (prop_ret);
} else {
break;
}
}
if (format_ret == 0 || nitems_ret == 0) {
/* the property does not exist or is of an unexpected type */
return(XcmsFailure);
}
*pFormat = format_ret;
*pNItems = nitems_ret;
*pNBytes = nitems_ret * (format_ret >> 3);
*pValue = prop_ret;
return(XcmsSuccess);
}
......@@ -57,7 +57,7 @@ GLXSRV_DEFINES = -DXFree86Server
-I$(XF86OSSRC) \
-I$(DRMSRCDIR)/shared-core
DEFINES = $(GLX_DEFINES) $(GLXSRV_DEFINES) /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
DEFINES = $(GLX_DEFINES) $(GLXSRV_DEFINES) -DNXAGENT_SERVER /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
#ifdef IHaveModules
ModuleObjectRule()
......
XCOMM $XFree86: xc/programs/Xserver/GL/mesa/src/X/Imakefile,v 1.16 2002/11/22 22:56:01 tsi Exp $
#if DoLoadableServer
#if !BuildModuleInSubdir
#define IHaveModules
#elif !defined(IHaveModules)
#define IHaveSubdirs
SUBDIRS = module
#endif
#endif
#include <Server.tmpl>
#define NeedAllMesaSrc
#define NeedToLinkMesaSrc
#define MesaXBuildDir /**/
#define MesaInXServer
#if !defined(IHaveModules) || !BuildModuleInSubdir
#include "../../../../../lib/GL/mesa/drivers/x11/Imakefile.inc"
#else
#include "../../../../../../lib/GL/mesa/drivers/x11/Imakefile.inc"
#endif
LinkSourceFile(compsize.c,$(MESASRCDIR)/src/glx/x11)
DRIVER_SRCS = $(XMESA_SRCS)
DRIVER_OBJS = $(XMESA_OBJS)
COMMON_SRCS = driverfuncs.c
COMMON_OBJS = driverfuncs.o
#ifndef XFree86Version
/* This appears to be the quickest way to build a non-XFree86 server */
GLXSRV_DEFINES = -DXFree86Server
#endif
GLX_SRCS = xf86glx.c xf86glx_util.c compsize.c
GLX_OBJS = xf86glx.o xf86glx_util.o compsize.o
SRCS = $(DRIVER_SRCS) $(GLX_SRCS) $(COMMON_SRCS)
OBJS = $(DRIVER_OBJS) $(GLX_OBJS) $(COMMON_OBJS)
INCLUDES = -I$(SERVERSRC)/GL/mesa/X -I$(XINCLUDESRC) \
-I$(EXTINCSRC) \
-I$(MESASRCDIR)/src/mesa \
-I$(MESASRCDIR)/src/mesa/main \
-I$(MESASRCDIR)/src/mesa/glapi \
-I$(MESASRCDIR)/src/mesa/shader \
-I$(MESASRCDIR)/src -I$(MESASRCDIR)/src/mesa/drivers/x11 \
-I$(MESASRCDIR)/include \
-I$(LIBSRC)/GL/glx -I$(LIBSRC)/GL/include \
-I$(SERVERSRC)/include -I$(SERVERSRC)/GL/include \
-I$(SERVERSRC)/GL/glx \
-I$(XF86OSSRC) \
-I$(DRMSRCDIR)/shared-core
DEFINES = $(GLX_DEFINES) $(GLXSRV_DEFINES) -DNXAGENT_SERVER /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
#ifdef IHaveModules
ModuleObjectRule()
#else
NormalLibraryObjectRule()
#endif
SubdirLibraryRule($(OBJS))
LintLibraryTarget(dri,$(SRCS))
NormalLintTarget($(SRCS))
DependTarget()
#ifdef IHaveSubdirs
MakeSubdirs($(SUBDIRS))
DependSubdirs($(SUBDIRS))
#endif
#if defined(IHaveModules) && BuildModuleInSubdir
LinkSourceFile(xf86glx.c,..)
LinkSourceFile(xf86glx_util.c,..)
#endif
#ifndef MesaDrvSrcDir
#define MesaDrvSrcDir $(MESASRCDIR)/src/mesa/drivers/dri
#endif
MESADRVSRCDIR = MesaDrvSrcDir
LinkSourceFile(driverfuncs.c, $(MESADRVSRCDIR)/../common)
LinkSourceFile(driverfuncs.h, $(MESADRVSRCDIR)/../common)
XCOMM $XFree86: xc/programs/Xserver/GL/mesa/src/X/Imakefile,v 1.16 2002/11/22 22:56:01 tsi Exp $
#if DoLoadableServer
#if !BuildModuleInSubdir
#define IHaveModules
#elif !defined(IHaveModules)
#define IHaveSubdirs
SUBDIRS = module
#endif
#endif
#include <Server.tmpl>
#define NeedAllMesaSrc
#define NeedToLinkMesaSrc
#define MesaXBuildDir /**/
#define MesaInXServer
#if !defined(IHaveModules) || !BuildModuleInSubdir
#include "../../../../../lib/GL/mesa/drivers/x11/Imakefile.inc"
#else
#include "../../../../../../lib/GL/mesa/drivers/x11/Imakefile.inc"
#endif
LinkSourceFile(compsize.c,$(MESASRCDIR)/src/glx/x11)
DRIVER_SRCS = $(XMESA_SRCS)
DRIVER_OBJS = $(XMESA_OBJS)
COMMON_SRCS = driverfuncs.c
COMMON_OBJS = driverfuncs.o
#ifndef XFree86Version
/* This appears to be the quickest way to build a non-XFree86 server */
GLXSRV_DEFINES = -DXFree86Server
#endif
GLX_SRCS = xf86glx.c xf86glx_util.c compsize.c
GLX_OBJS = xf86glx.o xf86glx_util.o compsize.o
SRCS = $(DRIVER_SRCS) $(GLX_SRCS) $(COMMON_SRCS)
OBJS = $(DRIVER_OBJS) $(GLX_OBJS) $(COMMON_OBJS)
INCLUDES = -I$(SERVERSRC)/GL/mesa/X -I$(XINCLUDESRC) \
-I$(EXTINCSRC) \
-I$(MESASRCDIR)/src/mesa \
-I$(MESASRCDIR)/src/mesa/main \
-I$(MESASRCDIR)/src/mesa/glapi \
-I$(MESASRCDIR)/src/mesa/shader \
-I$(MESASRCDIR)/src -I$(MESASRCDIR)/src/mesa/drivers/x11 \
-I$(MESASRCDIR)/include \
-I$(LIBSRC)/GL/glx -I$(LIBSRC)/GL/include \
-I$(SERVERSRC)/include -I$(SERVERSRC)/GL/include \
-I$(SERVERSRC)/GL/glx \
-I$(XF86OSSRC) \
-I$(DRMSRCDIR)/shared-core
DEFINES = $(GLX_DEFINES) $(GLXSRV_DEFINES) /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
#ifdef IHaveModules
ModuleObjectRule()
#else
NormalLibraryObjectRule()
#endif
SubdirLibraryRule($(OBJS))
LintLibraryTarget(dri,$(SRCS))
NormalLintTarget($(SRCS))
DependTarget()
#ifdef IHaveSubdirs
MakeSubdirs($(SUBDIRS))
DependSubdirs($(SUBDIRS))
#endif
#if defined(IHaveModules) && BuildModuleInSubdir
LinkSourceFile(xf86glx.c,..)
LinkSourceFile(xf86glx_util.c,..)
#endif
#ifndef MesaDrvSrcDir
#define MesaDrvSrcDir $(MESASRCDIR)/src/mesa/drivers/dri
#endif
MESADRVSRCDIR = MesaDrvSrcDir
LinkSourceFile(driverfuncs.c, $(MESADRVSRCDIR)/../common)
LinkSourceFile(driverfuncs.h, $(MESADRVSRCDIR)/../common)
......@@ -71,6 +71,10 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "glcontextmodes.h"
#ifdef NXAGENT_SERVER
#include "../main/WSDrawBuffer.h"
#endif
/*
* This structure is statically allocated in the __glXScreens[]
* structure. This struct is not used anywhere other than in
......@@ -95,6 +99,36 @@ static __GLXscreenInfo __glDDXScreenInfo = {
NULL /* WrappedPositionWindow is overwritten */
};
#ifdef NXAGENT_SERVER
WSDrawBufferPtr pWSDrawBuffer = NULL;
void AddWSDrawBuffer(GLframebuffer *mesa_buffer)
{
WSDrawBufferPtr prevWSDB;
WSDrawBufferPtr newWSDB;
WSDrawBufferPtr p;
prevWSDB = NULL;
newWSDB = NULL;
p = pWSDrawBuffer;
while (p != NULL) {
prevWSDB = p;
if (prevWSDB -> DrawBuffer == mesa_buffer) {
return;
}
p = p -> next;
}
newWSDB = malloc(sizeof(WSDrawBufferRec));
newWSDB -> DrawBuffer = mesa_buffer;
newWSDB -> next = NULL;
if (pWSDrawBuffer == NULL)
pWSDrawBuffer = newWSDB;
else
prevWSDB -> next = newWSDB;
}
#endif
void *__glXglDDXScreenInfo(void) {
return &__glDDXScreenInfo;
}
......@@ -748,6 +782,10 @@ void __MESA_destroyBuffer(__GLdrawablePrivate *glPriv)
__MESA_buffer buf = (__MESA_buffer)glPriv->private;
__GLXdrawablePrivate *glxPriv = (__GLXdrawablePrivate *)glPriv->other;
#ifdef NXAGENT_SERVER
AddWSDrawBuffer(& (buf -> xm_buf -> mesa_buffer) );
#endif
/* Destroy Mesa's buffers */
if (buf->xm_buf)
XMesaDestroyBuffer(buf->xm_buf);
......@@ -757,7 +795,7 @@ void __MESA_destroyBuffer(__GLdrawablePrivate *glPriv)
glPriv->frontBuffer.resize = buf->fbresize;
__glXFree(glPriv->private);
glPriv->private = NULL;
glPriv->private = NULL;
}
__GLinterface *__MESA_createContext(__GLimports *imports,
......
......@@ -39,7 +39,7 @@ SUBDIRS = module
-I$(LIBSRC)/GL/include \
-I$(XF86SRC) -I$(INCLUDESRC)
DEFINES = $(GLX_DEFINES) /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
DEFINES = $(GLX_DEFINES) -DNXAGENT_SERVER /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
#ifdef IHaveModules
ModuleObjectRule()
......
XCOMM $XdotOrg: xc/programs/Xserver/GL/mesa/main/Imakefile,v 1.2 2004/08/19 07:34:43 kem Exp $
XCOMM $XFree86: xc/programs/Xserver/GL/mesa/src/math/Imakefile,v 1.8 2002/11/22 22:56:01 tsi Exp $
#if DoLoadableServer
#if !BuildModuleInSubdir
#define IHaveModules
#elif !defined(IHaveModules)
#define IHaveSubdirs
SUBDIRS = module
#endif
#endif
/* Large PIC tables needed for Solaris/SPARC builds */
#if defined(SunArchitecture) && defined(SparcArchitecture) && defined(LargePositionIndependentCFlags)
PICFLAGS = LargePositionIndependentCFlags
#endif
#include <Server.tmpl>
#define NeedAllMesaSrc
#define NeedToLinkMesaSrc
#define MesaBuildDir /**/
#if !defined(IHaveModules) || !BuildModuleInSubdir
#include "../../../../../lib/GL/mesa/main/Imakefile.inc"
#else
#include "../../../../../../lib/GL/mesa/main/Imakefile.inc"
#endif
SRCS = $(COREMESABASESRCS)
OBJS = $(COREMESABASEOBJS)
INCLUDES = -I$(MESASRCDIR)/src/mesa \
-I$(MESASRCDIR)/src/mesa/main \
-I$(MESASRCDIR)/src/mesa/shader \
-I$(MESASRCDIR)/src/mesa/glapi \
-I$(MESASRCDIR)/include \
-I$(SERVERSRC)/include -I$(XINCLUDESRC) \
-I$(SERVERSRC)/GL/include -I$(SERVERSRC)/GL/glx \
-I$(LIBSRC)/GL/include \
-I$(XF86SRC) -I$(INCLUDESRC)
DEFINES = $(GLX_DEFINES) -DNXAGENT_SERVER /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
#ifdef IHaveModules
ModuleObjectRule()
#else
NormalLibraryObjectRule()
#endif
SubdirLibraryRule($(OBJS))
LintLibraryTarget(dri,$(SRCS))
NormalLintTarget($(SRCS))
DependTarget()
#ifdef IHaveSubdirs
MakeSubdirs($(SUBDIRS))
DependSubdirs($(SUBDIRS))
#endif
XCOMM $XdotOrg: xc/programs/Xserver/GL/mesa/main/Imakefile,v 1.2 2004/08/19 07:34:43 kem Exp $
XCOMM $XFree86: xc/programs/Xserver/GL/mesa/src/math/Imakefile,v 1.8 2002/11/22 22:56:01 tsi Exp $
#if DoLoadableServer
#if !BuildModuleInSubdir
#define IHaveModules
#elif !defined(IHaveModules)
#define IHaveSubdirs
SUBDIRS = module
#endif
#endif
/* Large PIC tables needed for Solaris/SPARC builds */
#if defined(SunArchitecture) && defined(SparcArchitecture) && defined(LargePositionIndependentCFlags)
PICFLAGS = LargePositionIndependentCFlags
#endif
#include <Server.tmpl>
#define NeedAllMesaSrc
#define NeedToLinkMesaSrc
#define MesaBuildDir /**/
#if !defined(IHaveModules) || !BuildModuleInSubdir
#include "../../../../../lib/GL/mesa/main/Imakefile.inc"
#else
#include "../../../../../../lib/GL/mesa/main/Imakefile.inc"
#endif
SRCS = $(COREMESABASESRCS)
OBJS = $(COREMESABASEOBJS)
INCLUDES = -I$(MESASRCDIR)/src/mesa \
-I$(MESASRCDIR)/src/mesa/main \
-I$(MESASRCDIR)/src/mesa/shader \
-I$(MESASRCDIR)/src/mesa/glapi \
-I$(MESASRCDIR)/include \
-I$(SERVERSRC)/include -I$(XINCLUDESRC) \
-I$(SERVERSRC)/GL/include -I$(SERVERSRC)/GL/glx \
-I$(LIBSRC)/GL/include \
-I$(XF86SRC) -I$(INCLUDESRC)
DEFINES = $(GLX_DEFINES) /*-DUSE_X86_ASM*/ /*-DUSE_SPARC_ASM*/
#ifdef IHaveModules
ModuleObjectRule()
#else
NormalLibraryObjectRule()
#endif
SubdirLibraryRule($(OBJS))
LintLibraryTarget(dri,$(SRCS))
NormalLintTarget($(SRCS))
DependTarget()
#ifdef IHaveSubdirs
MakeSubdirs($(SUBDIRS))
DependSubdirs($(SUBDIRS))
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment