about summary refs log tree commit diff
path: root/default.bam
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-08-22 07:52:33 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-08-22 07:52:33 +0000
commit8b3c16e6152a527f9aec1a88a9eed74119de7000 (patch)
treef0bde5cea15e696e42cade06a3b12ff6b13acc57 /default.bam
parent9899666a7ce6679a3b9667ab09f615f4d0769c16 (diff)
downloadzcatch-8b3c16e6152a527f9aec1a88a9eed74119de7000.tar.gz
zcatch-8b3c16e6152a527f9aec1a88a9eed74119de7000.zip
major engine cleanup. dependency on baselib removed. engine is now C code (not ansi tho). some other cruft removed aswell
Diffstat (limited to 'default.bam')
-rw-r--r--default.bam81
1 files changed, 64 insertions, 17 deletions
diff --git a/default.bam b/default.bam
index 7ba4c891..ef544015 100644
--- a/default.bam
+++ b/default.bam
@@ -94,7 +94,6 @@ if family == "windows" then
 	client_link_other = {ResCompile("other/icons/teewars.rc")}
 end
 
-
 function build(settings)
 	settings.objdir = Path("objs")
 
@@ -107,22 +106,70 @@ function build(settings)
 
 	server_settings = settings:copy()
 
-	basepath = Path("objs/baselib")
-	baselib_options = {}
-	baselib_options.settings = settings:copy()
-	baselib_options.settings.objdir = Path("objs/baselib")
-	baselib_options.settings.libdir = Path("objs/baselib")
-	baselib = Import("../baselib/baselib.bam", baselib_options)
-
-	baselib.apply(settings, "all")
-	baselib.apply(server_settings, "network")
-
+	-- set some platform specific settings
 	settings.cc.includes:add("src")
-	settings.cc.includes:add("../baselib/src/external/zlib")
+	settings.cc.includes:add("src/external/zlib")
+	settings.cc.includes:add("src/external/glfw/include")
+
+	if family == "unix" then
+   		if platform == "macosx" then
+			glfw_platform = "macosx"
+			settings.linker.frameworks:add("OpenGL")
+            settings.linker.frameworks:add("AGL")
+            settings.linker.frameworks:add("Carbon")
+			settings.linker.frameworks:add("CoreAudio")
+			settings.linker.frameworks:add("AudioToolbox")
+			settings.linker.frameworks:add("AudioUnit")
+		else
+			glfw_platform = "x11"
+			settings.linker.libs:add("pthread")
+            settings.linker.libs:add("asound")
+			settings.linker.libs:add("X11")
+			settings.linker.libs:add("GL")
+			settings.linker.libs:add("GLU")
+		end
+	elseif family == "windows" then
+		glfw_platform = "win32"
+		settings.linker.libs:add("gdi32.lib")
+		settings.linker.libs:add("user32.lib")
+		settings.linker.libs:add("opengl32.lib")
+		settings.linker.libs:add("glu32.lib")
+		settings.linker.libs:add("ws2_32.lib")
+		settings.linker.libs:add("dsound.lib")
+		settings.linker.libs:add("ole32.lib")
+	end
+	
+	-- build glfw
+	glfw_settings = settings:copy()
+	glfw_settings.cc.includes:add("src/engine/external/glfw/lib")
+	glfw_settings.cc.includes:add("src/engine/external/glfw/lib/" .. glfw_platform)
+
+	glfw = Compile(glfw_settings, Collect(
+		"src/engine/external/glfw/lib/*.c",
+		"src/engine/external/glfw/lib/" .. glfw_platform .. "/*.c"))
 
-	engine = Compile(settings, Collect("src/engine/*.cpp"))
-	client = Compile(settings, Collect("src/engine/client/*.cpp", "src/engine/client/pnglite/*.c", "src/wavpack/*.c"))
-	server = Compile(settings, Collect("src/engine/server/*.cpp"))
+	-- build teewars components
+	engine_settings = settings:copy()
+	
+	if family == "windows" then
+		engine_settings.cc.flags = "/wd4244 /TP"
+	else
+		engine_settings.cc.flags = "-Wall"
+		engine_settings.linker.flags = ""
+	end
+	
+	engine = Compile(engine_settings, Collect(
+		"src/engine/*.c",
+		"src/engine/external/zlib/*.c"))
+		
+	client = Compile(engine_settings, Collect(
+		"src/engine/client/*.c",
+		"src/engine/external/pnglite/*.c",
+		"src/engine/external/pa.c",
+		"src/engine/external/wavpack/*.c"))
+		
+	server = Compile(engine_settings, Collect("src/engine/server/*.c"))
+	
 	masterserver = Compile(settings, Collect("src/mastersrv/*.cpp"))
 	game_shared = Compile(settings, Collect("src/game/*.cpp"))
 	game_client = Compile(settings, Collect("src/game/client/*.cpp"), clientdata.source, clientdata.cdata)
@@ -136,11 +183,11 @@ function build(settings)
 	tools = {}
 	for i,v in objs do
 		toolname = PathFilename(file_base(v))
-		tools[i] = Link(settings, toolname, v)
+		tools[i] = Link(settings, toolname, v, engine)
 	end
 	
 	-- build client, server and master server
-	client_exe = Link(settings, "teewars", engine, client, editor, game_shared, game_client, client_link_other)
+	client_exe = Link(settings, "teewars", game_shared, game_client, engine, client, editor, glfw, pa, client_link_other)
 	server_exe = Link(server_settings, "teewars_srv", engine, server, game_shared, game_server)
 	masterserver_exe = Link(server_settings, "mastersrv", masterserver, engine)