summaryrefslogtreecommitdiff
path: root/xmake/scripts/base/makefile.lua
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/scripts/base/makefile.lua')
-rw-r--r--xmake/scripts/base/makefile.lua18
1 files changed, 14 insertions, 4 deletions
diff --git a/xmake/scripts/base/makefile.lua b/xmake/scripts/base/makefile.lua
index 934772fe5..ec5557c23 100644
--- a/xmake/scripts/base/makefile.lua
+++ b/xmake/scripts/base/makefile.lua
@@ -97,15 +97,22 @@ function makefile._make_object_for_static(file, target, srcfile, objfile)
elseif mode == "profile" then mode = ".p"
else mode = "" end
- -- get extractor name
+ -- get the extractor tool name
local toolname = platform.tool("ex")
if not toolname then
- utils.error("cannot get extractor!")
+ utils.error("cannot get extractor name!")
+ return false
+ end
+
+ -- find the tool file path
+ local toolpath = tools.find(toolname)
+ if not toolpath or not os.isfile(toolpath) then
+ utils.error("cannot get extractor path!")
return false
end
-- make command
- local cmd = string.format("xmake l extract \"%s\" %s %s > %s 2>&1", toolname, srcfile, objfile, makefile._LOGFILE)
+ local cmd = string.format("xmake l dispatcher \"%s\" \"%s\" extract %s %s > %s 2>&1", toolname, toolpath, srcfile, objfile, makefile._LOGFILE)
-- make head
file:write(string.format("%s:", objfile))
@@ -229,7 +236,10 @@ function makefile._make_target(file, name, target)
-- get the linker from the given kind
local l = linker.get(target.kind)
- if not l then return false end
+ if not l then
+ utils.error("cannot get linker with kind: %s", target.kind)
+ return false
+ end
-- make head
file:write(string.format("%s: %s\n", name, targetfile))