--- SConscript_quake3.orig	Mon Jun  4 23:40:27 2007
+++ SConscript_quake3	Mon Jun  4 23:44:57 2007
@@ -1,4 +1,4 @@
-import os, string, sys
+import os, string, sys, fnmatch
 
 Import('env')
 
@@ -169,25 +169,29 @@
 quake3_env.Append(CCFLAGS='-DBOTLIB')
 quake3_env.Append(CCFLAGS='-DC_ONLY')
 
-if env['arch'] == 'linux-i386':
-	quake3_env.Append(LIBPATH='/usr/X11R6/lib')
+if sys.platform != 'win32':
 	quake3_env.Append(LIBS=['X11', 'Xext', 'Xxf86dga', 'Xxf86vm'])
-	quake3_env.Append(LIBS=['dl', 'm'])
+	quake3_env.Append(LIBS=['m', 'vorbisfile'])
+
+	# The "dl" library is needed on Linux
+	if fnmatch.fnmatch(sys.platform, 'linux*'):
+		quake3_env.Append(LIBS=['dl'])
 	
-	if env['vm'] == 1:
-		vm_src += ['engine/qcommon/vm_x86.c']
+	if env['vm'] != 0 and env['vm_archs'].count(env['arch']) > 0:
+		vm_src += ['engine/qcommon/vm_' + env['arch'] + '.c']
 	else:
-		quake3_env.Append(CCFLAGS='-DDLL_ONLY')
-		
-	if env['smp'] == 1:
+		quake3_env.Append(CCFLAGS='-DNO_VM_COMPILED')
+
+	if env['smp'] != 0:
 		quake3_env.Append(CCFLAGS='-DSMP')
 		quake3_env.Append(LIBS=['pthread'])
 	
 	if env['sound'] == 'oss':
-		quake3_env.Program('quake3.x86', [quake3_src, unix_src, linux_src, vm_src, 'engine/unix/linux_snd.c'])
+		quake3_env.Program('quake3', [quake3_src, unix_src, linux_src, vm_src, 'engine/unix/linux_snd.c'])
 	else:
-		quake3_env.Append(CCFLAGS='`sdl-config --cflags`')
-		quake3_env.Append(LINKFLAGS='`sdl-config --libs`')
-		quake3_env.Program('quake3.x86', [quake3_src, unix_src, linux_src, vm_src, 'engine/unix/sdl_snd.c'])
-		
-	quake3_env.Install('#', 'quake3.x86')
+		quake3_env.Append(CCFLAGS='-DUSE_SDL_SOUND')
+		quake3_env.ParseConfig('sdl-config --cflags')
+		quake3_env.ParseConfig('sdl-config --libs')
+		quake3_env.Program('quake3', [quake3_src, unix_src, linux_src, vm_src, 'engine/unix/sdl_snd.c'])
+
+	quake3_env.Install('#', 'quake3')
