anchor.diff:  %% Supported configuration variables:
   %%
   %% * port_sources - Erlang list of files and/or wildcard strings to be compiled
  +%%
  +%% * so_specs  - Erlang list of tuples of the form {"priv/so_name.so", ["c_src/object_file_name.o"]} useful for
  +%%               building multiple *.so files.
   %%
   %% * port_envs - Erlang list of key/value pairs which will control the environment when
   %%               running the compiler and linker. By default, the following variables
  
positive.code:     rebar_file_utils:delete_each([source_to_bin(S) || S <- Sources]),
  
      %% Delete the .so file
      rebar_file_utils:delete_each([so_name(Config, AppFile)]),
  
      %% Run the cleanup script, if it exists
      run_cleanup_hook(Config).
  
negative.code: expand_sources([Spec | Rest], Acc) ->
      Acc2 = filelib:wildcard(Spec) ++ Acc,
      expand_sources(Rest, Acc2).
      
  expand_objects(Sources) ->
    lists:map(fun(File) ->
        filename:join([filename:dirname(File),filename:basename(File) ++ ".o"])
      end, Sources).
  
  run_precompile_hook(Config, Env) ->
      case rebar_config:get(Config, port_pre_script, undefined) of
  