summaryrefslogtreecommitdiff
path: root/xmake/modules/package/tools/autoconf.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2019-04-23 00:46:56 +0800
committerruki <[email protected]>2019-04-22 22:41:41 +0800
commit622ffac19d48807ad132b26b06c10614612e76b9 (patch)
tree8247b26cd5000b8051f70c8a86f8c693eff78ce4 /xmake/modules/package/tools/autoconf.lua
parent7e50a99af45fe32e6ea3567925b3ab19b67da0dc (diff)
improve autoconf
Diffstat (limited to 'xmake/modules/package/tools/autoconf.lua')
-rw-r--r--xmake/modules/package/tools/autoconf.lua46
1 files changed, 32 insertions, 14 deletions
diff --git a/xmake/modules/package/tools/autoconf.lua b/xmake/modules/package/tools/autoconf.lua
index 74c6cce1c..d1ed3de09 100644
--- a/xmake/modules/package/tools/autoconf.lua
+++ b/xmake/modules/package/tools/autoconf.lua
@@ -31,9 +31,11 @@ function _enter_envs(package)
-- get old environments
local envs = {}
envs.CC = os.getenv("CC")
- envs.LD = os.getenv("LD")
+ envs.AS = os.getenv("AS")
envs.AR = os.getenv("AR")
- envs.SH = os.getenv("SH")
+ envs.LD = os.getenv("LD")
+ envs.LDSHARED = os.getenv("LDSHARED")
+ envs.RANLIB = os.getenv("RANLIB")
envs.CFLAGS = os.getenv("CFLAGS")
envs.CXXFLAGS = os.getenv("CXXFLAGS")
envs.ASFLAGS = os.getenv("ASFLAGS")
@@ -44,17 +46,28 @@ function _enter_envs(package)
envs.PKG_CONFIG_PATH = os.getenv("PKG_CONFIG_PATH")
-- set new environments
- os.addenvp("CC", package:build_getenv("cc"), ' ')
- os.addenvp("AR", package:build_getenv("ar"), ' ')
- os.addenvp("LD", package:build_getenv("ld"), ' ')
- os.addenvp("SH", package:build_getenv("sh"), ' ')
- os.addenvp("CFLAGS", package:build_getenv("cflags"), ' ')
- os.addenvp("CFLAGS", package:build_getenv("cxflags"), ' ')
- os.addenvp("CXXFLAGS", package:build_getenv("cxflags"), ' ')
- os.addenvp("CXXFLAGS", package:build_getenv("cxxflags"), ' ')
- os.addenvp("ASFLAGS", package:build_getenv("asflags"), ' ')
- os.addenvp("LDFLAGS", package:build_getenv("ldflags"), ' ')
- os.addenvp("SHFLAGS", package:build_getenv("shflags"), ' ')
+ if package:plat() == os.host() then
+ os.addenvp("CFLAGS", package:config("cflags"), ' ')
+ os.addenvp("CFLAGS", package:config("cxflags"), ' ')
+ os.addenvp("CXXFLAGS", package:config("cxflags"), ' ')
+ os.addenvp("CXXFLAGS", package:config("cxxflags"), ' ')
+ os.addenvp("ASFLAGS", package:config("asflags"), ' ')
+ else
+ os.setenv("RANLIB", "")
+ os.addenvp("CC", package:build_getenv("cc"), ' ')
+ os.addenvp("AS", package:build_getenv("as"), ' ')
+ os.addenvp("AR", package:build_getenv("ar"), ' ')
+ os.addenvp("LD", package:build_getenv("ld"), ' ')
+ os.addenvp("LDSHARED", package:build_getenv("sh"), ' ')
+ os.addenvp("CFLAGS", package:build_getenv("cflags"), ' ')
+ os.addenvp("CFLAGS", package:build_getenv("cxflags"), ' ')
+ os.addenvp("CXXFLAGS", package:build_getenv("cxflags"), ' ')
+ os.addenvp("CXXFLAGS", package:build_getenv("cxxflags"), ' ')
+ os.addenvp("ASFLAGS", package:build_getenv("asflags"), ' ')
+ os.addenvp("ARFLAGS", package:build_getenv("arflags"), ' ')
+ os.addenvp("LDFLAGS", package:build_getenv("ldflags"), ' ')
+ os.addenvp("SHFLAGS", package:build_getenv("shflags"), ' ')
+ end
for _, dep in ipairs(package:orderdeps()) do
local pkgconfig = path.join(dep:installdir(), "lib", "pkgconfig")
if os.isdir(pkgconfig) then
@@ -76,7 +89,7 @@ function _leave_envs(package, envs)
end
-- install package
-function install(package, configs)
+function install(package, configs, opt)
-- generate configure file
if not os.isfile("configure") then
@@ -106,6 +119,11 @@ function install(package, configs)
-- do configure
os.vrunv("./configure", argv)
+ -- do before_build()
+ if opt and opt.before_build then
+ opt.before_build()
+ end
+
-- do make and install
os.vrun("make -j4")
os.vrun("make install")