Home | History | Annotate | Line # | Download | only in variables
      1  1.1  christos #                                                                    -*-perl-*-
      2  1.1  christos 
      3  1.1  christos $description = "Test the MAKE_RESTARTS variable.";
      4  1.1  christos 
      5  1.1  christos # Test basic capability
      6  1.1  christos 
      7  1.1  christos run_make_test('
      8  1.1  christos all: ; @:
      9  1.1  christos $(info MAKE_RESTARTS=$(MAKE_RESTARTS))
     10  1.1  christos include foo.x
     11  1.1  christos foo.x: ; @touch $@
     12  1.1  christos ',
     13  1.1  christos               '', 'MAKE_RESTARTS=
     14  1.1  christos #MAKEFILE#:4: foo.x: No such file or directory
     15  1.1  christos MAKE_RESTARTS=1');
     16  1.1  christos 
     17  1.1  christos rmfiles('foo.x');
     18  1.1  christos 
     19  1.1  christos # Test multiple restarts
     20  1.1  christos 
     21  1.1  christos run_make_test('
     22  1.1  christos all: ; @:
     23  1.1  christos $(info MAKE_RESTARTS=$(MAKE_RESTARTS))
     24  1.1  christos include foo.x
     25  1.1  christos foo.x: ; @echo "include bar.x" > $@
     26  1.1  christos bar.x: ; @touch $@
     27  1.1  christos ',
     28  1.1  christos               '', 'MAKE_RESTARTS=
     29  1.1  christos #MAKEFILE#:4: foo.x: No such file or directory
     30  1.1  christos MAKE_RESTARTS=1
     31  1.1  christos foo.x:1: bar.x: No such file or directory
     32  1.1  christos MAKE_RESTARTS=2');
     33  1.1  christos 
     34  1.1  christos rmfiles('foo.x', 'bar.x');
     35  1.1  christos 
     36  1.1  christos # Test multiple restarts and make sure the variable is cleaned up
     37  1.1  christos 
     38  1.1  christos run_make_test('
     39  1.1  christos recurse:
     40  1.1  christos 	@echo recurse MAKE_RESTARTS=$$MAKE_RESTARTS
     41  1.1  christos 	@$(MAKE) -f #MAKEFILE# all
     42  1.1  christos all:
     43  1.1  christos 	@echo all MAKE_RESTARTS=$$MAKE_RESTARTS
     44  1.1  christos $(info MAKE_RESTARTS=$(MAKE_RESTARTS))
     45  1.1  christos include foo.x
     46  1.1  christos foo.x: ; @echo "include bar.x" > $@
     47  1.1  christos bar.x: ; @touch $@
     48  1.1  christos ',
     49  1.1  christos               '', "MAKE_RESTARTS=
     50  1.1  christos #MAKEFILE#:8: foo.x: No such file or directory
     51  1.1  christos MAKE_RESTARTS=1
     52  1.1  christos foo.x:1: bar.x: No such file or directory
     53  1.1  christos MAKE_RESTARTS=2
     54  1.1  christos recurse MAKE_RESTARTS=
     55  1.1  christos MAKE_RESTARTS=
     56  1.1  christos #MAKE#[1]: Entering directory `#PWD#'
     57  1.1  christos all MAKE_RESTARTS=
     58  1.1  christos #MAKE#[1]: Leaving directory `#PWD#'");
     59  1.1  christos 
     60  1.1  christos rmfiles('foo.x', 'bar.x');
     61  1.1  christos 
     62  1.1  christos 1;
     63