| # -*-perl-*- | |
| $description = "The following test creates a makefile to test the | |
| simple functionality of make. It mimics the | |
| rebuilding of a product with dependencies. | |
| It also tests the simple definition of VPATH."; | |
| open(MAKEFILE,"> $makefile"); | |
| print MAKEFILE <<EOF; | |
| VPATH = work | |
| edit: main.o kbd.o commands.o display.o \\ | |
| insert.o | |
| \t\@echo cc -o edit main.o kbd.o commands.o display.o \\ | |
| insert.o | |
| main.o : main.c defs.h | |
| \t\@echo cc -c main.c | |
| kbd.o : kbd.c defs.h command.h | |
| \t\@echo cc -c kbd.c | |
| commands.o : command.c defs.h command.h | |
| \t\@echo cc -c commands.c | |
| display.o : display.c defs.h buffer.h | |
| \t\@echo cc -c display.c | |
| insert.o : insert.c defs.h buffer.h | |
| \t\@echo cc -c insert.c | |
| EOF | |
| close(MAKEFILE); | |
| mkdir('work'); | |
| @files_to_touch = ("work${pathsep}main.c","work${pathsep}defs.h", | |
| "work${pathsep}kbd.c","work${pathsep}command.h", | |
| "work${pathsep}commands.c","work${pathsep}display.c", | |
| "work${pathsep}buffer.h","work${pathsep}insert.c", | |
| "work${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 main.c\ncc -c kbd.c\ncc -c commands.c\ncc -c display.c | |
| cc -c insert.c\ncc -o edit main.o kbd.o commands.o display.o insert.o\n"; | |
| # COMPARE RESULTS | |
| if (&compare_output($answer,&get_logfile(1))) { | |
| unlink @files_to_touch; | |
| } | |
| 1; |