summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/renderer/qgl.h11
-rw-r--r--src/renderer/tr_init.c8
-rw-r--r--src/renderer/tr_local.h2
-rw-r--r--src/renderer/tr_types.h2
-rw-r--r--src/sdl/sdl_glimp.c20
-rw-r--r--src/sys/con_win32.c216
-rw-r--r--src/tools/asm/Makefile43
-rw-r--r--src/tools/lcc/Makefile163
8 files changed, 234 insertions, 231 deletions
diff --git a/src/renderer/qgl.h b/src/renderer/qgl.h
index 8c92eb36..f83eaf31 100644
--- a/src/renderer/qgl.h
+++ b/src/renderer/qgl.h
@@ -29,12 +29,13 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "SDL_opengl.h"
-extern PFNGLMULTITEXCOORD2FARBPROC qglMultiTexCoord2fARB;
-extern PFNGLACTIVETEXTUREARBPROC qglActiveTextureARB;
-extern PFNGLCLIENTACTIVETEXTUREARBPROC qglClientActiveTextureARB;
+extern void (APIENTRYP qglActiveTextureARB) (GLenum texture);
+extern void (APIENTRYP qglClientActiveTextureARB) (GLenum texture);
+extern void (APIENTRYP qglMultiTexCoord2fARB) (GLenum target, GLfloat s, GLfloat t);
+
+extern void (APIENTRYP qglLockArraysEXT) (GLint first, GLsizei count);
+extern void (APIENTRYP qglUnlockArraysEXT) (void);
-extern PFNGLLOCKARRAYSEXTPROC qglLockArraysEXT;
-extern PFNGLUNLOCKARRAYSEXTPROC qglUnlockArraysEXT;
//===========================================================================
diff --git a/src/renderer/tr_init.c b/src/renderer/tr_init.c
index d8e35ff7..1f3d19dc 100644
--- a/src/renderer/tr_init.c
+++ b/src/renderer/tr_init.c
@@ -81,7 +81,6 @@ cvar_t *r_nocurves;
cvar_t *r_allowExtensions;
cvar_t *r_ext_compressed_textures;
-cvar_t *r_ext_gamma_control;
cvar_t *r_ext_multitexture;
cvar_t *r_ext_compiled_vertex_array;
cvar_t *r_ext_texture_env_add;
@@ -889,7 +888,6 @@ GfxInfo_f
*/
void GfxInfo_f( void )
{
- cvar_t *sys_cpustring = ri.Cvar_Get( "sys_cpustring", "", 0 );
const char *enablestrings[] =
{
"disabled",
@@ -906,7 +904,7 @@ void GfxInfo_f( void )
ri.Printf( PRINT_ALL, "GL_VERSION: %s\n", glConfig.version_string );
ri.Printf( PRINT_ALL, "GL_EXTENSIONS: %s\n", glConfig.extensions_string );
ri.Printf( PRINT_ALL, "GL_MAX_TEXTURE_SIZE: %d\n", glConfig.maxTextureSize );
- ri.Printf( PRINT_ALL, "GL_MAX_ACTIVE_TEXTURES_ARB: %d\n", glConfig.maxActiveTextures );
+ ri.Printf( PRINT_ALL, "GL_MAX_TEXTURE_UNITS_ARB: %d\n", glConfig.numTextureUnits );
ri.Printf( PRINT_ALL, "\nPIXELFORMAT: color(%d-bits) Z(%d-bit) stencil(%d-bits)\n", glConfig.colorBits, glConfig.depthBits, glConfig.stencilBits );
ri.Printf( PRINT_ALL, "MODE: %d, %d x %d %s hz:", r_mode->integer, glConfig.vidWidth, glConfig.vidHeight, fsstrings[r_fullscreen->integer == 1] );
if ( glConfig.displayFrequency )
@@ -925,7 +923,6 @@ void GfxInfo_f( void )
{
ri.Printf( PRINT_ALL, "GAMMA: software w/ %d overbright bits\n", tr.overbrightBits );
}
- ri.Printf( PRINT_ALL, "CPU: %s\n", sys_cpustring->string );
// rendering primitives
{
@@ -991,10 +988,9 @@ void R_Register( void )
//
r_allowExtensions = ri.Cvar_Get( "r_allowExtensions", "1", CVAR_ARCHIVE | CVAR_LATCH );
r_ext_compressed_textures = ri.Cvar_Get( "r_ext_compressed_textures", "0", CVAR_ARCHIVE | CVAR_LATCH );
- r_ext_gamma_control = ri.Cvar_Get( "r_ext_gamma_control", "1", CVAR_ARCHIVE | CVAR_LATCH );
r_ext_multitexture = ri.Cvar_Get( "r_ext_multitexture", "1", CVAR_ARCHIVE | CVAR_LATCH );
r_ext_compiled_vertex_array = ri.Cvar_Get( "r_ext_compiled_vertex_array", "1", CVAR_ARCHIVE | CVAR_LATCH);
- r_ext_texture_env_add = ri.Cvar_Get( "r_ext_texture_env_add", "0", CVAR_ARCHIVE | CVAR_LATCH);
+ r_ext_texture_env_add = ri.Cvar_Get( "r_ext_texture_env_add", "1", CVAR_ARCHIVE | CVAR_LATCH);
r_picmip = ri.Cvar_Get ("r_picmip", GENERIC_HW_R_PICMIP_DEFAULT,
CVAR_ARCHIVE | CVAR_LATCH );
diff --git a/src/renderer/tr_local.h b/src/renderer/tr_local.h
index 7c694759..a507e8a7 100644
--- a/src/renderer/tr_local.h
+++ b/src/renderer/tr_local.h
@@ -1035,8 +1035,6 @@ extern cvar_t *r_ignorehwgamma; // overrides hardware gamma capabilities
extern cvar_t *r_allowExtensions; // global enable/disable of OpenGL extensions
extern cvar_t *r_ext_compressed_textures; // these control use of specific extensions
-extern cvar_t *r_ext_gamma_control;
-extern cvar_t *r_ext_texenv_op;
extern cvar_t *r_ext_multitexture;
extern cvar_t *r_ext_compiled_vertex_array;
extern cvar_t *r_ext_texture_env_add;
diff --git a/src/renderer/tr_types.h b/src/renderer/tr_types.h
index 3922f8ff..2d7c66d3 100644
--- a/src/renderer/tr_types.h
+++ b/src/renderer/tr_types.h
@@ -176,7 +176,7 @@ typedef struct {
char extensions_string[BIG_INFO_STRING];
int maxTextureSize; // queried from GL
- int maxActiveTextures; // multitexture ability
+ int numTextureUnits; // multitexture ability
int colorBits, depthBits, stencilBits;
diff --git a/src/sdl/sdl_glimp.c b/src/sdl/sdl_glimp.c
index 07b80a81..a980b0ed 100644
--- a/src/sdl/sdl_glimp.c
+++ b/src/sdl/sdl_glimp.c
@@ -70,12 +70,12 @@ static SDL_Surface *screen = NULL;
cvar_t *r_allowSoftwareGL; // Don't abort out if a hardware visual can't be obtained
-PFNGLMULTITEXCOORD2FARBPROC qglMultiTexCoord2fARB;
-PFNGLACTIVETEXTUREARBPROC qglActiveTextureARB;
-PFNGLCLIENTACTIVETEXTUREARBPROC qglClientActiveTextureARB;
+void (APIENTRYP qglActiveTextureARB) (GLenum texture);
+void (APIENTRYP qglClientActiveTextureARB) (GLenum texture);
+void (APIENTRYP qglMultiTexCoord2fARB) (GLenum target, GLfloat s, GLfloat t);
-PFNGLLOCKARRAYSEXTPROC qglLockArraysEXT;
-PFNGLUNLOCKARRAYSEXTPROC qglUnlockArraysEXT;
+void (APIENTRYP qglLockArraysEXT) (GLint first, GLsizei count);
+void (APIENTRYP qglUnlockArraysEXT) (void);
/*
===============
@@ -89,8 +89,8 @@ void GLimp_Shutdown( void )
SDL_QuitSubSystem( SDL_INIT_VIDEO );
screen = NULL;
- memset( &glConfig, 0, sizeof( glConfig ) );
- memset( &glState, 0, sizeof( glState ) );
+ Com_Memset( &glConfig, 0, sizeof( glConfig ) );
+ Com_Memset( &glState, 0, sizeof( glState ) );
}
/*
@@ -396,8 +396,8 @@ static void GLimp_InitExtensions( void )
{
GLint glint = 0;
qglGetIntegerv( GL_MAX_TEXTURE_UNITS_ARB, &glint );
- glConfig.maxActiveTextures = (int) glint;
- if ( glConfig.maxActiveTextures > 1 )
+ glConfig.numTextureUnits = (int) glint;
+ if ( glConfig.numTextureUnits > 1 )
{
ri.Printf( PRINT_ALL, "...using GL_ARB_multitexture\n" );
}
@@ -490,7 +490,7 @@ void GLimp_Init( void )
{
if( r_mode->integer != R_MODE_FALLBACK )
{
- ri.Printf( PRINT_ALL, "Setting r_mode %d failed, falling back on r_mode %d",
+ ri.Printf( PRINT_ALL, "Setting r_mode %d failed, falling back on r_mode %d\n",
r_mode->integer, R_MODE_FALLBACK );
if( !GLimp_StartDriverAndSetMode( R_MODE_FALLBACK, r_fullscreen->integer ) )
success = qfalse;
diff --git a/src/sys/con_win32.c b/src/sys/con_win32.c
index ea3cfb7c..55020e26 100644
--- a/src/sys/con_win32.c
+++ b/src/sys/con_win32.c
@@ -22,6 +22,21 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "../qcommon/q_shared.h"
#include "../qcommon/qcommon.h"
+#include "windows.h"
+
+
+#define QCONSOLE_THEME FOREGROUND_RED | \
+ BACKGROUND_RED | \
+ BACKGROUND_GREEN | \
+ BACKGROUND_BLUE
+
+#define QCONSOLE_INPUT_RECORDS 1024
+
+// used to track key input
+static int qconsole_chars = 0;
+
+// used to restore original color theme
+static int qconsole_orig_attrib;
/*
==================
@@ -48,6 +63,15 @@ CON_Shutdown
*/
void CON_Shutdown( void )
{
+ HANDLE hout;
+ COORD screen = { 0, 0 };
+ DWORD written;
+
+ hout = GetStdHandle( STD_OUTPUT_HANDLE );
+
+ SetConsoleTextAttribute( hout, qconsole_orig_attrib );
+ FillConsoleOutputAttribute( hout, qconsole_orig_attrib, 63999,
+ screen, &written );
}
/*
@@ -57,6 +81,34 @@ CON_Init
*/
void CON_Init( void )
{
+ HANDLE hout;
+ COORD screen = { 0, 0 };
+ DWORD written, read;
+ CONSOLE_SCREEN_BUFFER_INFO binfo;
+ SMALL_RECT rect;
+ WORD oldattrib;
+
+ hout = GetStdHandle( STD_OUTPUT_HANDLE );
+
+ // remember original color theme
+ ReadConsoleOutputAttribute( hout, &oldattrib, 1, screen, &read );
+ qconsole_orig_attrib = oldattrib;
+
+ SetConsoleTitle("ioquake3 Dedicated Server Console");
+
+ SetConsoleTextAttribute( hout, QCONSOLE_THEME );
+ FillConsoleOutputAttribute( hout, QCONSOLE_THEME, 63999, screen, &written );
+
+ // adjust console scroll to match up with cursor position
+ GetConsoleScreenBufferInfo( hout, &binfo );
+ rect.Top = binfo.srWindow.Top;
+ rect.Left = binfo.srWindow.Left;
+ rect.Bottom = binfo.srWindow.Bottom;
+ rect.Right = binfo.srWindow.Right;
+ rect.Top += ( binfo.dwCursorPosition.Y - binfo.srWindow.Bottom );
+ rect.Bottom = binfo.dwCursorPosition.Y;
+ SetConsoleWindowInfo( hout, TRUE, &rect );
+
}
/*
@@ -66,5 +118,167 @@ CON_ConsoleInput
*/
char *CON_ConsoleInput( void )
{
- return NULL;
+ HANDLE hin, hout;
+ INPUT_RECORD buff[ QCONSOLE_INPUT_RECORDS ];
+ DWORD count = 0;
+ int i;
+ static char input[ 1024 ] = { "" };
+ int inputlen;
+ int newlinepos = -1;
+ CHAR_INFO line[ QCONSOLE_INPUT_RECORDS ];
+ int linelen = 0;
+
+ inputlen = 0;
+ input[ 0 ] = '\0';
+
+ hin = GetStdHandle( STD_INPUT_HANDLE );
+ if( hin == INVALID_HANDLE_VALUE )
+ return NULL;
+ hout = GetStdHandle( STD_OUTPUT_HANDLE );
+ if( hout == INVALID_HANDLE_VALUE )
+ return NULL;
+
+ if( !PeekConsoleInput( hin, buff, QCONSOLE_INPUT_RECORDS, &count ) )
+ return NULL;
+
+ // if we have overflowed, start dropping oldest input events
+ if( count == QCONSOLE_INPUT_RECORDS )
+ {
+ ReadConsoleInput( hin, buff, 1, &count );
+ return NULL;
+ }
+
+ for( i = 0; i < count; i++ )
+ {
+ if( buff[ i ].EventType == KEY_EVENT && buff[ i ].Event.KeyEvent.bKeyDown )
+ {
+ if( buff[ i ].Event.KeyEvent.wVirtualKeyCode == VK_RETURN )
+ {
+ newlinepos = i;
+ break;
+ }
+
+ if( linelen < QCONSOLE_INPUT_RECORDS &&
+ buff[ i ].Event.KeyEvent.uChar.AsciiChar )
+ {
+ if( buff[ i ].Event.KeyEvent.wVirtualKeyCode == VK_BACK )
+ {
+ if( linelen > 0 )
+ linelen--;
+
+ }
+ else
+ {
+ line[ linelen ].Attributes = QCONSOLE_THEME;
+ line[ linelen++ ].Char.AsciiChar =
+ buff[ i ].Event.KeyEvent.uChar.AsciiChar;
+ }
+ }
+ }
+ }
+
+ // provide visual feedback for incomplete commands
+ if( linelen != qconsole_chars )
+ {
+ CONSOLE_SCREEN_BUFFER_INFO binfo;
+ COORD writeSize = { QCONSOLE_INPUT_RECORDS, 1 };
+ COORD writePos = { 0, 0 };
+ SMALL_RECT writeArea = { 0, 0, 0, 0 };
+ int i;
+
+ // keep track of this so we don't need to re-write to console every frame
+ qconsole_chars = linelen;
+
+ GetConsoleScreenBufferInfo( hout, &binfo );
+
+ // adjust scrolling to cursor when typing
+ if( binfo.dwCursorPosition.Y > binfo.srWindow.Bottom )
+ {
+ SMALL_RECT rect;
+
+ rect.Top = binfo.srWindow.Top;
+ rect.Left = binfo.srWindow.Left;
+ rect.Bottom = binfo.srWindow.Bottom;
+ rect.Right = binfo.srWindow.Right;
+
+ rect.Top += ( binfo.dwCursorPosition.Y - binfo.srWindow.Bottom );
+ rect.Bottom = binfo.dwCursorPosition.Y;
+
+ SetConsoleWindowInfo( hout, TRUE, &rect );
+ GetConsoleScreenBufferInfo( hout, &binfo );
+ }
+
+ writeArea.Left = 0;
+ writeArea.Top = binfo.srWindow.Bottom;
+ writeArea.Bottom = binfo.srWindow.Bottom;
+ writeArea.Right = QCONSOLE_INPUT_RECORDS;
+
+ // pad line with ' ' to handle VK_BACK
+ for( i = linelen; i < QCONSOLE_INPUT_RECORDS; i++ )
+ {
+ line[ i ].Char.AsciiChar = ' ';
+ line[ i ].Attributes = QCONSOLE_THEME;
+ }
+
+ if( linelen > binfo.srWindow.Right )
+ {
+ WriteConsoleOutput( hout, line + (linelen - binfo.srWindow.Right ),
+ writeSize, writePos, &writeArea );
+ }
+ else
+ {
+ WriteConsoleOutput( hout, line, writeSize, writePos, &writeArea );
+ }
+
+ if( binfo.dwCursorPosition.X != linelen )
+ {
+ COORD cursorPos = { 0, 0 };
+
+ cursorPos.X = linelen;
+ cursorPos.Y = binfo.srWindow.Bottom;
+ SetConsoleCursorPosition( hout, cursorPos );
+ }
+ }
+
+ // don't touch the input buffer if this is an incomplete command
+ if( newlinepos < 0)
+ {
+ return NULL;
+ }
+ else
+ {
+ // add a newline
+ COORD cursorPos = { 0, 0 };
+ CONSOLE_SCREEN_BUFFER_INFO binfo;
+
+ GetConsoleScreenBufferInfo( hout, &binfo );
+ cursorPos.Y = binfo.srWindow.Bottom + 1;
+ SetConsoleCursorPosition( hout, cursorPos );
+ }
+
+
+ if( !ReadConsoleInput( hin, buff, newlinepos+1, &count ) )
+ return NULL;
+
+ for( i = 0; i < count; i++ )
+ {
+ if( buff[ i ].EventType == KEY_EVENT && buff[ i ].Event.KeyEvent.bKeyDown )
+ {
+ if( buff[ i ].Event.KeyEvent.wVirtualKeyCode == VK_BACK )
+ {
+ if( inputlen > 0 )
+ input[ --inputlen ] = '\0';
+ continue;
+ }
+ if( inputlen < ( sizeof( input ) - 1 ) &&
+ buff[ i ].Event.KeyEvent.uChar.AsciiChar )
+ {
+ input[ inputlen++ ] = buff[ i ].Event.KeyEvent.uChar.AsciiChar;
+ input[ inputlen ] = '\0';
+ }
+ }
+ }
+ if( !inputlen )
+ return NULL;
+ return input;
}
diff --git a/src/tools/asm/Makefile b/src/tools/asm/Makefile
deleted file mode 100644
index 52f1060d..00000000
--- a/src/tools/asm/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-# yeah, couldn't do more simple really
-
-ifeq ($(PLATFORM),mingw32)
- BINEXT=.exe
-else
- BINEXT=
-endif
-
-ifeq ($(PLATFORM),sunos)
- INSTALL=ginstall
-else
- INSTALL=install
-endif
-
-CC=gcc
-Q3ASM_CFLAGS=-O2 -Wall -Werror -fno-strict-aliasing
-
-ifeq ($(PLATFORM),darwin)
- LCC_CFLAGS += -DMACOS_X=1
-endif
-
-ifndef USE_CCACHE
- USE_CCACHE=0
-endif
-
-ifeq ($(USE_CCACHE),1)
- CC := ccache $(CC)
- CXX := ccache $(CXX)
-endif
-
-default: q3asm
-
-q3asm: q3asm.c cmdlib.c
- $(CC) $(Q3ASM_CFLAGS) -o $@ $^
-
-clean:
- rm -f q3asm *~ *.o
-
-install: default
- $(INSTALL) -s -m 0755 q3asm$(BINEXT) ../
-
-uninstall:
- rm -f ../q3asm$(BINEXT)
diff --git a/src/tools/lcc/Makefile b/src/tools/lcc/Makefile
deleted file mode 100644
index 8dd5fb2b..00000000
--- a/src/tools/lcc/Makefile
+++ /dev/null
@@ -1,163 +0,0 @@
-TEMPDIR=/tmp
-A=.a
-O=.o
-
-ifeq ($(PLATFORM),mingw32)
- E=.exe
-else
- E=
-endif
-
-CC=gcc
-LCC_CFLAGS=-O2 -Wall -fno-strict-aliasing -MMD
-LDFLAGS=
-LD=gcc
-AR=ar
-ARFLAGS=cru
-RANLIB=ranlib
-DIFF=diff
-RM=rm -f
-RMDIR=rmdir
-BUILDDIR=build-$(PLATFORM)-$(ARCH)
-BD=$(BUILDDIR)/
-
-ifeq ($(USE_CCACHE),1)
- CC := ccache $(CC)
-endif
-
-# Need MACOS_X defined or this won't build.
-ifeq ($(PLATFORM),darwin)
- LCC_CFLAGS += -DMACOS_X
-endif
-
-ifeq ($(PLATFORM),sunos)
- INSTALL=ginstall
-else
- INSTALL=install
-endif
-
-all: q3rcc lburg q3cpp q3lcc
-
-q3rcc: makedirs $(BD)q3rcc$(E)
-lburg: makedirs $(BD)lburg$(E)
-q3cpp: makedirs $(BD)q3cpp$(E)
-q3lcc: makedirs $(BD)q3lcc$(E)
-
-makedirs:
- @if [ ! -d $(BD) ];then mkdir $(BD);fi
- @if [ ! -d $(BD)/etc ];then mkdir $(BD)/etc;fi
- @if [ ! -d $(BD)/rcc ];then mkdir $(BD)/rcc;fi
- @if [ ! -d $(BD)/cpp ];then mkdir $(BD)/cpp;fi
- @if [ ! -d $(BD)/lburg ];then mkdir $(BD)/lburg;fi
-
-# ===== RCC =====
-RCCOBJS= \
- $(BD)rcc/alloc$(O) \
- $(BD)rcc/bind$(O) \
- $(BD)rcc/bytecode$(O) \
- $(BD)rcc/dag$(O) \
- $(BD)rcc/dagcheck$(O) \
- $(BD)rcc/decl$(O) \
- $(BD)rcc/enode$(O) \
- $(BD)rcc/error$(O) \
- $(BD)rcc/event$(O) \
- $(BD)rcc/expr$(O) \
- $(BD)rcc/gen$(O) \
- $(BD)rcc/init$(O) \
- $(BD)rcc/inits$(O) \
- $(BD)rcc/input$(O) \
- $(BD)rcc/lex$(O) \
- $(BD)rcc/list$(O) \
- $(BD)rcc/main$(O) \
- $(BD)rcc/null$(O) \
- $(BD)rcc/output$(O) \
- $(BD)rcc/prof$(O) \
- $(BD)rcc/profio$(O) \
- $(BD)rcc/simp$(O) \
- $(BD)rcc/stmt$(O) \
- $(BD)rcc/string$(O) \
- $(BD)rcc/sym$(O) \
- $(BD)rcc/symbolic$(O) \
- $(BD)rcc/trace$(O) \
- $(BD)rcc/tree$(O) \
- $(BD)rcc/types$(O)
-
-$(BD)q3rcc$(E): $(RCCOBJS)
- $(LD) $(LDFLAGS) -o $@ $(RCCOBJS)
-
-$(BD)rcc/%$(O): src/%.c
- $(CC) $(LCC_CFLAGS) -c -Isrc -o $@ $<
-
-$(BD)rcc/dagcheck$(O): $(BD)rcc/dagcheck.c
- $(CC) $(LCC_CFLAGS) -Wno-unused -c -Isrc -o $@ $<
-
-$(BD)rcc/dagcheck.c: $(BD)lburg/lburg$(E) src/dagcheck.md
- $(BD)lburg/lburg$(E) src/dagcheck.md $@
-
-
-# ===== LBURG =====
-LBURGOBJS= \
- $(BD)lburg/lburg$(O) \
- $(BD)lburg/gram$(O)
-
-$(BD)lburg/lburg$(E): $(LBURGOBJS)
- $(LD) $(LDFLAGS) -o $@ $(LBURGOBJS)
-
-$(BD)lburg/%$(O): lburg/%.c
- $(CC) $(LCC_CFLAGS) -c -Ilburg -o $@ $<
-
-
-# ===== CPP =====
-CPPOBJS= \
- $(BD)cpp/cpp$(O) \
- $(BD)cpp/lex$(O) \
- $(BD)cpp/nlist$(O) \
- $(BD)cpp/tokens$(O) \
- $(BD)cpp/macro$(O) \
- $(BD)cpp/eval$(O) \
- $(BD)cpp/include$(O) \
- $(BD)cpp/hideset$(O) \
- $(BD)cpp/getopt$(O) \
- $(BD)cpp/unix$(O)
-
-$(BD)q3cpp$(E): $(CPPOBJS)
- $(LD) $(LDFLAGS) -o $@ $(CPPOBJS)
-
-$(BD)cpp/%$(O): cpp/%.c
- $(CC) $(LCC_CFLAGS) -c -Icpp -o $@ $<
-
-
-# ===== LCC =====
-LCCOBJS= \
- $(BD)etc/lcc$(O) \
- $(BD)etc/bytecode$(O)
-
-$(BD)q3lcc$(E): $(LCCOBJS)
- $(LD) $(LDFLAGS) -o $@ $(LCCOBJS)
-
-$(BD)etc/%$(O): etc/%.c
- $(CC) $(LCC_CFLAGS) -DTEMPDIR=\"$(TEMPDIR)\" -DSYSTEM=\"\" -c -Isrc -o $@ $<
-
-
-install: q3lcc q3cpp q3rcc
- $(INSTALL) -s -m 0755 $(BD)q3lcc$(E) ../
- $(INSTALL) -s -m 0755 $(BD)q3cpp$(E) ../
- $(INSTALL) -s -m 0755 $(BD)q3rcc$(E) ../
-
-uninstall:
- -$(RM) ../q3lcc$(E)
- -$(RM) ../q3cpp$(E)
- -$(RM) ../q3rcc$(E)
-
-clean:
- if [ -d $(BD) ];then (find $(BD) -name '*.d' -exec rm {} \;)fi
- $(RM) $(RCCOBJS) $(LBURGOBJS) $(CPPOBJS) $(LCCOBJS)
- $(RM) $(BD)rcc/dagcheck.c $(BD)lburg/lburg$(E)
- $(RM) $(BD)q3lcc$(E) $(BD)q3cpp$(E) $(BD)q3rcc$(E)
- $(RM) -r $(BD)
-
-D_FILES=$(shell find . -name '*.d')
-
-ifneq ($(strip $(D_FILES)),)
- include $(D_FILES)
-endif