diff --git a/packages/l/lua/xmake.lua b/packages/l/lua/xmake.lua
index 9b4840f9b..b9c3edd99 100644
--- a/packages/l/lua/xmake.lua
+++ b/packages/l/lua/xmake.lua
@@ -10,8 +10,21 @@ package("lua")
     add_versions("5.2.4", "b9e2e4aad6789b3b63a056d442f7b39f0ecfca3ae0f1fc0ae4e9614401b69f4b")
     add_versions("5.1.5", "2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333")
 
+    on_load(function (package)
+        package:addvar("includedirs", "include/lua")
+    end)
+
     on_install(function (package)
-        os.cd("src")
+        io.writefile("xmake.lua", [[
+            target("lua")
+                set_kind("static")
+                add_files("src/*.c|lua.c|luac.c")
+                add_defines("LUA_COMPAT_5_2", "LUA_COMPAT_5_1")
+                if is_plat("linux") then
+                    add_defines("LUA_USE_LINUX")
+                end
+        ]])
         import("package.tools.xmake").install(package)
+        os.cp("src/*h", package:installdir("include/lua"))
     end)
 
diff --git a/packages/l/luajit/xmake.lua b/packages/l/luajit/xmake.lua
index fe6012cc3..b558c06c3 100644
--- a/packages/l/luajit/xmake.lua
+++ b/packages/l/luajit/xmake.lua
@@ -14,17 +14,22 @@ package("luajit")
     add_versions("2.0.4", "620fa4eb12375021bef6e4f237cbd2dd5d49e56beb414bee052c746beef1807d")
     add_versions("2.0.5", "874b1f8297c697821f561f9b73b57ffd419ed8f4278c82e05b48806d30c1e979")
 
+    on_load(function (package)
+        package:addvar("includedirs", "include/luajit")
+    end)
+
     on_install("windows", function (package)
         os.cd("src")
         os.vrun("msvcbuild.bat")
         os.cp("lua51.lib", package:installdir("lib"))
         os.cp("lua51.dll", package:installdir("lib"))
-        os.cp("*.h", package:installdir("include"))
+        os.cp("*.h", package:installdir("include/luajit"))
     end)
 
     on_install("macosx", "linux", function (package)
         io.gsub("./Makefile", "export PREFIX= /usr/local", "export PREFIX=" .. package:installdir())
         os.vrun("make")
-        os.vrun("make install")
+        os.cp("src/*.a", package:installdir("lib"))
+        os.cp("src/*.h", package:installdir("include/luajit"))
     end)