anchor.diff:      %% merge with the default for this operating system. This enables
       %% max flexibility for users.
       DefaultEnv  = filter_env(default_env(), []),
  -    RawPortEnv = rebar_config:get_list(Config, port_env, []),
  +
  +    %% Get any port-specific envs; use port_env first and then fallback
  +    %% to port_envs for compatibility
  +    RawPortEnv = rebar_config:get_list(Config, port_env,
  +                          rebar_config:get_list(Config, port_envs, [])),
  +
       PortEnv = filter_env(RawPortEnv, []),
       Defines = get_defines(Config),
       OverrideEnv = Defines ++ PortEnv ++ filter_env(ExtraEnv, []),
  
positive.code: %% == port_specs ==
  %%
  
  get_specs(Config) ->
      PortSpecs = rebar_config:get_local(Config, port_specs, []),
      Filtered = filter_port_specs(PortSpecs),
      OsType = os:type(),
      [get_port_spec(Config, OsType, Spec) || Spec <- Filtered].
  
  filter_port_specs(Specs) ->
      [S || S <- Specs, filter_port_spec(S)].
  
negative.code:                objects = [] :: [file:filename(), ...],
                 opts = [] ::list() | []}).
  
  compile(Config, AppFile) ->
      case get_specs(Config, AppFile) of
          [] ->
              ok;
          Specs ->
  