|
|
@ -9,10 +9,31 @@ ErlOpts = if not HaveEQC -> []; true -> |
|
|
|
[{d, 'HAVE_EQC'}] |
|
|
|
end, |
|
|
|
|
|
|
|
case lists:keyfind(erl_opts, 1, CONFIG) of |
|
|
|
Config1 = case lists:keyfind(erl_opts, 1, CONFIG) of |
|
|
|
{erl_opts, Opts} -> |
|
|
|
NewOpts = {erl_opts, Opts ++ ErlOpts}, |
|
|
|
lists:keyreplace(erl_opts, 1, CONFIG, NewOpts); |
|
|
|
false -> |
|
|
|
CONFIG ++ [{erl_opts, ErlOpts}] |
|
|
|
end, |
|
|
|
|
|
|
|
case os:type() of |
|
|
|
{unix, _} -> |
|
|
|
CC = case os:getenv("CC") of |
|
|
|
false -> "cc"; |
|
|
|
Else -> Else |
|
|
|
end, |
|
|
|
FLTO_CHECK = "echo 'int main(int argc, char *argv[]) {return 0;}' | " |
|
|
|
++ CC ++ " -c -x c -o /dev/null -flto -", |
|
|
|
case os:cmd(FLTO_CHECK) of |
|
|
|
[] -> |
|
|
|
{port_env, PortEnv} = lists:keyfind(port_env, 1, Config1), |
|
|
|
NewFlag = {".*", "FLTO_FLAG", "-flto"}, |
|
|
|
NewPortEnv = lists:keyreplace("FLTO_FLAG", 2, PortEnv, NewFlag), |
|
|
|
lists:keyreplace(port_env, 1, Config1, {port_env, NewPortEnv}); |
|
|
|
_ -> |
|
|
|
Config1 |
|
|
|
end; |
|
|
|
_ -> |
|
|
|
Config1 |
|
|
|
end. |