recursion   [plain text]


#                                                                    -*-perl-*-
$description = "The following test creates a makefile to ...\n";

$details = "DETAILS";

open(MAKEFILE,"> $makefile");

# The Contents of the MAKEFILE ...

print MAKEFILE "all: \n"
              ."\t\$(MAKE) -f $makefile foo \n"
              ."foo: \n"
              ."\t\@echo \$(MAKE) \n"
              ."\t\@echo MAKELEVEL = \$(MAKELEVEL)\n"
              ."\t\$(MAKE) -f $makefile last \n"
              ."last: \n"
              ."\t\@echo \$(MAKE) \n"
              ."\t\@echo MAKELEVEL = \$(MAKELEVEL) \n"
              ."\t\@echo THE END\n";

# END of Contents of MAKEFILE

close(MAKEFILE);

if ($vos)
{
   $answer = "$make_name: Entering directory \`$pwd\'\n"
            ."make 'CFLAGS=-O' -f $makefile foo \n"
            ."make CFLAGS=-O\n"
            ."MAKELEVEL = 0\n"
            ."make 'CFLAGS=-O' -f $makefile last \n"
            ."make CFLAGS=-O\n"
            ."MAKELEVEL = 0\n"
            ."THE END\n"
            ."$make_name: Leaving directory `$pwd'\n";
}
else
{
   $answer = "$make_name: Entering directory `$pwd'\n"
            ."$mkpath -f $makefile foo \n"
            ."${make_name}[1]: Entering directory `$pwd'\n"
            ."$mkpath\n"
            ."MAKELEVEL = 1\n"
            ."$mkpath -f $makefile last \n"
            ."${make_name}[2]: Entering directory `$pwd'\n"
            ."$mkpath\n"
            ."MAKELEVEL = 2\n"
            ."THE END\n"
            ."${make_name}[2]: Leaving directory `$pwd'\n"
            ."${make_name}[1]: Leaving directory `$pwd'\n"
            ."$make_name: Leaving directory `$pwd'\n";
}

$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));

1;