{_, ErlOpts} = lists:keyfind(erl_opts, 1, CONFIG).
Rel = try erlang:system_info(otp_release) of
    Vsn ->
        {match,[Maj]} = re:run(Vsn, "^R?([0-9]+)", [{capture,[1],list}]),
        list_to_integer(Maj)
    catch _:_ ->
        "OLD"
end,
Macros = if Rel < 19 ->
                 [{d, 'OLD_TIME_UNITS'}];
            true ->
                 []
         end,
CONFIG1 = lists:keystore(erl_opts, 1, CONFIG, {erl_opts, Macros ++ ErlOpts}),

IsRebar3 = erlang:function_exported(rebar3, main, 1),
case IsRebar3 of
  true ->
    CONFIG1;
  false ->
    URLs = [ {snappyer, "https://github.com/zmstone/snappyer"}
           , {crc32cer, "https://github.com/zmstone/crc32cer"}
           ],
    Rebar3Deps = proplists:get_value(deps, CONFIG1),
    Rebar2Deps =
      lists:map(
        fun({Name, URL}) ->
          Tag = proplists:get_value(Name, Rebar3Deps),
          {Name, ".*", {git, URL, {tag, Tag}}}
        end, URLs),
    lists:keyreplace(deps, 1, CONFIG1, {deps, Rebar2Deps})
end.
