anchor.diff:  %%                           "$CFLAGS -X86Options"}]}
   %%
   
  -%% TODO: reconsider keeping both sources and objects once
  -%%       support for deprecated options has been remove.
  -%%       remove [] as valid value for sources, objects, and opts
  -%%       when removing deprecated options.
   -record(spec, {type::'drv' | 'exe',
                  target::file:filename(),
  -               sources = [] :: [file:filename(), ...] | [],
  -               objects = [] :: [file:filename(), ...] | [],
  +               sources = [] :: [file:filename(), ...],
  +               objects = [] :: [file:filename(), ...],
                  opts = [] ::list() | []}).
   
  -compile(Config0, AppFile) ->
  -    rebar_utils:deprecated(port_sources, port_specs, Config0, "soon"),
  -    rebar_utils:deprecated(so_name, port_specs, Config0, "soon"),
  -    rebar_utils:deprecated(so_specs, port_specs, Config0, "soon"),
  -
  -    %% TODO: remove SpecType and OldSources make get_specs/2
  -    %%       return list(#spec{}) when removing deprecated options
  -    {Config, {SpecType, {OldSources, Specs}}} = get_specs(Config0, AppFile),
  -
  -    case {SpecType, OldSources, Specs} of
  -        {old, [], _} ->
  -            ok;                                 % old specs empty
  -        {new, [], []} ->
  -            ok;                                 % port_specs empty
  -
  -        _ ->                                    % have old/new specs
  -
  +compile(Config, _AppFile) ->
  +    case get_specs(Config) of
  +        [] ->
  +            ok;
  +        Specs ->
               SharedEnv = rebar_config:get_env(Config, ?MODULE),
   
               %% Compile each of the sources
  -            NewBins = compile_sources(OldSources, Specs, SharedEnv),
  +            NewBins = compile_sources(Specs, SharedEnv),
   
               %% Make sure that the target directories exist
               ?INFO("Using specs ~p\n", [Specs]),
  
positive.code:               end, Specs)
      end.
  
  clean(Config, AppFile) ->
      %% TODO: remove SpecType and OldSources make get_specs/2
      %%       return list(#spec{}) when removing deprecated options
      {Config1, {SpecType, {OldSources, Specs}}} = get_specs(Config, AppFile),
  
      case {SpecType, OldSources, Specs} of
          {old, [], _} ->
              ok;                                 % old specs empty
          {new, [], []} ->
              ok;                                 % port_specs empty
  
          _ ->                                    % have old/new specs
  
              lists:foreach(fun(#spec{target=Target, objects=Objects}) ->
                                    rebar_file_utils:delete_each([Target]),
                                    rebar_file_utils:delete_each(Objects)
                            end, Specs)
      end,
      {ok, Config1}.
  
  setup_env(Config) ->
      setup_env(Config, []).
  
negative.code:         match -> true;
          nomatch -> false
      end.
  
  %%
  %% Filter a list of env vars such that only those which match the provided
  