| # -*-perl-*- |
| $description = "Test the -n option.\n"; |
| |
| $details = "Try various uses of -n and ensure they all give the correct results.\n"; |
| |
| open(MAKEFILE, "> $makefile"); |
| |
| # The Contents of the MAKEFILE ... |
| |
| print MAKEFILE <<'EOMAKE'; |
| |
| final: intermediate ; echo >> $@ |
| intermediate: orig ; echo >> $@ |
| |
| EOMAKE |
| |
| close(MAKEFILE); |
| |
| &touch('orig'); |
| |
| # TEST 0 |
| |
| &run_make_with_options($makefile, "", &get_logfile); |
| $answer = "echo >> intermediate\necho >> final\n"; |
| &compare_output($answer, &get_logfile(1)); |
| |
| # TEST 1 |
| |
| &run_make_with_options($makefile, "-Worig -n", &get_logfile); |
| $answer = "echo >> intermediate\necho >> final\n"; |
| &compare_output($answer, &get_logfile(1)); |
| |
| unlink('orig', 'intermediate', 'final'); |
| |
| # We consider the actual updated timestamp of targets with all |
| # recursive commands, even with -n. |
| |
| $makefile2 = &get_tmpfile; |
| |
| open(MAKEFILE, "> $makefile2"); |
| |
| print MAKEFILE <<'EOF'; |
| .SUFFIXES: |
| BAR = # nothing |
| FOO = +$(BAR) |
| a: b; echo > $@ |
| b: c; $(FOO) |
| EOF |
| |
| close(MAKEFILE); |
| |
| &utouch(-20, 'b'); |
| &utouch(-10, 'a'); |
| &touch('c'); |
| |
| # TEST 2 |
| |
| &run_make_with_options($makefile2, "", &get_logfile); |
| $answer = "$make_name: `a' is up to date.\n"; |
| &compare_output($answer, &get_logfile(1)); |
| |
| # TEST 3 |
| |
| &run_make_with_options($makefile2, "-n", &get_logfile); |
| $answer = "$make_name: `a' is up to date.\n"; |
| &compare_output($answer, &get_logfile(1)); |
| |
| unlink('a', 'b', 'c'); |
| |
| 1; |