1#                                                                    -*-perl-*-
2$description = "Tests VPATH+/GPATH functionality.";
3
4$details = "";
5
6$VP = "$workdir$pathsep";
7
8open(MAKEFILE,"> $makefile");
9
10# The Contents of the MAKEFILE ...
11
12print MAKEFILE "VPATH = $VP\n";
13
14print MAKEFILE <<'EOMAKE';
15
16GPATH = $(VPATH)
17
18.SUFFIXES: .a .b .c .d
19.PHONY: general rename notarget intermediate
20
21%.a:
22%.b:
23%.c:
24%.d:
25
26%.a : %.b ; cat $^ > $@
27%.b : %.c ; cat $^ > $@
28%.c :: %.d ; cat $^ > $@
29
30# General testing info:
31
32general: foo.b
33foo.b: foo.c bar.c
34
35EOMAKE
36
37close(MAKEFILE);
38
39@touchedfiles = ();
40
41$off = -500;
42
43sub touchfiles {
44  foreach (@_) {
45    ($f = $_) =~ s,VP/,$VP,g;
46    &utouch($off, $f);
47    $off += 10;
48    push(@touchedfiles, $f);
49  }
50}
51
52# Run the general-case test
53
54&touchfiles("VP/foo.d", "VP/bar.d", "VP/foo.c", "VP/bar.c", "foo.b", "bar.d");
55
56&run_make_with_options($makefile,"general",&get_logfile());
57
58push(@touchedfiles, "bar.c");
59
60$answer = "$make_name: Nothing to be done for `general'.\n";
61
62&compare_output($answer,&get_logfile(1));
63
64unlink(@touchedfiles) unless $keep;
65
661;
67