anchor.diff:      %% check the extra src_dir was linked into the _build dir
       true = filelib:is_dir(filename:join([AppDir, "_build", "default", "lib", Name, "extra"])).
   
  -recompile_when_opts_change(Config) ->
  -    AppDir = ?config(apps, Config),
  -
  -    Name = rebar_test_utils:create_random_name("app1_"),
  -    Vsn = rebar_test_utils:create_random_vsn(),
  -    rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]),
  +recompile_when_hrl_changes(Config) ->
  +    AppDir = ?config(apps, Config),
  +
  +    Name = rebar_test_utils:create_random_name("app1_"),
  +    Vsn = rebar_test_utils:create_random_vsn(),
  +    rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]),
  +
  +
  +    ExtraSrc = <<"-module(test_header_include).\n"
  +                  "-export([main/0]).\n"
  +                  "-include(\"test_header_include.hrl\").\n"
  +                  "main() -> ?SOME_DEFINE.\n">>,
  +
  +    ExtraHeader = <<"-define(SOME_DEFINE, true).\n">>,
  +    HeaderFile = filename:join([AppDir, "src", "test_header_include.hrl"]),
  +    ok = file:write_file(filename:join([AppDir, "src", "test_header_include.erl"]), ExtraSrc),
  +    ok = file:write_file(HeaderFile, ExtraHeader),
   
       rebar_test_utils:run_and_check(Config, [], ["compile"], {ok, [{app, Name}]}),
   
  
positive.code: 
      timer:sleep(1000),
  
      rebar_test_utils:create_config(AppDir, [{erl_opts, [{d, some_define}]}]),
  
      rebar_test_utils:run_and_check(Config, [], ["compile"], {ok, [{app, Name}]}),
  
  
negative.code:          build_checkout_apps/1,
           build_checkout_deps/1,
           build_all_srcdirs/1,
           recompile_when_hrl_changes/1,
           recompile_when_opts_change/1,
           dont_recompile_when_opts_dont_change/1,
           dont_recompile_yrl_or_xrl/1,
  