| $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; |
| |
| |
| |
| |
| |
| |