From 7e8058bc399ede42b8eb57d62694015b4c0401e0 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Wed, 16 Feb 2022 18:08:18 -0300 Subject: builtin: always respect CC, CFLAGS, LDFLAGS There were already workarounds in place for some platforms. This should make the behavior consistent. Fixes #429. --- src/luarocks/build/builtin.lua | 8 ++++++-- src/luarocks/core/cfg.lua | 10 ++++------ 2 files changed, 10 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/luarocks/build/builtin.lua b/src/luarocks/build/builtin.lua index 98db29da..d8826851 100644 --- a/src/luarocks/build/builtin.lua +++ b/src/luarocks/build/builtin.lua @@ -157,6 +157,10 @@ function builtin.run(rockspec, no_install) local variables = rockspec.variables local checked_lua_h = false + for _, var in ipairs{ "CC", "CFLAGS", "LDFLAGS" } do + variables[var] = os.getenv(var) or variables[var] or "" + end + local function add_flags(extras, flag, flags) if flags then if type(flags) ~= "table" then @@ -182,7 +186,7 @@ function builtin.run(rockspec, no_install) add_flags(extras, "-l%s", libraries) extras[#extras+1] = dir.path(variables.LUA_LIBDIR, variables.LUALIB) extras[#extras+1] = "-l" .. (variables.MSVCRT or "m") - local ok = execute(variables.LD.." "..variables.LIBFLAG, "-o", library, unpack(extras)) + local ok = execute(variables.LD.." "..variables.LDFLAGS, variables.LIBFLAG, "-o", library, unpack(extras)) return ok end --[[ TODO disable static libs until we fix the conflict in the manifest, which will take extending the manifest format. @@ -250,7 +254,7 @@ function builtin.run(rockspec, no_install) extras[#extras+1] = "-L"..variables.LUA_LIBDIR extras[#extras+1] = "-llua" end - return execute(variables.LD.." "..variables.LIBFLAG, "-o", library, unpack(extras)) + return execute(variables.LD.." "..variables.LDFLAGS, variables.LIBFLAG, "-o", library, unpack(extras)) end compile_static_library = function(library, objects, libraries, libdirs, name) -- luacheck: ignore 211 local ok = execute(variables.AR, "rc", library, unpack(objects)) diff --git a/src/luarocks/core/cfg.lua b/src/luarocks/core/cfg.lua index fca315e0..c88d3892 100644 --- a/src/luarocks/core/cfg.lua +++ b/src/luarocks/core/cfg.lua @@ -477,19 +477,17 @@ local function make_defaults(lua_version, target_cpu, platforms, home) if platforms.freebsd then defaults.arch = "freebsd-"..target_cpu defaults.gcc_rpath = false - defaults.variables.CC = os.getenv("CC") or "cc" - defaults.variables.CFLAGS = os.getenv("CFLAGS") or defaults.variables.CFLAGS + defaults.variables.CC = "cc" defaults.variables.LD = defaults.variables.CC - defaults.variables.LIBFLAG = (os.getenv("LDFLAGS") or "").." -shared" + defaults.variables.LIBFLAG = "-shared" end if platforms.openbsd then defaults.arch = "openbsd-"..target_cpu defaults.gcc_rpath = false - defaults.variables.CC = os.getenv("CC") or "cc" - defaults.variables.CFLAGS = os.getenv("CFLAGS") or defaults.variables.CFLAGS + defaults.variables.CC = "cc" defaults.variables.LD = defaults.variables.CC - defaults.variables.LIBFLAG = (os.getenv("LDFLAGS") or "").." -shared" + defaults.variables.LIBFLAG = "-shared" end if platforms.netbsd then -- cgit v1.2.3-55-g6feb