#                                                                    -*-perl-*-

$description = "Test the MAKE_RESTARTS variable.";

# Test basic capability

run_make_test('
all: ; @:
$(info MAKE_RESTARTS=$(MAKE_RESTARTS))
include foo.x
foo.x: ; @touch $@
',
              '', 'MAKE_RESTARTS=
MAKE_RESTARTS=1');

rmfiles('foo.x');

# Test multiple restarts

run_make_test('
all: ; @:
$(info MAKE_RESTARTS=$(MAKE_RESTARTS))
include foo.x
foo.x: ; @echo "include bar.x" > $@
bar.x: ; @touch $@
',
              '', 'MAKE_RESTARTS=
MAKE_RESTARTS=1
MAKE_RESTARTS=2');

rmfiles('foo.x', 'bar.x');

# Test multiple restarts and make sure the variable is cleaned up

run_make_test('
.RECIPEPREFIX = >
recurse:
> @echo recurse MAKE_RESTARTS=$$MAKE_RESTARTS
> @$(MAKE) -f #MAKEFILE# all
all: ; @echo all MAKE_RESTARTS=$$MAKE_RESTARTS
$(info MAKE_RESTARTS=$(MAKE_RESTARTS))
include foo.x
foo.x: ; @echo "include bar.x" > $@
bar.x: ; @touch $@
',
              '', "MAKE_RESTARTS=
MAKE_RESTARTS=1
MAKE_RESTARTS=2
recurse MAKE_RESTARTS=
#MAKE#[1]: Entering directory '#PWD#'
MAKE_RESTARTS=
all MAKE_RESTARTS=
#MAKE#[1]: Leaving directory '#PWD#'");

rmfiles('foo.x', 'bar.x');

1;
