diff options
| author | Hisham Muhammad <hisham@gobolinux.org> | 2022-04-11 16:15:15 -0300 |
|---|---|---|
| committer | Hisham Muhammad <hisham@gobolinux.org> | 2022-04-11 17:02:28 -0300 |
| commit | eddf776d64941454377f996733f96873cb79bcae (patch) | |
| tree | 9ca362c77bd1827feb872f8b67650821012a9d4d /binary/all_in_one | |
| parent | 21c84dad3ff4e0de10b813260b6a5247771d6754 (diff) | |
| download | luarocks-eddf776d64941454377f996733f96873cb79bcae.tar.gz luarocks-eddf776d64941454377f996733f96873cb79bcae.tar.bz2 luarocks-eddf776d64941454377f996733f96873cb79bcae.zip | |
Changes for building the all-in-one binary with Lua 5.4
Diffstat (limited to 'binary/all_in_one')
| -rwxr-xr-x | binary/all_in_one | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/binary/all_in_one b/binary/all_in_one index bfe9c974..34b84a2c 100755 --- a/binary/all_in_one +++ b/binary/all_in_one | |||
| @@ -164,7 +164,7 @@ local function write_hardcoded_module(dir) | |||
| 164 | LUA_BINDIR = if_platform("unix", cfg.variables.LUA_BINDIR), | 164 | LUA_BINDIR = if_platform("unix", cfg.variables.LUA_BINDIR), |
| 165 | LUA_INTERPRETER = if_platform("unix", cfg.lua_interpreter), | 165 | LUA_INTERPRETER = if_platform("unix", cfg.lua_interpreter), |
| 166 | } | 166 | } |
| 167 | 167 | ||
| 168 | local name = dir .. "/luarocks/core/hardcoded.lua" | 168 | local name = dir .. "/luarocks/core/hardcoded.lua" |
| 169 | persist.save_as_module(name, hardcoded) | 169 | persist.save_as_module(name, hardcoded) |
| 170 | return name | 170 | return name |
| @@ -335,7 +335,7 @@ static int pmain(lua_State *L) { | |||
| 335 | /* error handler, from luac */ | 335 | /* error handler, from luac */ |
| 336 | static int msghandler (lua_State *L) { | 336 | static int msghandler (lua_State *L) { |
| 337 | /* is error object not a string? */ | 337 | /* is error object not a string? */ |
| 338 | const char *msg = lua_tostring(L, 1); | 338 | const char *msg = lua_tostring(L, 1); |
| 339 | if (msg == NULL) { | 339 | if (msg == NULL) { |
| 340 | /* does it have a metamethod that produces a string */ | 340 | /* does it have a metamethod that produces a string */ |
| 341 | if (luaL_callmeta(L, 1, "__tostring") && lua_type(L, -1) == LUA_TSTRING) { | 341 | if (luaL_callmeta(L, 1, "__tostring") && lua_type(L, -1) == LUA_TSTRING) { |
| @@ -393,7 +393,7 @@ local function generate(main_program, dir, skip) | |||
| 393 | local program_name = main_program:gsub(".*/", "") | 393 | local program_name = main_program:gsub(".*/", "") |
| 394 | 394 | ||
| 395 | local hardcoded = write_hardcoded_module(dir) | 395 | local hardcoded = write_hardcoded_module(dir) |
| 396 | 396 | ||
| 397 | local out = {} | 397 | local out = {} |
| 398 | table.insert(out, ([[static const char* progname = %q;]]):format(program_name)) | 398 | table.insert(out, ([[static const char* progname = %q;]]):format(program_name)) |
| 399 | table.insert(out, c_preamble) | 399 | table.insert(out, c_preamble) |
| @@ -404,7 +404,7 @@ local function generate(main_program, dir, skip) | |||
| 404 | table.insert(out, c_main) | 404 | table.insert(out, c_main) |
| 405 | 405 | ||
| 406 | os.remove(hardcoded) | 406 | os.remove(hardcoded) |
| 407 | 407 | ||
| 408 | local c_filename = TARGET_DIR .. "/" .. program_name .. ".exe.c" | 408 | local c_filename = TARGET_DIR .. "/" .. program_name .. ".exe.c" |
| 409 | local fd = io.open(c_filename, "w") | 409 | local fd = io.open(c_filename, "w") |
| 410 | fd:write(reindent_c(table.concat(out, "\n"))) | 410 | fd:write(reindent_c(table.concat(out, "\n"))) |
| @@ -412,7 +412,7 @@ local function generate(main_program, dir, skip) | |||
| 412 | 412 | ||
| 413 | deps.check_lua_incdir(cfg.variables) | 413 | deps.check_lua_incdir(cfg.variables) |
| 414 | deps.check_lua_libdir(cfg.variables) | 414 | deps.check_lua_libdir(cfg.variables) |
| 415 | 415 | ||
| 416 | cmd = table.concat(filter_in(nonnull, { | 416 | cmd = table.concat(filter_in(nonnull, { |
| 417 | CC, "-o", TARGET_DIR .. "/" .. program_name .. ".exe", | 417 | CC, "-o", TARGET_DIR .. "/" .. program_name .. ".exe", |
| 418 | "-I", cfg.variables.LUA_INCDIR, | 418 | "-I", cfg.variables.LUA_INCDIR, |
| @@ -426,6 +426,7 @@ local function generate(main_program, dir, skip) | |||
| 426 | cfg.variables.LUA_LIBDIR .. "/" .. cfg.variables.LUALIB:gsub("%.so.*$", ".a"), | 426 | cfg.variables.LUA_LIBDIR .. "/" .. cfg.variables.LUALIB:gsub("%.so.*$", ".a"), |
| 427 | if_platform("unix", "-ldl"), | 427 | if_platform("unix", "-ldl"), |
| 428 | if_platform("unix", "-lpthread"), | 428 | if_platform("unix", "-lpthread"), |
| 429 | if_platform("windows", "-mwindows"), | ||
| 429 | "-lm" | 430 | "-lm" |
| 430 | }), " ") | 431 | }), " ") |
| 431 | print(cmd) | 432 | print(cmd) |
| @@ -445,7 +446,7 @@ local function main() | |||
| 445 | path.use_tree(LUA_MODULES) | 446 | path.use_tree(LUA_MODULES) |
| 446 | 447 | ||
| 447 | local CONFIG_FILE = CONFIG_DIR .. "/config-" .. cfg.lua_version .. ".lua" | 448 | local CONFIG_FILE = CONFIG_DIR .. "/config-" .. cfg.lua_version .. ".lua" |
| 448 | 449 | ||
| 449 | fs.make_dir(CONFIG_DIR) | 450 | fs.make_dir(CONFIG_DIR) |
| 450 | 451 | ||
| 451 | persist.save_from_table(CONFIG_FILE, { | 452 | persist.save_from_table(CONFIG_FILE, { |
| @@ -456,22 +457,23 @@ local function main() | |||
| 456 | LD = fs.current_dir() .. "/binary/static-gcc", | 457 | LD = fs.current_dir() .. "/binary/static-gcc", |
| 457 | LIB_EXTENSION = "a", | 458 | LIB_EXTENSION = "a", |
| 458 | LIBFLAG = "-static", | 459 | LIBFLAG = "-static", |
| 460 | PWD = "pwd", | ||
| 459 | }, | 461 | }, |
| 460 | platforms = if_platform("windows", { "windows", "win32", "mingw32" }), | 462 | platforms = if_platform("windows", { "windows", "win32", "mingw32" }), |
| 461 | external_deps_dirs = if_platform("windows", { CROSSCOMPILER_SYSROOT, fs.current_dir() .. "/windows-deps-" .. TRIPLET }), | 463 | external_deps_dirs = if_platform("windows", { CROSSCOMPILER_SYSROOT, fs.current_dir() .. "/windows-deps-" .. TRIPLET }), |
| 462 | }) | 464 | }) |
| 463 | 465 | ||
| 464 | local dependencies = { | 466 | local dependencies = { |
| 465 | md5 = "md5", | 467 | md5 = "md5", |
| 466 | luasec = "./binary/luasec-0.8.1-2.rockspec", | 468 | luasec = "./binary/luasec-1.0.2-1.rockspec", |
| 467 | luaposix = if_platform("unix", "./binary/luaposix-34.0.4-1.rockspec"), | ||
| 468 | luasocket = "luasocket", | ||
| 469 | ["lua-zlib"] = "./binary/lua-zlib-1.2-0.rockspec", | 469 | ["lua-zlib"] = "./binary/lua-zlib-1.2-0.rockspec", |
| 470 | ["lua-bz2"] = "./binary/lua-bz2-0.1.0-1.rockspec", | 470 | ["lua-bz2"] = "./binary/lua-bz2-0.2.1-1.rockspec", |
| 471 | luaposix = if_platform("unix", "./binary/luaposix-35.1-1.rockspec"), | ||
| 472 | luasocket = "luasocket", | ||
| 471 | luafilesystem = "luafilesystem", | 473 | luafilesystem = "luafilesystem", |
| 472 | dkjson = "dkjson", | 474 | dkjson = "dkjson", |
| 473 | } | 475 | } |
| 474 | 476 | ||
| 475 | fs.make_dir(LUA_MODULES) | 477 | fs.make_dir(LUA_MODULES) |
| 476 | for name, arg in pairs(dependencies) do | 478 | for name, arg in pairs(dependencies) do |
| 477 | print("----------------------------------------------------------------") | 479 | print("----------------------------------------------------------------") |
