summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xmake/modules/package/tools/autoconf.lua19
1 files changed, 19 insertions, 0 deletions
diff --git a/xmake/modules/package/tools/autoconf.lua b/xmake/modules/package/tools/autoconf.lua
index 8a47bf8de..8d216bb25 100644
--- a/xmake/modules/package/tools/autoconf.lua
+++ b/xmake/modules/package/tools/autoconf.lua
@@ -49,8 +49,27 @@ function install(package, configs)
table.insert(argv, "--" .. name .. "=" .. value)
end
end
+
+ -- inherit flags from configs
+ local flags_prev = {}
+ for _, name in ipairs({"cflags", "cxxflags", "ldflags"}) do
+ local flags = package:config(name) or configs[name]
+ if flags then
+ flags_prev[name] = os.getenv(name:upper())
+ os.addenv(name:upper(), flags)
+ end
+ end
+
+ -- do configure
os.vrunv("./configure", argv)
+
+ -- do make and install
os.vrun("make -j4")
os.vrun("make install")
+
+ -- restore flags
+ for name, flags in pairs(flags_prev) do
+ os.setenv(name:upper(), flags)
+ end
end