mirror of
https://git.savannah.gnu.org/git/make.git
synced 2025-01-01 09:50:31 +00:00
65 lines
1 KiB
Text
65 lines
1 KiB
Text
|
# -*-perl-*-
|
||
|
$description = "Tests VPATH+/GPATH functionality.";
|
||
|
|
||
|
$details = "";
|
||
|
|
||
|
$VP = "$workdir$pathsep";
|
||
|
|
||
|
open(MAKEFILE,"> $makefile");
|
||
|
|
||
|
# The Contents of the MAKEFILE ...
|
||
|
|
||
|
print MAKEFILE "VPATH = $VP\n";
|
||
|
|
||
|
print MAKEFILE <<'EOMAKE';
|
||
|
|
||
|
GPATH = $(VPATH)
|
||
|
|
||
|
.SUFFIXES: .a .b .c .d
|
||
|
.PHONY: general rename notarget intermediate
|
||
|
|
||
|
%.a:
|
||
|
%.b:
|
||
|
%.c:
|
||
|
%.d:
|
||
|
|
||
|
%.a : %.b ; cat $^ > $@
|
||
|
%.b : %.c ; cat $^ > $@
|
||
|
%.c :: %.d ; cat $^ > $@
|
||
|
|
||
|
# General testing info:
|
||
|
|
||
|
general: foo.b
|
||
|
foo.b: foo.c bar.c
|
||
|
|
||
|
EOMAKE
|
||
|
|
||
|
close(MAKEFILE);
|
||
|
|
||
|
@touchedfiles = ();
|
||
|
|
||
|
sub touchfiles {
|
||
|
foreach (@_) {
|
||
|
($f = $_) =~ s,VP/,$VP,g;
|
||
|
&touch($f);
|
||
|
push(@touchedfiles, $f);
|
||
|
sleep(1);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# Run the general-case test
|
||
|
|
||
|
&touchfiles("VP/foo.d", "VP/bar.d", "VP/foo.c", "VP/bar.c", "foo.b", "bar.d");
|
||
|
|
||
|
&run_make_with_options($makefile,"general",&get_logfile());
|
||
|
|
||
|
push(@touchedfiles, "bar.c");
|
||
|
|
||
|
$answer = "$make_name: Nothing to be done for `general'.\n";
|
||
|
|
||
|
&compare_output($answer,&get_logfile(1));
|
||
|
|
||
|
unlink(@touchedfiles) unless $keep;
|
||
|
|
||
|
1;
|