diff options
| author | ruki <[email protected]> | 2019-04-25 22:36:06 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2019-04-25 09:36:41 +0800 |
| commit | 64a34fcca6999e1e0478d77d86801a8bf5fbff21 (patch) | |
| tree | 455d4e0ba2d104a9ee4dd43fce1eb14cec43ebf4 /xmake/modules/package | |
| parent | 34ceb97cebf1addf9456222078aab1b78425594c (diff) | |
support mingw for autoconf
Diffstat (limited to 'xmake/modules/package')
| -rw-r--r-- | xmake/modules/package/tools/autoconf.lua | 54 |
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") |
