Home | History | Annotate | Download | only in options
      1 #                                                                    -*-perl-*-
      2 $description = "Test the -n option.\n";
      3 
      4 $details = "Try various uses of -n and ensure they all give the correct results.\n";
      5 
      6 open(MAKEFILE, "> $makefile");
      7 
      8 # The Contents of the MAKEFILE ...
      9 
     10 print MAKEFILE <<'EOMAKE';
     11 
     12 final: intermediate ; echo >> $@
     13 intermediate: orig ; echo >> $@
     14 
     15 EOMAKE
     16 
     17 close(MAKEFILE);
     18 
     19 &touch('orig');
     20 
     21 # TEST 0
     22 
     23 &run_make_with_options($makefile, "", &get_logfile);
     24 $answer = "echo >> intermediate\necho >> final\n";
     25 &compare_output($answer, &get_logfile(1));
     26 
     27 # TEST 1
     28 
     29 &run_make_with_options($makefile, "-Worig -n", &get_logfile);
     30 $answer = "echo >> intermediate\necho >> final\n";
     31 &compare_output($answer, &get_logfile(1));
     32 
     33 unlink('orig', 'intermediate', 'final');
     34 
     35 # We consider the actual updated timestamp of targets with all
     36 # recursive commands, even with -n.
     37 
     38 $makefile2 = &get_tmpfile;
     39 
     40 open(MAKEFILE, "> $makefile2");
     41 
     42 print MAKEFILE <<'EOF';
     43 .SUFFIXES:
     44 BAR =     # nothing
     45 FOO = +$(BAR)
     46 a: b; echo > $@
     47 b: c; $(FOO)
     48 EOF
     49 
     50 close(MAKEFILE);
     51 
     52 &utouch(-20, 'b');
     53 &utouch(-10, 'a');
     54 &touch('c');
     55 
     56 # TEST 2
     57 
     58 &run_make_with_options($makefile2, "", &get_logfile);
     59 $answer = "$make_name: `a' is up to date.\n";
     60 &compare_output($answer, &get_logfile(1));
     61 
     62 # TEST 3
     63 
     64 &run_make_with_options($makefile2, "-n", &get_logfile);
     65 $answer = "$make_name: `a' is up to date.\n";
     66 &compare_output($answer, &get_logfile(1));
     67 
     68 unlink('a', 'b', 'c');
     69 
     70 1;
     71