#                                                              -*-mode: perl-*-

$description = "Test GNU make's auto-reinvocation feature.";

$details = "\
If the makefile or one it includes can be rebuilt then it is, and make
is reinvoked.  We create a rule to rebuild the makefile from a temp
file, then touch the temp file to make it newer than the makefile.";

$omkfile = $makefile;

&utouch(-600, 'incl.mk');
# For some reason if we don't do this then the test fails for systems
# with sub-second timestamps, maybe + NFS?  Not sure.
&utouch(-1, 'incl-1.mk');

run_make_test('
all: ; @echo running rules.

#MAKEFILE# incl.mk: incl-1.mk
	@echo rebuilding $@
	@echo >> $@

include incl.mk',
              '', "rebuilding incl.mk\nrunning rules.\n");

# Make sure updating the makefile itself also works

&utouch(-600, $omkfile);

run_make_test(undef, '', "rebuilding #MAKEFILE#\nrunning rules.\n");

&rmfiles('incl.mk', 'incl-1.mk');


# In this test we create an included file that's out-of-date, but then
# the rule doesn't update it.  Make shouldn't re-exec.

&utouch(-600, 'b','a');
#&utouch(-10, 'a');
&touch('c');

run_make_test('
SHELL = /bin/sh

all: ; @echo hello

a : b ; echo >> $@

b : c ; [ -f $@ ] || echo >> $@

c: ; echo >> $@

include $(F)',
              'F=a', "[ -f b ] || echo >> b\nhello\n");

# Now try with the file we're not updating being the actual file we're
# including: this and the previous one test different parts of the code.

run_make_test(undef, "F=b", "[ -f b ] || echo >> b\nhello\n")

&rmfiles('a','b','c');

# This tells the test driver that the perl test script executed properly.
1;
