--- SConscript_quake3-server.orig	Mon Jun  4 23:40:27 2007
+++ SConscript_quake3-server	Mon Jun  4 23:45:22 2007
@@ -1,4 +1,4 @@
-import os, string, sys
+import os, string, sys, fnmatch
 
 Import('env')
 
@@ -30,8 +30,8 @@
 'engine/server/sv_net_chan.c',
 'engine/server/sv_snapshot.c',
 'engine/server/sv_world.c',
-'engine/game/q_math.c',
-'engine/game/q_shared.c',
+'engine/qcommon/q_math.c',
+'engine/qcommon/q_shared.c',
 'engine/qcommon/unzip.c',
 'engine/botlib/be_aas_bspq3.c',
 'engine/botlib/be_aas_cluster.c',
@@ -70,7 +70,7 @@
 ]
 
 linux_src = [
-'engine/unix/linux_common.c',
+#'engine/unix/linux_common.c',
 'engine/unix/linux_signals.c']
 
 vm_src = [
@@ -82,18 +82,17 @@
 quake3_server_env.Append(CCFLAGS='-DC_ONLY')
 quake3_server_env.Append(CCFLAGS='-DDEDICATED')
 
-if env['arch'] == 'linux-i386':
-	if env['vm'] == 1:
-		vm_src += ['engine/qcommon/vm_x86.c']
+if sys.platform != 'win32':
+	quake3_server_env.Append(LIBS=['m'])
+
+	# The "dl" library is needed on Linux
+	if fnmatch.fnmatch(sys.platform, 'linux*'):
+		quake3_server_env.Append(LIBS=['dl'])
+
+	if env['vm'] != 0 and env['vm_archs'].count(env['arch']) > 0:
+		vm_src += ['engine/qcommon/vm_' + env['arch'] + '.c']
 	else:
-		quake3_server_env.Append(CCFLAGS='-DDLL_ONLY')
+		quake3_server_env.Append(CCFLAGS='-DNO_VM_COMPILED')
 
-	quake3_server_env.Append(LIBS=['dl', 'm'])
-	quake3_server_env.Program('quake3-server.x86', [quake3_server_src, unix_src, linux_src, vm_src])
-	quake3_server_env.Install('#', 'quake3-server.x86')
-	
-elif env['arch'] == 'linux-x86_64':
-	quake3_server_env.Append(CCFLAGS='-DDLL_ONLY')
-	quake3_server_env.Append(LIBS=['dl', 'm'])
-	quake3_server_env.Program('quake3-server.x86_64', [quake3_server_src, unix_src, linux_src, vm_src])
-	quake3_server_env.Install('#', 'quake3-server.x86_64')
+	quake3_server_env.Program('quake3-server', [quake3_server_src, unix_src, linux_src, vm_src])
+	quake3_server_env.Install('#', 'quake3-server')
