r1405 - in trunk: . code/qcommon code/renderer code/sdl code/server code/tools/asm code/tools/lcc/cpp misc/setup
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sat Jul 5 19:50:39 EDT 2008
Author: tma
Date: 2008-07-05 19:50:38 -0400 (Sat, 05 Jul 2008)
New Revision: 1405
Modified:
trunk/code/qcommon/common.c
trunk/code/qcommon/files.c
trunk/code/renderer/tr_bsp.c
trunk/code/renderer/tr_local.h
trunk/code/renderer/tr_shader.c
trunk/code/sdl/sdl_input.c
trunk/code/server/sv_ccmds.c
trunk/code/tools/asm/q3asm.c
trunk/code/tools/lcc/cpp/cpp.c
trunk/code/tools/lcc/cpp/cpp.h
trunk/code/tools/lcc/cpp/nlist.c
trunk/make-macosx-ub.sh
trunk/misc/setup/Solaris_pkg.sh
Log:
* (bug 3610) Server sending unnecessary newline with SV_ConSay_F (Tyler Schwend
<TylerSchwend at gmail.com>)
* (bug 3623) COMMAND is mapped to the ALT key (Matthias <Kapffer at macbay.de>)
* (bug 3665) Typo error in FS_FOpenFileByMode function (TsT <tst2006 at gmail.com>)
* (bug 3669) Some files left out of Solaris Packages (Vincent Cojot
<vincent at cojot.name>)
* (bug 3680) server quit messages (Ben Millwood)
* (bug 3682) Maps with >1024 models cause a segfault (misantropia
<bnoordhuis at gmail.com>)
* (bug 3683) R_FindShader(): negative lightmap indexes cause stray pointers
(misantropia <bnoordhuis at gmail.com>)
* (bug 3688) q3asm potential segfault fix and other changes (TsT
<tst2006 at gmail.com>)
* (bug 3695) Not allowing to write file with lib extention (.dll/.so/...) (TsT
<tst2006 at gmail.com>)
* (bug 3696) make-macosx-ub.sh outdated by revision 1340; test for Tiger not
working (Matthias <Kapffer at macbay.de>)
* (bug 3698) #error reported as warning in q3cpp (and no #warning support)
(Ben Millwood)
* (bug 3703) restoring the valued pre-SDL window behaviour (/dev/humancontroller
<devhc97 at gmail.com>)
Modified: trunk/code/qcommon/common.c
===================================================================
--- trunk/code/qcommon/common.c 2008-07-05 22:34:23 UTC (rev 1404)
+++ trunk/code/qcommon/common.c 2008-07-05 23:50:38 UTC (rev 1405)
@@ -331,8 +331,9 @@
*/
void Com_Quit_f( void ) {
// don't try to shutdown if we are in a recursive error
+ char *p = Cmd_Args( );
if ( !com_errorEntered ) {
- SV_Shutdown ("Server quit");
+ SV_Shutdown (p[0] ? p : "Server quit");
CL_Shutdown ();
Com_Shutdown ();
FS_Shutdown(qtrue);
Modified: trunk/code/qcommon/files.c
===================================================================
--- trunk/code/qcommon/files.c 2008-07-05 22:34:23 UTC (rev 1404)
+++ trunk/code/qcommon/files.c 2008-07-05 23:50:38 UTC (rev 1405)
@@ -496,6 +496,24 @@
/*
=================
+FS_FilenameIsExecutable
+
+ERR_FATAL if trying to maniuplate a file with the platform library extension
+=================
+ */
+static void FS_FilenameIsExecutable( const char *filename, const char *function )
+{
+ // Check if the filename ends with the library extension
+ if( !Q_stricmp( filename + strlen( filename ) - strlen( DLL_EXT ), DLL_EXT ) )
+ {
+ Com_Error( ERR_FATAL, "%s: Not allowed to write '%s' due to %s extension\n",
+ function, filename, DLL_EXT );
+ }
+}
+
+
+/*
+=================
FS_CopyFile
Copy a fully specified file from one place to another
@@ -508,6 +526,8 @@
Com_Printf( "copy %s to %s\n", fromOSPath, toOSPath );
+ FS_FilenameIsExecutable( toOSPath, __FUNCTION__ );
+
if (strstr(fromOSPath, "journal.dat") || strstr(fromOSPath, "journaldata.dat")) {
Com_Printf( "Ignoring journal files\n");
return;
@@ -549,6 +569,8 @@
===========
*/
void FS_Remove( const char *osPath ) {
+ FS_FilenameIsExecutable( osPath, __FUNCTION__ );
+
remove( osPath );
}
@@ -559,6 +581,8 @@
===========
*/
void FS_HomeRemove( const char *homePath ) {
+ FS_FilenameIsExecutable( homePath, __FUNCTION__ );
+
remove( FS_BuildOSPath( fs_homepath->string,
fs_gamedir, homePath ) );
}
@@ -636,6 +660,8 @@
Com_Printf( "FS_SV_FOpenFileWrite: %s\n", ospath );
}
+ FS_FilenameIsExecutable( ospath, __FUNCTION__ );
+
if( FS_CreatePath( ospath ) ) {
return 0;
}
@@ -745,6 +771,8 @@
Com_Printf( "FS_SV_Rename: %s --> %s\n", from_ospath, to_ospath );
}
+ FS_FilenameIsExecutable( to_ospath, __FUNCTION__ );
+
if (rename( from_ospath, to_ospath )) {
// Failed, try copying it and deleting the original
FS_CopyFile ( from_ospath, to_ospath );
@@ -777,6 +805,8 @@
Com_Printf( "FS_Rename: %s --> %s\n", from_ospath, to_ospath );
}
+ FS_FilenameIsExecutable( to_ospath, __FUNCTION__ );
+
if (rename( from_ospath, to_ospath )) {
// Failed, try copying it and deleting the original
FS_CopyFile ( from_ospath, to_ospath );
@@ -838,6 +868,8 @@
Com_Printf( "FS_FOpenFileWrite: %s\n", ospath );
}
+ FS_FilenameIsExecutable( ospath, __FUNCTION__ );
+
if( FS_CreatePath( ospath ) ) {
return 0;
}
@@ -884,6 +916,8 @@
Com_Printf( "FS_FOpenFileAppend: %s\n", ospath );
}
+ FS_FilenameIsExecutable( ospath, __FUNCTION__ );
+
if( FS_CreatePath( ospath ) ) {
return 0;
}
@@ -3397,7 +3431,7 @@
}
break;
default:
- Com_Error( ERR_FATAL, "FSH_FOpenFile: bad mode" );
+ Com_Error( ERR_FATAL, "FS_FOpenFileByMode: bad mode" );
return -1;
}
Modified: trunk/code/renderer/tr_bsp.c
===================================================================
--- trunk/code/renderer/tr_bsp.c 2008-07-05 22:34:23 UTC (rev 1404)
+++ trunk/code/renderer/tr_bsp.c 2008-07-05 23:50:38 UTC (rev 1405)
@@ -1321,6 +1321,9 @@
model = R_AllocModel();
assert( model != NULL ); // this should never happen
+ if ( model == NULL ) {
+ ri.Error(ERR_DROP, "R_LoadSubmodels: R_AllocModel() failed");
+ }
model->type = MOD_BRUSH;
model->bmodel = out;
Modified: trunk/code/renderer/tr_local.h
===================================================================
--- trunk/code/renderer/tr_local.h 2008-07-05 22:34:23 UTC (rev 1404)
+++ trunk/code/renderer/tr_local.h 2008-07-05 23:50:38 UTC (rev 1405)
@@ -322,10 +322,12 @@
struct shaderCommands_s;
-#define LIGHTMAP_2D -4 // shader is for 2D rendering
-#define LIGHTMAP_BY_VERTEX -3 // pre-lit triangle models
-#define LIGHTMAP_WHITEIMAGE -2
-#define LIGHTMAP_NONE -1
+// any change in the LIGHTMAP_* defines here MUST be reflected in
+// R_FindShader() in tr_bsp.c
+#define LIGHTMAP_2D -4 // shader is for 2D rendering
+#define LIGHTMAP_BY_VERTEX -3 // pre-lit triangle models
+#define LIGHTMAP_WHITEIMAGE -2
+#define LIGHTMAP_NONE -1
typedef enum {
CT_FRONT_SIDED,
Modified: trunk/code/renderer/tr_shader.c
===================================================================
--- trunk/code/renderer/tr_shader.c 2008-07-05 22:34:23 UTC (rev 1404)
+++ trunk/code/renderer/tr_shader.c 2008-07-05 23:50:38 UTC (rev 1405)
@@ -1432,7 +1432,6 @@
// stage definition
else if ( token[0] == '{' )
{
- // 20051019 misantropia -- fix buffer overrun.
if ( s >= MAX_SHADER_STAGES ) {
ri.Printf( PRINT_WARNING, "WARNING: too many stages in shader %s\n", shader.name );
return qfalse;
@@ -2447,6 +2446,10 @@
// lightmaps
if ( lightmapIndex >= 0 && lightmapIndex >= tr.numLightmaps ) {
lightmapIndex = LIGHTMAP_BY_VERTEX;
+ } else if ( lightmapIndex < LIGHTMAP_2D ) {
+ // negative lightmap indexes cause stray pointers (think tr.lightmaps[lightmapIndex])
+ ri.Printf( PRINT_WARNING, "WARNING: shader '%s' has invalid lightmap index of %d\n", name, lightmapIndex );
+ lightmapIndex = LIGHTMAP_BY_VERTEX;
}
COM_StripExtension(name, strippedName, sizeof(strippedName));
@@ -2581,7 +2584,7 @@
hash = generateHashValue(name, FILE_HASH_SIZE);
- // 20051020 misantropia -- probably not necessary since this function
+ // probably not necessary since this function
// only gets called from tr_font.c with lightmapIndex == LIGHTMAP_2D
// but better safe than sorry.
if ( lightmapIndex >= tr.numLightmaps ) {
Modified: trunk/code/sdl/sdl_input.c
===================================================================
--- trunk/code/sdl/sdl_input.c 2008-07-05 22:34:23 UTC (rev 1404)
+++ trunk/code/sdl/sdl_input.c 2008-07-05 23:50:38 UTC (rev 1405)
@@ -136,7 +136,8 @@
case SDLK_RCTRL: *key = K_CTRL; break;
case SDLK_RMETA:
- case SDLK_LMETA:
+ case SDLK_LMETA: *key = K_COMMAND; break;
+
case SDLK_RALT:
case SDLK_LALT: *key = K_ALT; break;
@@ -288,18 +289,17 @@
if( !mouseActive )
{
- SDL_WM_GrabInput( SDL_GRAB_ON );
SDL_ShowCursor( 0 );
-
#ifdef MACOS_X_CURSOR_HACK
// This is a bug in the current SDL/macosx...have to toggle it a few
// times to get the cursor to hide.
SDL_ShowCursor( 1 );
SDL_ShowCursor( 0 );
#endif
+ SDL_WM_GrabInput( SDL_GRAB_ON );
}
- // in_nograb makes no sense unless fullscreen
+ // in_nograb makes no sense in fullscreen mode
if( !r_fullscreen->integer )
{
if( in_nograb->modified || !mouseActive )
@@ -347,8 +347,9 @@
if( mouseActive )
{
+ SDL_WM_GrabInput( SDL_GRAB_OFF );
+ SDL_WarpMouse( glConfig.vidWidth >> 1, glConfig.vidHeight >> 1 );
SDL_ShowCursor( 1 );
- SDL_WM_GrabInput( SDL_GRAB_OFF );
mouseActive = qfalse;
}
@@ -719,6 +720,15 @@
}
break;
+ case SDL_ACTIVEEVENT:
+ if( e.active.state == SDL_APPINPUTFOCUS ) {
+ if( e.active.gain )
+ IN_ActivateMouse();
+ else
+ IN_DeactivateMouse();
+ }
+ break;
+
case SDL_QUIT:
Sys_Quit();
break;
@@ -741,8 +751,10 @@
{
IN_JoyMove( );
- // Release the mouse if the console if down and we're windowed
- if( ( Key_GetCatcher( ) & KEYCATCH_CONSOLE ) && !r_fullscreen->integer )
+ // Release the mouse if the console is down in windowed mode
+ // or if the window loses focus due to task switching
+ if( ( ( Key_GetCatcher( ) & KEYCATCH_CONSOLE ) && !r_fullscreen->integer ) ||
+ !( SDL_GetAppState() & SDL_APPINPUTFOCUS ) )
IN_DeactivateMouse( );
else
IN_ActivateMouse( );
Modified: trunk/code/server/sv_ccmds.c
===================================================================
--- trunk/code/server/sv_ccmds.c 2008-07-05 22:34:23 UTC (rev 1404)
+++ trunk/code/server/sv_ccmds.c 2008-07-05 23:50:38 UTC (rev 1405)
@@ -966,7 +966,7 @@
strcat(text, p);
- SV_SendServerCommand(NULL, "chat \"%s\n\"", text);
+ SV_SendServerCommand(NULL, "chat \"%s\"", text);
}
Modified: trunk/code/tools/asm/q3asm.c
===================================================================
--- trunk/code/tools/asm/q3asm.c 2008-07-05 22:34:23 UTC (rev 1404)
+++ trunk/code/tools/asm/q3asm.c 2008-07-05 23:50:38 UTC (rev 1405)
@@ -131,7 +131,7 @@
DATASEG, // initialized 32 bit data, will be byte swapped
LITSEG, // strings
BSSSEG, // 0 filled
- JTRGSEG, // psuedo-segment that contains only jump table targets
+ JTRGSEG, // pseudo-segment that contains only jump table targets
NUM_SEGMENTS
} segmentName_t;
@@ -226,16 +226,14 @@
-int
-vreport (const char* fmt, va_list vp)
+static int vreport (const char* fmt, va_list vp)
{
if (options.verbose != qtrue)
return 0;
return vprintf(fmt, vp);
}
-int
-report (const char *fmt, ...)
+static int report (const char *fmt, ...)
{
va_list va;
int retval;
@@ -248,16 +246,14 @@
/* The chain-and-bucket hash table. -PH */
-void
-hashtable_init (hashtable_t *H, int buckets)
+static void hashtable_init (hashtable_t *H, int buckets)
{
H->buckets = buckets;
H->table = calloc(H->buckets, sizeof(*(H->table)));
return;
}
-hashtable_t *
-hashtable_new (int buckets)
+static hashtable_t *hashtable_new (int buckets)
{
hashtable_t *H;
@@ -268,8 +264,7 @@
/* No destroy/destructor. No need. */
-void
-hashtable_add (hashtable_t *H, int hashvalue, void *datum)
+static void hashtable_add (hashtable_t *H, int hashvalue, void *datum)
{
hashchain_t *hc, **hb;
@@ -293,15 +288,13 @@
return;
}
-hashchain_t *
-hashtable_get (hashtable_t *H, int hashvalue)
+static hashchain_t *hashtable_get (hashtable_t *H, int hashvalue)
{
hashvalue = (abs(hashvalue) % H->buckets);
return (H->table[hashvalue]);
}
-void
-hashtable_stats (hashtable_t *H)
+static void hashtable_stats (hashtable_t *H)
{
int len, empties, longest, nodes;
int i;
@@ -341,8 +334,7 @@
/* Kludge. */
/* Check if symbol already exists. */
/* Returns 0 if symbol does NOT already exist, non-zero otherwise. */
-int
-hashtable_symbol_exists (hashtable_t *H, int hash, char *sym)
+static int hashtable_symbol_exists (hashtable_t *H, int hash, char *sym)
{
hashchain_t *hc;
symbol_t *s;
@@ -372,8 +364,7 @@
/* Comparator function for quicksorting. */
-int
-symlist_cmp (const void *e1, const void *e2)
+static int symlist_cmp (const void *e1, const void *e2)
{
const symbol_t *a, *b;
@@ -389,8 +380,7 @@
However, qsort(3) already exists, and I'm really lazy.
-PH
*/
-void
-sort_symbols ()
+static void sort_symbols ()
{
int i, elems;
symbol_t *s;
@@ -439,7 +429,7 @@
This function is one big evil hack to work around this problem.
*/
-int atoiNoCap (const char *s)
+static int atoiNoCap (const char *s)
{
INT64 l;
union {
@@ -465,7 +455,7 @@
=============
*/
/* Default hash function of Kazlib 1.19, slightly modified. */
-unsigned int HashString (const char *key)
+static unsigned int HashString (const char *key)
{
static unsigned long randbox[] = {
0x49848f1bU, 0xe6255dbaU, 0x36da5bdcU, 0x47bf94e9U,
@@ -494,7 +484,7 @@
CodeError
============
*/
-void CodeError( char *fmt, ... ) {
+static void CodeError( char *fmt, ... ) {
va_list argptr;
errorCount++;
@@ -511,7 +501,7 @@
EmitByte
============
*/
-void EmitByte( segment_t *seg, int v ) {
+static void EmitByte( segment_t *seg, int v ) {
if ( seg->imageUsed >= MAX_IMAGE ) {
Error( "MAX_IMAGE" );
}
@@ -524,7 +514,7 @@
EmitInt
============
*/
-void EmitInt( segment_t *seg, int v ) {
+static void EmitInt( segment_t *seg, int v ) {
if ( seg->imageUsed >= MAX_IMAGE - 4) {
Error( "MAX_IMAGE" );
}
@@ -542,7 +532,7 @@
Symbols can only be defined on pass 0
============
*/
-void DefineSymbol( char *sym, int value ) {
+static void DefineSymbol( char *sym, int value ) {
/* Hand optimization by PhaethonH */
symbol_t *s;
char expanded[MAX_LINE_LENGTH];
@@ -598,7 +588,7 @@
Symbols can only be evaluated on pass 1
============
*/
-int LookupSymbol( char *sym ) {
+static int LookupSymbol( char *sym ) {
symbol_t *s;
char expanded[MAX_LINE_LENGTH];
int hash;
@@ -646,7 +636,7 @@
Otherwise returns the updated parse pointer
===============
*/
-char *ExtractLine( char *data ) {
+static char *ExtractLine( char *data ) {
/* Goal:
Given a string `data', extract one text line into buffer `lineBuffer' that
is no longer than MAX_LINE_LENGTH characters long. Return value is
@@ -688,7 +678,7 @@
Parse a token out of linebuffer
==============
*/
-qboolean Parse( void ) {
+static qboolean Parse( void ) {
/* Hand-optimized by PhaethonH */
const char *p, *q;
@@ -724,7 +714,7 @@
ParseValue
==============
*/
-int ParseValue( void ) {
+static int ParseValue( void ) {
Parse();
return atoiNoCap( token );
}
@@ -735,7 +725,7 @@
ParseExpression
==============
*/
-int ParseExpression(void) {
+static int ParseExpression(void) {
/* Hand optimization, PhaethonH */
int i, j;
char sym[MAX_LINE_LENGTH];
@@ -806,7 +796,7 @@
aren't read only as in some architectures.
==============
*/
-void HackToSegment( segmentName_t seg ) {
+static void HackToSegment( segmentName_t seg ) {
if ( currentSegment == &segment[seg] ) {
return;
}
@@ -1165,7 +1155,7 @@
==============
*/
-void AssembleLine( void ) {
+static void AssembleLine( void ) {
hashchain_t *hc;
sourceOps_t *op;
int i;
@@ -1320,7 +1310,7 @@
WriteMapFile
==============
*/
-void WriteMapFile( void ) {
+static void WriteMapFile( void ) {
FILE *f;
symbol_t *s;
char imageName[MAX_OS_PATH];
@@ -1352,7 +1342,7 @@
WriteVmFile
===============
*/
-void WriteVmFile( void ) {
+static void WriteVmFile( void ) {
char imageName[MAX_OS_PATH];
vmHeader_t header;
FILE *f;
@@ -1431,7 +1421,7 @@
Assemble
===============
*/
-void Assemble( void ) {
+static void Assemble( void ) {
int i;
char filename[MAX_OS_PATH];
char *ptr;
@@ -1498,7 +1488,7 @@
=============
*/
-void ParseOptionFile( const char *filename ) {
+static void ParseOptionFile( const char *filename ) {
char expanded[MAX_OS_PATH];
char *text, *text_p;
@@ -1526,6 +1516,19 @@
}
}
+static void ShowHelp( char *argv0 ) {
+ Error("Usage: %s [OPTION]... [FILES]...\n\
+Assemble LCC bytecode assembly to Q3VM bytecode.\n\
+\n\
+ -o OUTPUT Write assembled output to file OUTPUT.qvm\n\
+ -f LISTFILE Read options and list of files to assemble from LISTFILE.q3asm\n\
+ -b BUCKETS Set symbol hash table to BUCKETS buckets\n\
+ -v Verbose compilation report\n\
+ -vq3 Produce a qvm file compatible with Q3 1.32b\n\
+ -h --help -? Show this help\n\
+", argv0);
+}
+
/*
==============
main
@@ -1538,15 +1541,7 @@
// _chdir( "/quake3/jccode/cgame/lccout" ); // hack for vc profiler
if ( argc < 2 ) {
- Error("Usage: %s [OPTION]... [FILES]...\n\
-Assemble LCC bytecode assembly to Q3VM bytecode.\n\
-\n\
- -o OUTPUT Write assembled output to file OUTPUT.qvm\n\
- -f LISTFILE Read options and list of files to assemble from LISTFILE\n\
- -b BUCKETS Set symbol hash table to BUCKETS buckets\n\
- -v Verbose compilation report\n\
- -vq3 Produce a qvm file compatible with Q3 1.32b\n\
-", argv[0]);
+ ShowHelp( argv[0] );
}
start = I_FloatTime ();
@@ -1559,6 +1554,12 @@
if ( argv[i][0] != '-' ) {
break;
}
+ if( !strcmp( argv[ i ], "-h" ) ||
+ !strcmp( argv[ i ], "--help" ) ||
+ !strcmp( argv[ i ], "-?") ) {
+ ShowHelp( argv[0] );
+ }
+
if ( !strcmp( argv[i], "-o" ) ) {
if ( i == argc - 1 ) {
Error( "-o must preceed a filename" );
@@ -1615,6 +1616,10 @@
asmFileNames[ numAsmFiles ] = copystring( argv[ i ] );
numAsmFiles++;
}
+ // In some case it Segfault without this check
+ if ( numAsmFiles == 0 ) {
+ Error( "No file to assemble\n" );
+ }
InitTables();
Assemble();
Modified: trunk/code/tools/lcc/cpp/cpp.c
===================================================================
--- trunk/code/tools/lcc/cpp/cpp.c 2008-07-05 22:34:23 UTC (rev 1404)
+++ trunk/code/tools/lcc/cpp/cpp.c 2008-07-05 23:50:38 UTC (rev 1405)
@@ -204,9 +204,14 @@
error(WARNING, "Syntax error in #endif");
break;
+ case KWARNING:
+ trp->tp = tp+1;
+ error(WARNING, "#warning directive: %r", trp);
+ break;
+
case KERROR:
trp->tp = tp+1;
- error(WARNING, "#error directive: %r", trp);
+ error(ERROR, "#error directive: %r", trp);
break;
case KLINE:
Modified: trunk/code/tools/lcc/cpp/cpp.h
===================================================================
--- trunk/code/tools/lcc/cpp/cpp.h 2008-07-05 22:34:23 UTC (rev 1404)
+++ trunk/code/tools/lcc/cpp/cpp.h 2008-07-05 23:50:38 UTC (rev 1405)
@@ -24,7 +24,7 @@
DSHARP1, NAME1, DEFINED, UMINUS };
enum kwtype { KIF, KIFDEF, KIFNDEF, KELIF, KELSE, KENDIF, KINCLUDE, KDEFINE,
- KUNDEF, KLINE, KERROR, KPRAGMA, KDEFINED,
+ KUNDEF, KLINE, KWARNING, KERROR, KPRAGMA, KDEFINED,
KLINENO, KFILE, KDATE, KTIME, KSTDC, KEVAL };
#define ISDEFINED 01 /* has #defined value */
Modified: trunk/code/tools/lcc/cpp/nlist.c
===================================================================
--- trunk/code/tools/lcc/cpp/nlist.c 2008-07-05 22:34:23 UTC (rev 1404)
+++ trunk/code/tools/lcc/cpp/nlist.c 2008-07-05 23:50:38 UTC (rev 1405)
@@ -29,6 +29,7 @@
{"define", KDEFINE, ISKW},
{"undef", KUNDEF, ISKW},
{"line", KLINE, ISKW},
+ {"warning", KWARNING, ISKW},
{"error", KERROR, ISKW},
{"pragma", KPRAGMA, ISKW},
{"eval", KEVAL, ISKW},
Modified: trunk/make-macosx-ub.sh
===================================================================
--- trunk/make-macosx-ub.sh 2008-07-05 22:34:23 UTC (rev 1404)
+++ trunk/make-macosx-ub.sh 2008-07-05 23:50:38 UTC (rev 1405)
@@ -7,8 +7,7 @@
DESTDIR=build/release-darwin-ub
BASEDIR=baseq3
MPACKDIR=missionpack
-Q3_VERSION=`grep "\#define Q3_VERSION" code/qcommon/q_shared.h | \
- sed -e 's/.*".* \([^ ]*\)"/\1/'`;
+Q3_VERSION=`grep '^VERSION=' Makefile | sed -e 's/.*=\(.*\)/\1/'`
BIN_OBJ="
build/release-darwin-ppc/ioquake3-smp.ppc
@@ -38,10 +37,7 @@
echo "This script must be run from the ioquake3 build directory";
fi
-TIGERHOST=0
-if uname -r | grep ^8. > /dev/null; then
- TIGERHOST=1
-fi
+TIGERHOST=`uname -r | grep ^8.`
# we want to use the oldest available SDK for max compatiblity
unset PPC_CLIENT_SDK
@@ -190,7 +186,7 @@
cp $ICNS $DESTDIR/$APPBUNDLE/Contents/Resources/ioquake3.icns || exit 1;
echo $PKGINFO > $DESTDIR/$APPBUNDLE/Contents/PkgInfo
echo "
- <?xml version=\"1.0\" encoding="UTF-8"?>
+ <?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist
PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\"
\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
Modified: trunk/misc/setup/Solaris_pkg.sh
===================================================================
--- trunk/misc/setup/Solaris_pkg.sh 2008-07-05 22:34:23 UTC (rev 1404)
+++ trunk/misc/setup/Solaris_pkg.sh 2008-07-05 23:50:38 UTC (rev 1405)
@@ -85,7 +85,7 @@
fi
done
- for EXEC_SO in cgamesparc.so qagamesparc.so uisparc.so
+ for EXEC_SO in cgamesparc.so qagamesparc.so uisparc.so cgamei386.so qagamei386.so uii386.so
do
if [ -f ${BUILD_DIR}/baseq3/${EXEC_SO} ]; then
${INSTALL_BIN} ${BUILD_DIR}/baseq3/${EXEC_SO} ${PKG_BUILD_DIR}/baseq3/${EXEC_SO}
@@ -95,6 +95,16 @@
fi
done
+ for EXEC_VM in cgame.qvm qagame.qvm ui.qvm
+ do
+ if [ -f ${BUILD_DIR}/baseq3/vm/${EXEC_VM} ]; then
+ ${INSTALL_BIN} ${BUILD_DIR}/baseq3/vm/${EXEC_VM} ${PKG_BUILD_DIR}/baseq3/vm/${EXEC_VM}
+ fi
+ if [ -f ${BUILD_DIR}/missionpack/vm/${EXEC_VM} ]; then
+ ${INSTALL_BIN} ${BUILD_DIR}/missionpack/vm/${EXEC_VM} ${PKG_BUILD_DIR}/missionpack/vm/${EXEC_VM}
+ fi
+ done
+
${PKGPROTO} ${PKG_BUILD_DIR}=quake3 | \
${NAWK} '{ print $1,$2,$3,$4 }' >> ${PKG_SRC_DIR}/prototype
${PKGMK} -o -p "${PKG_MAINT_ID}${BUILD_DATE}" \
More information about the quake3-commits
mailing list