diff options
Diffstat (limited to 'bam.lua')
| -rw-r--r-- | bam.lua | 109 |
1 files changed, 82 insertions, 27 deletions
diff --git a/bam.lua b/bam.lua index 006ba20f..e59e88eb 100644 --- a/bam.lua +++ b/bam.lua @@ -113,8 +113,13 @@ client_depends = {} server_link_other = {} if family == "windows" then - table.insert(client_depends, CopyToDirectory(".", "other\\freetype\\lib\\freetype.dll")) - table.insert(client_depends, CopyToDirectory(".", "other\\sdl\\vc2005libs\\SDL.dll")) + if platform == "win32" then + table.insert(client_depends, CopyToDirectory(".", "other\\freetype\\lib32\\freetype.dll")) + table.insert(client_depends, CopyToDirectory(".", "other\\sdl\\lib32\\SDL.dll")) + else + table.insert(client_depends, CopyToDirectory(".", "other\\freetype\\lib64\\freetype.dll")) + table.insert(client_depends, CopyToDirectory(".", "other\\sdl\\lib64\\SDL.dll")) + end if config.compiler.driver == "cl" then client_link_other = {ResCompile("other/icons/teeworlds_cl.rc")} @@ -130,6 +135,9 @@ function Intermediate_Output(settings, input) end function build(settings) + -- apply compiler settings + config.compiler:Apply(settings) + --settings.objdir = Path("objs") settings.cc.Output = Intermediate_Output @@ -137,7 +145,10 @@ function build(settings) settings.cc.flags:Add("/wd4244") else settings.cc.flags:Add("-Wall", "-fno-exceptions") - if platform == "macosx" then + if family == "windows" then + -- disable visibility attribute support for gcc on windows + settings.cc.defines:Add("NO_VIZ") + elseif platform == "macosx" then settings.cc.flags:Add("-mmacosx-version-min=10.5", "-isysroot /Developer/SDKs/MacOSX10.5.sdk") settings.link.flags:Add("-mmacosx-version-min=10.5", "-isysroot /Developer/SDKs/MacOSX10.5.sdk") elseif config.stackprotector.value == 1 then @@ -156,6 +167,11 @@ function build(settings) else settings.link.libs:Add("pthread") end + + if platform == "solaris" then + settings.link.flags:Add("-lsocket") + settings.link.flags:Add("-lnsl") + end elseif family == "windows" then settings.link.libs:Add("gdi32") settings.link.libs:Add("user32") @@ -289,7 +305,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" @@ -304,32 +320,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) |