| $description = "The following test creates a makefile to test that a \n " | |
| ."rule with multiple targets is equivalent to writing \n" | |
| ."many rules, each with one target, and all identical aside\n" | |
| ."from that."; | |
| $details = "A makefile is created with one rule and two targets. Make \n" | |
| ."is called twice, once for each target, and the output which \n" | |
| ."contains the target name with \$@ is looked at for the changes.\n" | |
| ."This test also tests the substitute function by replacing \n" | |
| ."the word output with nothing in the target name giving either\n" | |
| ."an output of \"I am little\" or \"I am big\""; | |
| open(MAKEFILE,"> $makefile"); | |
| # The Contents of the MAKEFILE ... | |
| print MAKEFILE "bigoutput littleoutput: test.h\n"; | |
| print MAKEFILE "\t\@echo I am \$(subst output,,\$@)\n"; | |
| # END of Contents of MAKEFILE | |
| close(MAKEFILE); | |
| &touch("test.h"); | |
| &run_make_with_options($makefile,"bigoutput",&get_logfile); | |
| # Create the answer to what should be produced by this Makefile | |
| $answer = "I am big\n"; | |
| &compare_output($answer,&get_logfile(1)); | |
| &run_make_with_options($makefile,"littleoutput",&get_logfile); | |
| $answer = "I am little\n"; | |
| &compare_output($answer,&get_logfile(1)); | |
| unlink "test.h"; | |
| 1; | |