[SCM] DarkPlaces, a Quake engine branch, master, updated. debian/0_20110628+svn11231-1-1-g4c7a08f
Simon McVittie
smcv at debian.org
Tue Jul 19 10:20:57 UTC 2011
The following commit has been merged in the master branch:
commit 4c7a08f91e6a2e68a79ace2a05857a00a901c570
Author: Simon McVittie <smcv at debian.org>
Date: Tue Jul 19 10:35:24 2011 +0100
Don't compile SSE code, or the software rasterizer (which requires SSE2), on non-x86
diff --git a/debian/changelog b/debian/changelog
index 3825db4..6951e28 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+darkplaces (0~20110628+svn11231-2) unstable; urgency=low
+
+ * Don't compile SSE code, or the software rasterizer (which requires SSE2),
+ on non-x86
+
+ -- Simon McVittie <smcv at debian.org> Mon, 18 Jul 2011 23:08:10 +0100
+
darkplaces (0~20110628+svn11231-1) unstable; urgency=low
* Initial release to Debian under this name (Closes: #319599)
diff --git a/debian/patches/0018-Don-t-build-SSE-only-objects-on-non-x86-CPUs.patch b/debian/patches/0018-Don-t-build-SSE-only-objects-on-non-x86-CPUs.patch
new file mode 100644
index 0000000..191a012
--- /dev/null
+++ b/debian/patches/0018-Don-t-build-SSE-only-objects-on-non-x86-CPUs.patch
@@ -0,0 +1,892 @@
+From 0518e7bca50e2eaeda8a8d7739db7c0d0169a00f Mon Sep 17 00:00:00 2001
+From: Simon McVittie <smcv at debian.org>
+Date: Tue, 19 Jul 2011 10:34:39 +0100
+Subject: [PATCH] Don't build SSE-only objects on non-x86 CPUs
+
+Compilers for non-x86 platforms don't understand -msse or -msse2, and
+these files aren't usable on non-x86 anyway.
+
+Origin: vendor, Debian
+---
+ gl_backend.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ gl_rmain.c | 24 ++++++++++++++++++++++-
+ gl_textures.c | 16 +++++++++++++++
+ makefile | 12 +++++++++++
+ makefile.inc | 16 ++++++++------
+ quakedef.h | 5 ++++
+ vid_glx.c | 9 +++++++-
+ vid_sdl.c | 6 ++++-
+ vid_shared.c | 4 ++-
+ vid_wgl.c | 6 ++++-
+ 10 files changed, 144 insertions(+), 12 deletions(-)
+
+diff --git a/gl_backend.c b/gl_backend.c
+index 0c3e739..12406c8 100644
+--- a/gl_backend.c
++++ b/gl_backend.c
+@@ -571,7 +571,9 @@ void GL_Finish(void)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_Finish();
++#endif
+ break;
+ }
+ }
+@@ -1120,7 +1122,9 @@ void R_SetViewport(const r_viewport_t *v)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_Viewport(v->x, v->y, v->width, v->height);
++#endif
+ break;
+ case RENDERPATH_GL20:
+ case RENDERPATH_GLES2:
+@@ -1273,7 +1277,9 @@ void R_Mesh_ResetRenderTargets(void)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_SetRenderTargets(vid.width, vid.height, vid.softdepthpixels, vid.softpixels, NULL, NULL, NULL);
++#endif
+ break;
+ }
+ }
+@@ -1336,6 +1342,7 @@ void R_Mesh_SetRenderTargets(int fbo, rtexture_t *depthtexture, rtexture_t *colo
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ if (fbo)
+ {
+ int width, height;
+@@ -1349,6 +1356,7 @@ void R_Mesh_SetRenderTargets(int fbo, rtexture_t *depthtexture, rtexture_t *colo
+ }
+ else
+ DPSOFTRAST_SetRenderTargets(vid.width, vid.height, vid.softdepthpixels, vid.softpixels, NULL, NULL, NULL);
++#endif
+ break;
+ }
+ }
+@@ -1497,6 +1505,7 @@ static void GL_Backend_ResetState(void)
+ CHECKGLERROR
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_ColorMask(1,1,1,1);
+ DPSOFTRAST_BlendFunc(gl_state.blendfunc1, gl_state.blendfunc2);
+ DPSOFTRAST_CullFace(gl_state.cullface);
+@@ -1505,6 +1514,7 @@ static void GL_Backend_ResetState(void)
+ DPSOFTRAST_PolygonOffset(gl_state.polygonoffset[0], gl_state.polygonoffset[1]);
+ DPSOFTRAST_SetRenderTargets(vid.width, vid.height, vid.softdepthpixels, vid.softpixels, NULL, NULL, NULL);
+ DPSOFTRAST_Viewport(0, 0, vid.width, vid.height);
++#endif
+ break;
+ case RENDERPATH_GL20:
+ case RENDERPATH_GLES2:
+@@ -1686,7 +1696,9 @@ void GL_BlendFunc(int blendfunc1, int blendfunc2)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_BlendFunc(gl_state.blendfunc1, gl_state.blendfunc2);
++#endif
+ break;
+ }
+ }
+@@ -1719,7 +1731,9 @@ void GL_DepthMask(int state)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_DepthMask(gl_state.depthmask);
++#endif
+ break;
+ }
+ }
+@@ -1759,7 +1773,9 @@ void GL_DepthTest(int state)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_DepthTest(gl_state.depthtest);
++#endif
+ break;
+ }
+ }
+@@ -1792,7 +1808,9 @@ void GL_DepthFunc(int state)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_DepthFunc(gl_state.depthfunc);
++#endif
+ break;
+ }
+ }
+@@ -1834,7 +1852,9 @@ void GL_DepthRange(float nearfrac, float farfrac)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_DepthRange(gl_state.depthrange[0], gl_state.depthrange[1]);
++#endif
+ break;
+ }
+ }
+@@ -1988,7 +2008,9 @@ void GL_PolygonOffset(float planeoffset, float depthoffset)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_PolygonOffset(gl_state.polygonoffset[0], gl_state.polygonoffset[1]);
++#endif
+ break;
+ }
+ }
+@@ -2026,7 +2048,9 @@ void GL_SetMirrorState(qboolean state)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_CullFace(gl_state.cullface);
++#endif
+ break;
+ }
+ }
+@@ -2103,12 +2127,14 @@ void GL_CullFace(int state)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ if (gl_state.cullface != state)
+ {
+ gl_state.cullface = state;
+ gl_state.cullfaceenable = state != GL_NONE ? true : false;
+ DPSOFTRAST_CullFace(gl_state.cullface);
+ }
++#endif
+ break;
+ }
+ }
+@@ -2208,7 +2234,9 @@ void GL_ColorMask(int r, int g, int b, int a)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_ColorMask(r, g, b, a);
++#endif
+ break;
+ }
+ }
+@@ -2237,7 +2265,9 @@ void GL_Color(float cr, float cg, float cb, float ca)
+ // no equivalent in D3D
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_Color4f(cr, cg, cb, ca);
++#endif
+ break;
+ case RENDERPATH_GL20:
+ case RENDERPATH_GLES2:
+@@ -2279,7 +2309,9 @@ void GL_Scissor (int x, int y, int width, int height)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_Scissor(x, y, width, height);
++#endif
+ break;
+ }
+ }
+@@ -2315,7 +2347,9 @@ void GL_ScissorTest(int state)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_ScissorTest(gl_state.scissortest);
++#endif
+ break;
+ }
+ }
+@@ -2366,10 +2400,12 @@ void GL_Clear(int mask, const float *colorvalue, float depthvalue, int stencilva
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ if (mask & GL_COLOR_BUFFER_BIT)
+ DPSOFTRAST_ClearColor(colorvalue[0], colorvalue[1], colorvalue[2], colorvalue[3]);
+ if (mask & GL_DEPTH_BUFFER_BIT)
+ DPSOFTRAST_ClearDepth(depthvalue);
++#endif
+ break;
+ }
+ }
+@@ -2429,7 +2465,9 @@ void GL_ReadPixelsBGRA(int x, int y, int width, int height, unsigned char *outpi
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_GetPixelsBGRA(x, y, width, height, outpixels);
++#endif
+ break;
+ }
+ }
+@@ -2933,7 +2971,9 @@ void R_Mesh_Draw(int firstvertex, int numvertices, int firsttriangle, int numtri
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_DrawTriangles(firstvertex, numvertices, numtriangles, element3i, element3s);
++#endif
+ break;
+ case RENDERPATH_GLES1:
+ case RENDERPATH_GLES2:
+@@ -3452,7 +3492,9 @@ void R_Mesh_CopyToTexture(rtexture_t *tex, int tx, int ty, int sx, int sy, int w
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_CopyRectangleToTexture(tex->texnum, 0, tx, ty, sx, sy, width, height);
++#endif
+ break;
+ }
+ }
+@@ -3631,6 +3673,7 @@ void R_Mesh_TexBind(unsigned int unitnum, rtexture_t *tex)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ if (!tex)
+ {
+ tex = r_texture_white;
+@@ -3643,6 +3686,7 @@ void R_Mesh_TexBind(unsigned int unitnum, rtexture_t *tex)
+ return;
+ unit->texture = tex;
+ DPSOFTRAST_SetTexture(unitnum, texnum);
++#endif
+ break;
+ }
+ }
+@@ -3987,6 +4031,7 @@ void R_Mesh_PrepareVertices_Vertex3f(int numvertices, const float *vertex3f, con
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_SetVertexPointer(vertex3f, sizeof(float[3]));
+ DPSOFTRAST_SetColorPointer(NULL, 0);
+ DPSOFTRAST_SetTexCoordPointer(0, 2, sizeof(float[2]), NULL);
+@@ -3994,6 +4039,7 @@ void R_Mesh_PrepareVertices_Vertex3f(int numvertices, const float *vertex3f, con
+ DPSOFTRAST_SetTexCoordPointer(2, 2, sizeof(float[2]), NULL);
+ DPSOFTRAST_SetTexCoordPointer(3, 2, sizeof(float[2]), NULL);
+ DPSOFTRAST_SetTexCoordPointer(4, 2, sizeof(float[2]), NULL);
++#endif
+ break;
+ }
+ }
+@@ -4062,6 +4108,7 @@ void R_Mesh_PrepareVertices_Generic_Arrays(int numvertices, const float *vertex3
+ case RENDERPATH_D3D11:
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_SetVertexPointer(vertex3f, sizeof(float[3]));
+ DPSOFTRAST_SetColorPointer(color4f, sizeof(float[4]));
+ DPSOFTRAST_SetTexCoordPointer(0, 2, sizeof(float[2]), texcoord2f);
+@@ -4069,6 +4116,7 @@ void R_Mesh_PrepareVertices_Generic_Arrays(int numvertices, const float *vertex3
+ DPSOFTRAST_SetTexCoordPointer(2, 2, sizeof(float[2]), NULL);
+ DPSOFTRAST_SetTexCoordPointer(3, 2, sizeof(float[2]), NULL);
+ DPSOFTRAST_SetTexCoordPointer(4, 2, sizeof(float[2]), NULL);
++#endif
+ return;
+ }
+
+@@ -4181,6 +4229,7 @@ void R_Mesh_PrepareVertices_Generic(int numvertices, const r_vertexgeneric_t *ve
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_SetVertexPointer(vertex->vertex3f, sizeof(*vertex));
+ DPSOFTRAST_SetColorPointer(vertex->color4f, sizeof(*vertex));
+ DPSOFTRAST_SetTexCoordPointer(0, 2, sizeof(*vertex), vertex->texcoord2f);
+@@ -4188,6 +4237,7 @@ void R_Mesh_PrepareVertices_Generic(int numvertices, const r_vertexgeneric_t *ve
+ DPSOFTRAST_SetTexCoordPointer(2, 2, sizeof(*vertex), NULL);
+ DPSOFTRAST_SetTexCoordPointer(3, 2, sizeof(*vertex), NULL);
+ DPSOFTRAST_SetTexCoordPointer(4, 2, sizeof(*vertex), NULL);
++#endif
+ break;
+ }
+ }
+@@ -4256,6 +4306,7 @@ void R_Mesh_PrepareVertices_Mesh_Arrays(int numvertices, const float *vertex3f,
+ case RENDERPATH_D3D11:
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_SetVertexPointer(vertex3f, sizeof(float[3]));
+ DPSOFTRAST_SetColorPointer(color4f, sizeof(float[4]));
+ DPSOFTRAST_SetTexCoordPointer(0, 2, sizeof(float[2]), texcoordtexture2f);
+@@ -4263,6 +4314,7 @@ void R_Mesh_PrepareVertices_Mesh_Arrays(int numvertices, const float *vertex3f,
+ DPSOFTRAST_SetTexCoordPointer(2, 3, sizeof(float[3]), tvector3f);
+ DPSOFTRAST_SetTexCoordPointer(3, 3, sizeof(float[3]), normal3f);
+ DPSOFTRAST_SetTexCoordPointer(4, 2, sizeof(float[2]), texcoordlightmap2f);
++#endif
+ return;
+ }
+
+@@ -4386,6 +4438,7 @@ void R_Mesh_PrepareVertices_Mesh(int numvertices, const r_vertexmesh_t *vertex,
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_SetVertexPointer(vertex->vertex3f, sizeof(*vertex));
+ DPSOFTRAST_SetColorPointer(vertex->color4f, sizeof(*vertex));
+ DPSOFTRAST_SetTexCoordPointer(0, 2, sizeof(*vertex), vertex->texcoordtexture2f);
+@@ -4393,6 +4446,7 @@ void R_Mesh_PrepareVertices_Mesh(int numvertices, const r_vertexmesh_t *vertex,
+ DPSOFTRAST_SetTexCoordPointer(2, 3, sizeof(*vertex), vertex->tvector3f);
+ DPSOFTRAST_SetTexCoordPointer(3, 3, sizeof(*vertex), vertex->normal3f);
+ DPSOFTRAST_SetTexCoordPointer(4, 2, sizeof(*vertex), vertex->texcoordlightmap2f);
++#endif
+ break;
+ }
+ }
+@@ -4422,7 +4476,9 @@ void GL_BlendEquationSubtract(qboolean negated)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_BlendSubtract(true);
++#endif
+ break;
+ }
+ }
+@@ -4449,7 +4505,9 @@ void GL_BlendEquationSubtract(qboolean negated)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_BlendSubtract(false);
++#endif
+ break;
+ }
+ }
+diff --git a/gl_rmain.c b/gl_rmain.c
+index ca7b583..0394409 100644
+--- a/gl_rmain.c
++++ b/gl_rmain.c
+@@ -1781,6 +1781,7 @@ void R_SetupShader_SetPermutationHLSL(unsigned int mode, unsigned int permutatio
+ }
+ #endif
+
++#ifdef HAVE_DPSOFTRAST
+ void R_SetupShader_SetPermutationSoft(unsigned int mode, unsigned int permutation)
+ {
+ DPSOFTRAST_SetShader(mode, permutation, r_shadow_glossexact.integer);
+@@ -1788,6 +1789,7 @@ void R_SetupShader_SetPermutationSoft(unsigned int mode, unsigned int permutatio
+ DPSOFTRAST_UniformMatrix4fv(DPSOFTRAST_UNIFORM_ModelViewMatrixM1, 1, false, gl_modelview16f);
+ DPSOFTRAST_Uniform1f(DPSOFTRAST_UNIFORM_ClientTime, cl.time);
+ }
++#endif
+
+ void R_GLSL_Restart_f(void)
+ {
+@@ -1946,9 +1948,11 @@ void R_SetupShader_Generic(rtexture_t *first, rtexture_t *second, int texturemod
+ R_Mesh_TexBind(0, first );
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ R_SetupShader_SetPermutationSoft(SHADERMODE_GENERIC, permutation);
+ R_Mesh_TexBind(GL20TU_FIRST , first );
+ R_Mesh_TexBind(GL20TU_SECOND, second);
++#endif
+ break;
+ }
+ }
+@@ -1986,7 +1990,9 @@ void R_SetupShader_DepthOrShadow(qboolean notrippy)
+ R_Mesh_TexBind(0, 0);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ R_SetupShader_SetPermutationSoft(SHADERMODE_DEPTH_OR_SHADOW, permutation);
++#endif
+ break;
+ }
+ }
+@@ -2023,7 +2029,9 @@ void R_SetupShader_ShowDepth(qboolean notrippy)
+ case RENDERPATH_GL11:
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ R_SetupShader_SetPermutationSoft(SHADERMODE_SHOWDEPTH, permutation);
++#endif
+ break;
+ }
+ }
+@@ -2816,6 +2824,7 @@ void R_SetupShader_Surface(const vec3_t lightcolorbase, qboolean modellighting,
+ case RENDERPATH_GLES1:
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ RSurf_PrepareVerticesForBatch(BATCHNEED_ARRAY_VERTEX | BATCHNEED_ARRAY_NORMAL | BATCHNEED_ARRAY_VECTOR | (rsurface.modellightmapcolor4f ? BATCHNEED_ARRAY_VERTEXCOLOR : 0) | BATCHNEED_ARRAY_TEXCOORD | (rsurface.uselightmaptexture ? BATCHNEED_ARRAY_LIGHTMAP : 0), texturenumsurfaces, texturesurfacelist);
+ R_Mesh_PrepareVertices_Mesh_Arrays(rsurface.batchnumvertices, rsurface.batchvertex3f, rsurface.batchsvector3f, rsurface.batchtvector3f, rsurface.batchnormal3f, rsurface.batchlightmapcolor4f, rsurface.batchtexcoordtexture2f, rsurface.batchtexcoordlightmap2f);
+ R_SetupShader_SetPermutationSoft(mode, permutation);
+@@ -2948,6 +2957,7 @@ void R_SetupShader_Surface(const vec3_t lightcolorbase, qboolean modellighting,
+ if (permutation & SHADERPERMUTATION_SHADOWMAPVSDCT ) R_Mesh_TexBind(GL20TU_CUBEPROJECTION , r_shadow_shadowmapvsdcttexture );
+ }
+ }
++#endif
+ break;
+ }
+ }
+@@ -3054,6 +3064,7 @@ void R_SetupShader_DeferredLight(const rtlight_t *rtlight)
+ case RENDERPATH_GLES1:
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ R_SetupShader_SetPermutationGLSL(mode, permutation);
+ DPSOFTRAST_Uniform3f( DPSOFTRAST_UNIFORM_LightPosition , viewlightorigin[0], viewlightorigin[1], viewlightorigin[2]);
+ DPSOFTRAST_UniformMatrix4fv(DPSOFTRAST_UNIFORM_ViewToLightM1 , 1, false, viewtolight16f);
+@@ -3072,6 +3083,7 @@ void R_SetupShader_DeferredLight(const rtlight_t *rtlight)
+ R_Mesh_TexBind(GL20TU_CUBE , rsurface.rtlight->currentcubemap );
+ R_Mesh_TexBind(GL20TU_SHADOWMAP2D , r_shadow_shadowmap2dtexture );
+ R_Mesh_TexBind(GL20TU_CUBEPROJECTION , r_shadow_shadowmapvsdcttexture );
++#endif
+ break;
+ }
+ }
+@@ -5294,6 +5306,8 @@ void R_SetupView(qboolean allowwaterclippingplane)
+ R_Viewport_InitPerspective(&r_refdef.view.viewport, &r_refdef.view.matrix, r_refdef.view.x, vid.height - scaledheight - r_refdef.view.y, scaledwidth, scaledheight, r_refdef.view.frustum_x, r_refdef.view.frustum_y, r_refdef.nearclip, r_refdef.farclip, customclipplane);
+ R_Mesh_SetMainRenderTargets();
+ R_SetViewport(&r_refdef.view.viewport);
++
++#ifdef HAVE_DPSOFTRAST
+ if (r_refdef.view.useclipplane && allowwaterclippingplane && vid.renderpath == RENDERPATH_SOFT)
+ {
+ matrix4x4_t mvpmatrix, invmvpmatrix, invtransmvpmatrix;
+@@ -5304,6 +5318,7 @@ void R_SetupView(qboolean allowwaterclippingplane)
+ Matrix4x4_Transform4(&invtransmvpmatrix, plane, screenplane);
+ DPSOFTRAST_ClipPlane(screenplane[0], screenplane[1], screenplane[2], screenplane[3]);
+ }
++#endif
+ }
+
+ void R_EntityMatrix(const matrix4x4_t *matrix)
+@@ -5337,8 +5352,10 @@ void R_EntityMatrix(const matrix4x4_t *matrix)
+ qglLoadMatrixf(gl_modelview16f);CHECKGLERROR
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_UniformMatrix4fv(DPSOFTRAST_UNIFORM_ModelViewProjectionMatrixM1, 1, false, gl_modelviewprojection16f);
+ DPSOFTRAST_UniformMatrix4fv(DPSOFTRAST_UNIFORM_ModelViewMatrixM1, 1, false, gl_modelview16f);
++#endif
+ break;
+ case RENDERPATH_GL20:
+ case RENDERPATH_GLES2:
+@@ -5830,7 +5847,10 @@ static void R_Water_ProcessPlanes(void)
+ }
+
+ }
+- if(vid.renderpath==RENDERPATH_SOFT) DPSOFTRAST_ClipPlane(0, 0, 0, 1);
++#ifdef HAVE_DPSOFTRAST
++ if(vid.renderpath==RENDERPATH_SOFT)
++ DPSOFTRAST_ClipPlane(0, 0, 0, 1);
++#endif
+ r_waterstate.renderingscene = false;
+ r_refdef.view = originalview;
+ R_ResetViewRendering3D();
+@@ -6436,6 +6456,7 @@ static void R_BlendView(void)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ R_Mesh_PrepareVertices_Mesh_Arrays(4, r_screenvertex3f, NULL, NULL, NULL, NULL, r_bloomstate.screentexcoord2f, r_bloomstate.bloomtexcoord2f);
+ R_SetupShader_SetPermutationSoft(SHADERMODE_POSTPROCESS, permutation);
+ R_Mesh_TexBind(GL20TU_FIRST , r_bloomstate.texture_screen);
+@@ -6450,6 +6471,7 @@ static void R_BlendView(void)
+ DPSOFTRAST_Uniform1f(DPSOFTRAST_UNIFORM_Saturation , r_glsl_saturation.value);
+ DPSOFTRAST_Uniform2f(DPSOFTRAST_UNIFORM_PixelToScreenTexCoord, 1.0f/vid.width, 1.0f/vid.height);
+ DPSOFTRAST_Uniform4f(DPSOFTRAST_UNIFORM_BloomColorSubtract , r_bloom_colorsubtract.value, r_bloom_colorsubtract.value, r_bloom_colorsubtract.value, 0.0f);
++#endif
+ break;
+ default:
+ break;
+diff --git a/gl_textures.c b/gl_textures.c
+index 45855d6..6f7ce64 100644
+--- a/gl_textures.c
++++ b/gl_textures.c
+@@ -346,8 +346,10 @@ void R_FreeTexture(rtexture_t *rt)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ if (glt->texnum)
+ DPSOFTRAST_Texture_Free(glt->texnum);
++#endif
+ break;
+ }
+
+@@ -545,11 +547,13 @@ static void GL_TextureMode_f (void)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ // change all the existing texture objects
+ for (pool = gltexturepoolchain;pool;pool = pool->next)
+ for (glt = pool->gltchain;glt;glt = glt->chain)
+ if (glt->texnum && (gl_filter_force || !(glt->flags & (TEXF_FORCENEAREST | TEXF_FORCELINEAR))))
+ DPSOFTRAST_Texture_Filter(glt->texnum, (glt->flags & TEXF_MIPMAP) ? dpsoftrast_filter_mipmap : dpsoftrast_filter_nomipmap);
++#endif
+ break;
+ }
+ }
+@@ -1138,7 +1142,9 @@ static void R_UploadPartialTexture(gltexture_t *glt, const unsigned char *data,
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_Texture_UpdatePartial(glt->texnum, 0, data, fragx, fragy, fragwidth, fragheight);
++#endif
+ break;
+ }
+ }
+@@ -1443,6 +1449,7 @@ static void R_UploadFullTexture(gltexture_t *glt, const unsigned char *data)
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ switch(glt->texturetype)
+ {
+ case GLTEXTURETYPE_2D:
+@@ -1491,6 +1498,7 @@ static void R_UploadFullTexture(gltexture_t *glt, const unsigned char *data)
+ DPSOFTRAST_Texture_Filter(glt->texnum, dpsoftrast_filter_mipmap);
+ else
+ DPSOFTRAST_Texture_Filter(glt->texnum, dpsoftrast_filter_nomipmap);
++#endif
+ break;
+ }
+ }
+@@ -1747,6 +1755,7 @@ static rtexture_t *R_SetupTexture(rtexturepool_t *rtexturepool, const char *iden
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ {
+ int tflags = 0;
+ switch(textype)
+@@ -1767,6 +1776,7 @@ static rtexture_t *R_SetupTexture(rtexturepool_t *rtexturepool, const char *iden
+ if (glt->flags & TEXF_CLAMP) tflags |= DPSOFTRAST_TEXTURE_FLAG_CLAMPTOEDGE;
+ glt->texnum = DPSOFTRAST_Texture_New(tflags, glt->tilewidth, glt->tileheight, glt->tiledepth);
+ }
++#endif
+ break;
+ }
+
+@@ -2355,7 +2365,9 @@ rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filen
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ glt->texnum = DPSOFTRAST_Texture_New(((glt->flags & TEXF_CLAMP) ? DPSOFTRAST_TEXTURE_FLAG_CLAMPTOEDGE : 0) | (dds_miplevels > 1 ? DPSOFTRAST_TEXTURE_FLAG_MIPMAP : 0), glt->tilewidth, glt->tileheight, glt->tiledepth);
++#endif
+ break;
+ }
+
+@@ -2404,12 +2416,14 @@ rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filen
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ if (bytesperblock)
+ Con_DPrintf("FIXME SOFT %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ else
+ DPSOFTRAST_Texture_UpdateFull(glt->texnum, mippixels);
+ // DPSOFTRAST calculates its own mipmaps
+ mip = dds_miplevels;
++#endif
+ break;
+ }
+ mippixels += mipsize;
+@@ -2481,6 +2495,7 @@ rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filen
+ Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ if (glt->flags & TEXF_FORCELINEAR)
+ DPSOFTRAST_Texture_Filter(glt->texnum, DPSOFTRAST_TEXTURE_FILTER_LINEAR);
+ else if (glt->flags & TEXF_FORCENEAREST)
+@@ -2489,6 +2504,7 @@ rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filen
+ DPSOFTRAST_Texture_Filter(glt->texnum, dpsoftrast_filter_mipmap);
+ else
+ DPSOFTRAST_Texture_Filter(glt->texnum, dpsoftrast_filter_nomipmap);
++#endif
+ break;
+ }
+
+diff --git a/makefile b/makefile
+index 4115e43..2e6af46 100644
+--- a/makefile
++++ b/makefile
+@@ -40,6 +40,18 @@ else
+ CMD_RM=$(CMD_UNIXRM)
+ endif
+
++# CPU-specifics
++OBJ_CPU =
++
++ifeq ($(DP_MAKE_TARGET),mingw)
++ # MinGW is always x86
++ OBJ_CPU += $(OBJ_X86)
++else
++ifneq (,$(filter i%86 x86_64,$(DP_MACHINE)))
++ OBJ_CPU += $(OBJ_X86)
++endif
++endif
++
+ # 64bits AMD CPUs use another lib directory
+ ifeq ($(DP_MACHINE),x86_64)
+ UNIX_X11LIBPATH:=/usr/X11R6/lib64
+diff --git a/makefile.inc b/makefile.inc
+index 439b5b3..2d775d8 100644
+--- a/makefile.inc
++++ b/makefile.inc
+@@ -116,7 +116,6 @@ OBJ_COMMON= \
+ csprogs.o \
+ curves.o \
+ cvar.o \
+- dpsoftrast.o \
+ dpvsimpledecode.o \
+ filematch.o \
+ fractalnoise.o \
+@@ -142,7 +141,6 @@ OBJ_COMMON= \
+ mdfour.o \
+ menu.o \
+ meshqueue.o \
+- mod_skeletal_animatevertices_sse.o \
+ mod_skeletal_animatevertices_generic.o \
+ model_alias.o \
+ model_brush.o \
+@@ -179,11 +177,15 @@ OBJ_COMMON= \
+ world.o \
+ zone.o
+
++OBJ_X86 = \
++ dpsoftrast.o \
++ mod_skeletal_animatevertices_sse.o
++
+ # note that builddate.c is very intentionally not compiled to a .o before
+ # being linked, because it should be recompiled every time an executable is
+ # built to give the executable a proper date string
+-OBJ_SV= builddate.c sys_linux.o vid_null.o thread_null.o $(OBJ_SND_NULL) $(OBJ_NOCD) $(OBJ_COMMON)
+-OBJ_SDL= builddate.c sys_sdl.o vid_sdl.o thread_sdl.o $(OBJ_SND_COMMON) snd_sdl.o cd_sdl.o $(OBJ_COMMON)
++OBJ_SV= builddate.c sys_linux.o vid_null.o thread_null.o $(OBJ_SND_NULL) $(OBJ_NOCD) $(OBJ_COMMON) $(OBJ_CPU)
++OBJ_SDL= builddate.c sys_sdl.o vid_sdl.o thread_sdl.o $(OBJ_SND_COMMON) snd_sdl.o cd_sdl.o $(OBJ_COMMON) $(OBJ_CPU)
+
+
+ # Compilation
+@@ -231,7 +233,7 @@ LDFLAGS_RELEASE=$(OPTIM_RELEASE) -DSVNREVISION=`{ test -d .svn && svnversion; }
+
+ ##### UNIX specific variables #####
+
+-OBJ_GLX= builddate.c sys_linux.o vid_glx.o thread_pthread.o keysym2ucs.o $(OBJ_SOUND) $(OBJ_CD) $(OBJ_COMMON)
++OBJ_GLX= builddate.c sys_linux.o vid_glx.o thread_pthread.o keysym2ucs.o $(OBJ_SOUND) $(OBJ_CD) $(OBJ_COMMON) $(OBJ_CPU)
+
+ LDFLAGS_UNIXCOMMON=\
+ -lm \
+@@ -321,7 +323,7 @@ LDFLAGS_MACOSXCL=$(LDFLAGS_UNIXCOMMON) -ldl -framework IOKit -framework Carbon $
+ LDFLAGS_MACOSXSV=$(LDFLAGS_UNIXCOMMON) -ldl
+ LDFLAGS_MACOSXSDL=$(LDFLAGS_UNIXCOMMON) -ldl -framework IOKit $(SDLCONFIG_STATICLIBS) SDLMain.m
+
+-OBJ_AGL= builddate.c sys_linux.o vid_agl.o thread_null.o $(OBJ_SOUND) $(OBJ_CD) $(OBJ_COMMON)
++OBJ_AGL= builddate.c sys_linux.o vid_agl.o thread_null.o $(OBJ_SOUND) $(OBJ_CD) $(OBJ_COMMON) $(OBJ_CPU)
+
+ EXE_MACOSXCL=darkplaces-agl
+ EXE_MACOSXCLNEXUIZ=nexuiz-agl
+@@ -361,7 +363,7 @@ OBJ_WINCD=cd_win.o
+ #if you want no CD audio
+ #OBJ_WINCD=$(OBJ_NOCD)
+
+-OBJ_WGL= builddate.c sys_win.o vid_wgl.o thread_null.o $(OBJ_SND_WIN) $(OBJ_WINCD) $(OBJ_COMMON)
++OBJ_WGL= builddate.c sys_win.o vid_wgl.o thread_null.o $(OBJ_SND_WIN) $(OBJ_WINCD) $(OBJ_COMMON) $(OBJ_CPU)
+
+ # Link
+ # see LDFLAGS_WINCOMMON in makefile
+diff --git a/quakedef.h b/quakedef.h
+index 2310bc2..6427e03 100644
+--- a/quakedef.h
++++ b/quakedef.h
+@@ -493,6 +493,11 @@ qboolean Sys_HaveSSE2(void);
+ #define Sys_HaveSSE2() false
+ #endif
+
++#ifdef SSE_POSSIBLE
++/* The software rasterizer requires SSE */
++# define HAVE_DPSOFTRAST
++#endif
++
+ /// incremented every frame, never reset
+ extern int host_framecount;
+ /// not bounded in any way, changed at start of every frame, never reset
+diff --git a/vid_glx.c b/vid_glx.c
+index 9f142bb..a10198b 100644
+--- a/vid_glx.c
++++ b/vid_glx.c
+@@ -657,7 +657,9 @@ static void HandleEvents(void)
+ else
+ Con_DPrintf("Updating to ConfigureNotify resolution %dx%d\n", vid.width, vid.height);
+
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_Flush();
++#endif
+
+ if(vid.softdepthpixels)
+ free(vid.softdepthpixels);
+@@ -898,6 +900,7 @@ void VID_Finish (void)
+ switch(vid.renderpath)
+ {
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ if(vidx11_shmevent >= 0) {
+ vidx11_ximage_pos = !vidx11_ximage_pos;
+ vid.softpixels = (unsigned int *) vidx11_ximage[vidx11_ximage_pos]->data;
+@@ -920,6 +923,7 @@ void VID_Finish (void)
+ DPSOFTRAST_Finish();
+ XPutImage(vidx11_display, win, vidx11_gc, vidx11_ximage[vidx11_ximage_pos], 0, 0, 0, 0, vid.width, vid.height);
+ }
++#endif
+ break;
+
+ case RENDERPATH_GL11:
+@@ -1003,6 +1007,7 @@ void VID_BuildGLXAttrib(int *attrib, qboolean stencil, qboolean stereobuffer, in
+ *attrib++ = None;
+ }
+
++#ifdef HAVE_DPSOFTRAST
+ qboolean VID_InitModeSoft(viddef_mode_t *mode)
+ {
+ int i, j;
+@@ -1300,6 +1305,8 @@ qboolean VID_InitModeSoft(viddef_mode_t *mode)
+
+ return true;
+ }
++#endif
++
+ qboolean VID_InitModeGL(viddef_mode_t *mode)
+ {
+ int i, j;
+@@ -1640,7 +1647,7 @@ qboolean VID_InitModeGL(viddef_mode_t *mode)
+
+ qboolean VID_InitMode(viddef_mode_t *mode)
+ {
+-#ifdef SSE_POSSIBLE
++#ifdef HAVE_DPSOFTRAST
+ if (vid_soft.integer)
+ return VID_InitModeSoft(mode);
+ else
+diff --git a/vid_sdl.c b/vid_sdl.c
+index 4bdeb98..0e86d39 100644
+--- a/vid_sdl.c
++++ b/vid_sdl.c
+@@ -2166,6 +2166,7 @@ extern cvar_t gl_info_version;
+ extern cvar_t gl_info_platform;
+ extern cvar_t gl_info_driver;
+
++#ifdef HAVE_DPSOFTRAST
+ qboolean VID_InitModeSoft(viddef_mode_t *mode)
+ {
+ #if SETVIDEOMODE
+@@ -2258,12 +2259,13 @@ qboolean VID_InitModeSoft(viddef_mode_t *mode)
+ #endif
+ return true;
+ }
++#endif
+
+ qboolean VID_InitMode(viddef_mode_t *mode)
+ {
+ if (!SDL_WasInit(SDL_INIT_VIDEO) && SDL_InitSubSystem(SDL_INIT_VIDEO) < 0)
+ Sys_Error ("Failed to init SDL video subsystem: %s", SDL_GetError());
+-#ifdef SSE_POSSIBLE
++#ifdef HAVE_DPSOFTRAST
+ if (vid_soft.integer)
+ return VID_InitModeSoft(mode);
+ else
+@@ -2367,6 +2369,7 @@ void VID_Finish (void)
+ #endif
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_Finish();
+ #if SETVIDEOMODE
+ // if (!r_test.integer)
+@@ -2381,6 +2384,7 @@ void VID_Finish (void)
+ SDL_UpdateWindowSurface(window);
+ }
+ #endif
++#endif
+ break;
+ case RENDERPATH_D3D9:
+ case RENDERPATH_D3D10:
+diff --git a/vid_shared.c b/vid_shared.c
+index c34f1c8..00d9bba 100644
+--- a/vid_shared.c
++++ b/vid_shared.c
+@@ -1610,7 +1610,7 @@ static dllhandle_t xinputdll_dll = NULL;
+
+ void VID_Shared_Init(void)
+ {
+-#ifdef SSE_POSSIBLE
++#ifdef HAVE_DPSOFTRAST
+ if (Sys_HaveSSE2())
+ {
+ Con_Printf("DPSOFTRAST available (SSE2 instructions detected)\n");
+@@ -1946,6 +1946,7 @@ size_t VID_SortModes(vid_mode_t *modes, size_t count, qboolean usebpp, qboolean
+ return count;
+ }
+
++#ifdef HAVE_DPSOFTRAST
+ void VID_Soft_SharedSetup(void)
+ {
+ gl_platform = "DPSOFTRAST";
+@@ -2011,3 +2012,4 @@ void VID_Soft_SharedSetup(void)
+ // clear to black (loading plaque will be seen over this)
+ GL_Clear(GL_COLOR_BUFFER_BIT, NULL, 1.0f, 128);
+ }
++#endif
+diff --git a/vid_wgl.c b/vid_wgl.c
+index 79ceeaa..ab37d4b 100644
+--- a/vid_wgl.c
++++ b/vid_wgl.c
+@@ -305,11 +305,13 @@ void VID_Finish (void)
+ case RENDERPATH_D3D11:
+ break;
+ case RENDERPATH_SOFT:
++#ifdef HAVE_DPSOFTRAST
+ DPSOFTRAST_Finish();
+ // baseDC = GetDC(mainwindow);
+ BitBlt(baseDC, 0, 0, vid.width, vid.height, vid_softhdc, 0, 0, SRCCOPY);
+ // ReleaseDC(mainwindow, baseDC);
+ // baseDC = NULL;
++#endif
+ break;
+ }
+ }
+@@ -1564,6 +1566,7 @@ qboolean VID_InitModeDX(viddef_mode_t *mode, int version)
+ }
+ #endif
+
++#ifdef HAVE_DPSOFTRAST
+ qboolean VID_InitModeSOFT(viddef_mode_t *mode)
+ {
+ int i;
+@@ -1843,10 +1846,11 @@ qboolean VID_InitModeSOFT(viddef_mode_t *mode)
+
+ return true;
+ }
++#endif
+
+ qboolean VID_InitMode(viddef_mode_t *mode)
+ {
+-#ifdef SSE_POSSIBLE
++#ifdef HAVE_DPSOFTRAST
+ if (vid_soft.integer)
+ return VID_InitModeSOFT(mode);
+ #endif
diff --git a/debian/patches/series b/debian/patches/series
index c4d17eb..bdb8e1e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -15,4 +15,5 @@
0015-Be-more-type-safe-when-calling-setjmp-call-the-same-.patch
0016-Be-a-bit-more-type-safe-about-using-libpng.patch
0017-Fix-various-typos-dont-don-t-doesnt-doesn-t-arguemen.patch
+0018-Don-t-build-SSE-only-objects-on-non-x86-CPUs.patch
10_detect_gnu-kfreebsd.patch
--
DarkPlaces, a Quake engine
More information about the Pkg-games-commits
mailing list