1 |
# -*-perl-*- |
# -*-perl-*- |
2 |
$description = "The following test creates a makefile to ...\n"; |
$description = "Test recursion."; |
3 |
|
|
4 |
$details = "DETAILS"; |
$details = "DETAILS"; |
5 |
|
|
6 |
open(MAKEFILE,"> $makefile"); |
# Test some basic recursion. |
7 |
|
run_make_test(' |
8 |
# The Contents of the MAKEFILE ... |
all: |
9 |
|
$(MAKE) -f #MAKEFILE# foo |
10 |
print MAKEFILE "all: \n" |
foo: |
11 |
."\t\$(MAKE) -f $makefile foo \n" |
@echo $(MAKE) |
12 |
."foo: \n" |
@echo MAKELEVEL = $(MAKELEVEL) |
13 |
."\t\@echo \$(MAKE) \n" |
$(MAKE) -f #MAKEFILE# last |
14 |
."\t\@echo MAKELEVEL = \$(MAKELEVEL)\n" |
last: |
15 |
."\t\$(MAKE) -f $makefile last \n" |
@echo $(MAKE) |
16 |
."last: \n" |
@echo MAKELEVEL = $(MAKELEVEL) |
17 |
."\t\@echo \$(MAKE) \n" |
@echo THE END |
18 |
."\t\@echo MAKELEVEL = \$(MAKELEVEL) \n" |
', |
19 |
."\t\@echo THE END\n"; |
('CFLAGS=-O -w' . ($parallel_jobs ? '-j 2' : '')), |
20 |
|
($vos |
21 |
# END of Contents of MAKEFILE |
? "#MAKE#: Entering directory `#PWD#' |
22 |
|
make 'CFLAGS=-O' -f #MAKEFILE# foo |
23 |
close(MAKEFILE); |
make CFLAGS=-O |
24 |
|
MAKELEVEL = 0 |
25 |
if ($vos) |
make 'CFLAGS=-O' -f #MAKEFILE# last |
26 |
{ |
make CFLAGS=-O |
27 |
$answer = "$make_name: Entering directory \`$pwd\'\n" |
MAKELEVEL = 0 |
28 |
."make 'CFLAGS=-O' -f $makefile foo \n" |
THE END |
29 |
."make CFLAGS=-O\n" |
#MAKE#: Leaving directory `#PWD#'" |
30 |
."MAKELEVEL = 0\n" |
: "#MAKE#: Entering directory `#PWD#' |
31 |
."make 'CFLAGS=-O' -f $makefile last \n" |
#MAKEPATH# -f #MAKEFILE# foo |
32 |
."make CFLAGS=-O\n" |
#MAKE#[1]: Entering directory `#PWD#' |
33 |
."MAKELEVEL = 0\n" |
#MAKEPATH# |
34 |
."THE END\n" |
MAKELEVEL = 1 |
35 |
."$make_name: Leaving directory `$pwd'\n"; |
#MAKEPATH# -f #MAKEFILE# last |
36 |
} |
#MAKE#[2]: Entering directory `#PWD#' |
37 |
else |
#MAKEPATH# |
38 |
{ |
MAKELEVEL = 2 |
39 |
$answer = "$make_name: Entering directory `$pwd'\n" |
THE END |
40 |
."$mkpath -f $makefile foo \n" |
#MAKE#[2]: Leaving directory `#PWD#' |
41 |
."${make_name}[1]: Entering directory `$pwd'\n" |
#MAKE#[1]: Leaving directory `#PWD#' |
42 |
."$mkpath\n" |
#MAKE#: Leaving directory `#PWD#'")); |
43 |
."MAKELEVEL = 1\n" |
|
44 |
."$mkpath -f $makefile last \n" |
|
45 |
."${make_name}[2]: Entering directory `$pwd'\n" |
# Test command line overrides. |
46 |
."$mkpath\n" |
run_make_test(' |
47 |
."MAKELEVEL = 2\n" |
recur: all ; @$(MAKE) --no-print-directory -f #MAKEFILE# a=AA all |
48 |
."THE END\n" |
all: ; @echo "MAKEOVERRIDES = $(MAKEOVERRIDES)" |
49 |
."${make_name}[2]: Leaving directory `$pwd'\n" |
', |
50 |
."${make_name}[1]: Leaving directory `$pwd'\n" |
'a=ZZ', |
51 |
."$make_name: Leaving directory `$pwd'\n"; |
'MAKEOVERRIDES = a=ZZ |
52 |
} |
MAKEOVERRIDES = a=AA |
53 |
|
'); |
|
$mkoptions = "CFLAGS=-O -w"; |
|
|
$mkoptions .= " -j 2" if ($parallel_jobs); |
|
|
|
|
|
&run_make_with_options($makefile,$mkoptions,&get_logfile,0); |
|
|
|
|
|
&compare_output($answer,&get_logfile(1)); |
|
54 |
|
|
55 |
1; |
1; |