summaryrefslogtreecommitdiff
path: root/xmake/modules/package
diff options
context:
space:
mode:
authorruki <[email protected]>2019-04-25 22:36:06 +0800
committerruki <[email protected]>2019-04-25 09:36:41 +0800
commit64a34fcca6999e1e0478d77d86801a8bf5fbff21 (patch)
tree455d4e0ba2d104a9ee4dd43fce1eb14cec43ebf4 /xmake/modules/package
parent34ceb97cebf1addf9456222078aab1b78425594c (diff)
support mingw for autoconf
Diffstat (limited to 'xmake/modules/package')
-rw-r--r--xmake/modules/package/tools/autoconf.lua54
1 files changed, 25 insertions, 29 deletions
diff --git a/xmake/modules/package/tools/autoconf.lua b/xmake/modules/package/tools/autoconf.lua
index 852a2e628..69873f1bb 100644
--- a/xmake/modules/package/tools/autoconf.lua
+++ b/xmake/modules/package/tools/autoconf.lua
@@ -31,28 +31,36 @@ function _get_configs(package, configs)
-- add host for cross-complation
if not configs.host and not package:is_plat(os.host()) then
if package:is_plat("iphoneos") then
- local hosts = { arm64 = "aarch64-apple-darwin",
- arm64e = "aarch64-apple-darwin",
- armv7 = "armv7-apple-darwin",
- armv7s = "armv7s-apple-darwin",
- i386 = "i386-apple-darwin",
- x86_64 = "x86_64-apple-darwin"}
- table.insert(configs, "--host=" .. (hosts[package:arch()] or "aarch64-apple-darwin"))
+ local triples =
+ {
+ arm64 = "aarch64-apple-darwin",
+ arm64e = "aarch64-apple-darwin",
+ armv7 = "armv7-apple-darwin",
+ armv7s = "armv7s-apple-darwin",
+ i386 = "i386-apple-darwin",
+ x86_64 = "x86_64-apple-darwin"
+ }
+ table.insert(configs, "--host=" .. (triples[package:arch()] or triples.arm64))
elseif package:is_plat("android") then
-- @see https://developer.android.com/ndk/guides/other_build_systems#autoconf
local triples =
{
- ["armv5te"] = "arm-linux-androideabi"
- , ["armv7-a"] = "arm-linux-androideabi"
- , ["arm64-v8a"] = "aarch64-linux-android"
- , i386 = "i686-linux-android"
- , x86_64 = "x86_64-linux-android"
- , mips = "mips-linux-android"
- , mips64 = "mips64-linux-android"
+ ["armv5te"] = "arm-linux-androideabi",
+ ["armv7-a"] = "arm-linux-androideabi",
+ ["arm64-v8a"] = "aarch64-linux-android",
+ i386 = "i686-linux-android",
+ x86_64 = "x86_64-linux-android",
+ mips = "mips-linux-android",
+ mips64 = "mips64-linux-android"
+ }
+ table.insert(configs, "--host=" .. (triples[package:arch()] or triples["armv7-a"]))
+ elseif package:is_plat("mingw") then
+ local triples =
+ {
+ i386 = "i686-w64-mingw32",
+ x86_64 = "x86_64-w64-mingw32"
}
- table.insert(configs, "--host=" .. (triples[package:arch()] or "arm-linux-androideabi"))
- elseif package:is_plat("cross") then
- -- TODO
+ table.insert(configs, "--host=" .. (triples[package:arch()] or triples.i386))
else
raise("autoconf: unknown platform(%s)!", package:plat())
end
@@ -105,18 +113,6 @@ function _enter_envs(package)
os.addenvp("ARFLAGS", package:build_getenv("arflags"), ' ')
os.addenvp("LDFLAGS", package:build_getenv("ldflags"), ' ')
os.addenvp("SHFLAGS", package:build_getenv("shflags"), ' ')
- if package:is_plat("android") then
- local gcc_toolchain = config.get("gcc_toolchain")
- if not gcc_toolchain then
- local bindir = config.get("bin")
- if bindir then
- gcc_toolchain = path.directory(bindir)
- end
- end
- if gcc_toolchain and os.isdir(gcc_toolchain) then
- os.setenv("TOOLCHAIN", gcc_toolchain)
- end
- end
end
for _, dep in ipairs(package:orderdeps()) do
local pkgconfig = path.join(dep:installdir(), "lib", "pkgconfig")