$description = "The following test creates a makefile to test the \n"
              ."vpath directive which allows you to specify a search \n"
              ."path for a particular class of filenames, those that\n"
              ."match a particular pattern.";

$details = "This tests the vpath directive by specifying search directories\n"
         ."for one class of filenames with the form: vpath pattern directories"
         ."\nIn this test, we specify the working directory for all files\n"
         ."that end in c or h.  We also test the variables $@ (which gives\n"
         ."target name) and $^ (which is a list of all dependencies \n"
         ."including the directories in which they were found).  It also\n"
         ."uses the function firstword used to extract just the first\n"
         ."dependency from the entire list.";

open(MAKEFILE,"> $makefile");

# The Contents of the MAKEFILE ...

print MAKEFILE "vpath %.c foo\n";
print MAKEFILE "vpath %.c $workdir\n";
print MAKEFILE "vpath %.h $workdir\n";
print MAKEFILE "objects = main.o kbd.o commands.o display.o insert.o\n";
print MAKEFILE "edit:  \$(objects)\n";
print MAKEFILE "\t\@echo cc -o \$@ \$^\n";
print MAKEFILE "main.o : main.c defs.h\n";
print MAKEFILE "\t\@echo cc -c \$(firstword \$^)\n";
print MAKEFILE "kbd.o : kbd.c defs.h command.h\n";
print MAKEFILE "\t\@echo cc -c kbd.c\n";
print MAKEFILE "commands.o : command.c defs.h command.h\n";
print MAKEFILE "\t\@echo cc -c commands.c\n";
print MAKEFILE "display.o : display.c defs.h buffer.h\n";
print MAKEFILE "\t\@echo cc -c display.c\n";
print MAKEFILE "insert.o : insert.c defs.h buffer.h\n";
print MAKEFILE "\t\@echo cc -c insert.c\n";

# END of Contents of MAKEFILE

close(MAKEFILE);


@files_to_touch = ("$workdir${pathsep}main.c","$workdir${pathsep}defs.h",
               "$workdir${pathsep}kbd.c","$workdir${pathsep}command.h",
               "$workdir${pathsep}commands.c","$workdir${pathsep}display.c",
               "$workdir${pathsep}buffer.h","$workdir${pathsep}insert.c",
	       "$workdir${pathsep}command.c");

&touch(@files_to_touch);

&run_make_with_options($makefile,"",&get_logfile);

# Create the answer to what should be produced by this Makefile
$answer = "cc -c $workdir${pathsep}main.c\ncc -c kbd.c\ncc -c commands.c\n"
         ."cc -c display.c\n"
         ."cc -c insert.c\ncc -o edit main.o kbd.o commands.o display.o "
         ."insert.o\n";

if (&compare_output($answer,&get_logfile(1)))
{
  unlink @files_to_touch;
}

1;
