% This file is part of Jiffy released under the MIT license.
|
|
% See the LICENSE file for more information.
|
|
%
|
|
% Only run the EQC checks when EQC is present.
|
|
|
|
HaveEQC = code:which(eqc) =/= non_existing,
|
|
|
|
ErlOpts = if not HaveEQC -> []; true ->
|
|
[{d, 'HAVE_EQC'}]
|
|
end,
|
|
|
|
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.
|