File: dash-t

package info (click to toggle)
make-doc-non-dfsg 4.4.1-1
  • links: PTS, VCS
  • area: non-free
  • in suites: forky, sid, trixie
  • size: 9,632 kB
  • sloc: ansic: 31,255; sh: 5,213; perl: 1,612; makefile: 160; lisp: 26; sed: 16
file content (58 lines) | stat: -rw-r--r-- 1,590 bytes parent folder | download | duplicates (34)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#                                                                    -*-perl-*-

$description = "Test the -t option.\n";

$details = "Look out for regressions of prior bugs related to -t.\n";
# That means, nobody has even tried to make the tests below comprehensive

# TEST 0
# bug reported by Henning Makholm <henning@makholm.net> on 2001-11-03:
#   make 3.79.1 touches only interm-[ab] but reports final-[a] as
#   'up to date' without touching them.
# The 'obvious' fix didn't work for double-colon rules, so pay special
# attention to them.

open(MAKEFILE, "> $makefile");
print MAKEFILE <<'EOMAKE';
final-a: interm-a ; echo >> $@
final-b: interm-b ; echo >> $@
interm-a:: orig1-a ; echo >> $@
interm-a:: orig2-a ; echo >> $@
interm-b:: orig1-b ; echo >> $@
interm-b:: orig2-b ; echo >> $@
EOMAKE
close(MAKEFILE);

&utouch(-30, 'orig1-a','orig2-b');
&utouch(-20, 'interm-a','interm-b');
&utouch(-10, 'final-a','final-b');
&touch('orig2-a','orig1-b');

&run_make_with_options($makefile, "-t final-a final-b", &get_logfile);
$answer = "touch interm-a\ntouch final-a\ntouch interm-b\ntouch final-b\n";
&compare_output($answer, &get_logfile(1));

unlink('orig1-a', 'orig2-a', 'interm-a', 'final-a');
unlink('orig1-b', 'orig2-b', 'interm-b', 'final-b');

# TEST 1
# -t should not touch files with no commands.

$makefile2 = &get_tmpfile;

open(MAKEFILE, "> $makefile2");
print MAKEFILE <<'EOMAKE';

PHOOEY: xxx
xxx: ; @:

EOMAKE
close(MAKEFILE);

&run_make_with_options($makefile2, "-t", &get_logfile);
$answer = "touch xxx\n";
&compare_output($answer, &get_logfile(1));

unlink('xxx');

1;