# -*-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); &touch('b'); # Sometimes, on my Solaris 2.5.1 box with a NetApp filesystem NFS-mounted, # just touching b first then a isn't good enough: the nsec field in the # stat result shows b is _newer_ than a once every 5 or 6 tries!!! I've # no idea what this is about, but that's why there's a sleep(1) here... sleep(1); &touch('a'); sleep(1); &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;