#                                                                    -*-perl-*-

$description = "The following tests the use of a PHONY target.  It makes\n"
              ."sure that the rules under a target get executed even if\n"
              ."a filename of the same name of the target exists in the\n"
              ."directory.\n";

$details = "This makefile in this test declares the target clean to be a \n"
          ."PHONY target.  We then create a file named \"clean\" in the \n"
          ."directory.  Although this file exists, the rule under the target\n"
          ."clean should still execute because of it's phony status.";

$example = "EXAMPLE_FILE";

open(MAKEFILE,"> $makefile");

# The Contents of the MAKEFILE ...

print MAKEFILE ".PHONY : clean \n";
print MAKEFILE "all: \n";
print MAKEFILE "\t\@echo This makefile did not clean the dir ... good\n";
print MAKEFILE "clean: \n";
print MAKEFILE "\t$delete_command $example clean\n";

# END of Contents of MAKEFILE

close(MAKEFILE);

&touch($example);

# Create a file named "clean".  This is the same name as the target clean
# and tricks the target into thinking that it is up to date.  (Unless you
# use the .PHONY target.
&touch("clean");

$answer = "$delete_command $example clean\n";
&run_make_with_options($makefile,"clean",&get_logfile);

if (-f $example) {
  $test_passed = 0;
}

&compare_output($answer,&get_logfile(1));

1;









