about summary refs log tree commit diff
path: root/bam.lua
diff options
context:
space:
mode:
Diffstat (limited to 'bam.lua')
-rw-r--r--bam.lua87
1 files changed, 63 insertions, 24 deletions
diff --git a/bam.lua b/bam.lua
index 8a7b79c5..ac73501f 100644
--- a/bam.lua
+++ b/bam.lua
@@ -297,7 +297,7 @@ release_settings.debug = 0
 release_settings.optimize = 1
 release_settings.cc.defines:Add("CONF_RELEASE")
 
-if platform == "macosx" and arch == "ia32" then
+if platform == "macosx" then
 	debug_settings_ppc = debug_settings:Copy()
 	debug_settings_ppc.config_name = "debug_ppc"
 	debug_settings_ppc.config_ext = "_ppc_d"
@@ -312,32 +312,71 @@ if platform == "macosx" and arch == "ia32" then
 	release_settings_ppc.link.flags:Add("-arch ppc")
 	release_settings_ppc.cc.defines:Add("CONF_RELEASE")
 
-	debug_settings_x86 = debug_settings:Copy()
-	debug_settings_x86.config_name = "debug_x86"
-	debug_settings_x86.config_ext = "_x86_d"
-	debug_settings_x86.cc.flags:Add("-arch i386")
-	debug_settings_x86.link.flags:Add("-arch i386")
-	debug_settings_x86.cc.defines:Add("CONF_DEBUG")
-
-	release_settings_x86 = release_settings:Copy()
-	release_settings_x86.config_name = "release_x86"
-	release_settings_x86.config_ext = "_x86"
-	release_settings_x86.cc.flags:Add("-arch i386")
-	release_settings_x86.link.flags:Add("-arch i386")
-	release_settings_x86.cc.defines:Add("CONF_RELEASE")
-
 	ppc_d = build(debug_settings_ppc)
-	x86_d = build(debug_settings_x86)
 	ppc_r = build(release_settings_ppc)
-	x86_r = build(release_settings_x86)
-	DefaultTarget("game_debug_x86")
-	PseudoTarget("release", ppc_r, x86_r)
-	PseudoTarget("debug", ppc_d, x86_d)
 
-	PseudoTarget("server_release", "server_release_x86", "server_release_ppc")
-	PseudoTarget("server_debug", "server_debug_x86", "server_debug_ppc")
-	PseudoTarget("client_release", "client_release_x86", "client_release_ppc")
-	PseudoTarget("client_debug", "client_debug_x86", "client_debug_ppc")
+	if arch == "ia32" or arch == "amd64" then
+		debug_settings_x86 = debug_settings:Copy()
+		debug_settings_x86.config_name = "debug_x86"
+		debug_settings_x86.config_ext = "_x86_d"
+		debug_settings_x86.cc.flags:Add("-arch i386")
+		debug_settings_x86.link.flags:Add("-arch i386")
+		debug_settings_x86.cc.defines:Add("CONF_DEBUG")
+
+		release_settings_x86 = release_settings:Copy()
+		release_settings_x86.config_name = "release_x86"
+		release_settings_x86.config_ext = "_x86"
+		release_settings_x86.cc.flags:Add("-arch i386")
+		release_settings_x86.link.flags:Add("-arch i386")
+		release_settings_x86.cc.defines:Add("CONF_RELEASE")
+	
+		x86_d = build(debug_settings_x86)
+		x86_r = build(release_settings_x86)
+	end
+
+	if arch == "amd64" then
+		debug_settings_x86_64 = debug_settings:Copy()
+		debug_settings_x86_64.config_name = "debug_x86_64"
+		debug_settings_x86_64.config_ext = "_x86_64_d"
+		debug_settings_x86_64.cc.flags:Add("-arch x86_64")
+		debug_settings_x86_64.link.flags:Add("-arch x86_64")
+		debug_settings_x86_64.cc.defines:Add("CONF_DEBUG")
+
+		release_settings_x86_64 = release_settings:Copy()
+		release_settings_x86_64.config_name = "release_x86_64"
+		release_settings_x86_64.config_ext = "_x86_64"
+		release_settings_x86_64.cc.flags:Add("-arch x86_64")
+		release_settings_x86_64.link.flags:Add("-arch x86_64")
+		release_settings_x86_64.cc.defines:Add("CONF_RELEASE")
+
+		x86_64_d = build(debug_settings_x86_64)
+		x86_64_r = build(release_settings_x86_64)
+	end
+
+	DefaultTarget("game_debug_x86")
+	
+	if arch == "ia32" then
+		PseudoTarget("release", ppc_r, x86_r)
+		PseudoTarget("debug", ppc_d, x86_d)
+		PseudoTarget("server_release", "server_release_x86", "server_release_ppc")
+		PseudoTarget("server_debug", "server_debug_x86", "server_debug_ppc")
+		PseudoTarget("client_release", "client_release_x86", "client_release_ppc")
+		PseudoTarget("client_debug", "client_debug_x86", "client_debug_ppc")
+	elseif arch == "amd64" then
+		PseudoTarget("release", ppc_r, x86_r, x86_64_r)
+		PseudoTarget("debug", ppc_d, x86_d, x86_64_d)
+		PseudoTarget("server_release", "server_release_x86", "server_release_x86_64", "server_release_ppc")
+		PseudoTarget("server_debug", "server_debug_x86", "server_release_x86_64", "server_debug_ppc")
+		PseudoTarget("client_release", "client_release_x86", "server_release_x86_64", "client_release_ppc")
+		PseudoTarget("client_debug", "client_debug_x86", "server_release_x86_64", "client_debug_ppc")
+	else
+		PseudoTarget("release", ppc_r)
+		PseudoTarget("debug", ppc_d)
+		PseudoTarget("server_release", "server_release_ppc")
+		PseudoTarget("server_debug", "server_debug_ppc")
+		PseudoTarget("client_release", "client_release_ppc")
+		PseudoTarget("client_debug", "client_debug_ppc")
+	end
 else
 	build(debug_settings)
 	build(release_settings)