#                                     -*-mode: perl; rm-trailing-spaces: nil-*-

$description = "Test various forms of the GNU make `include' command.";

$details = "Test include, -include, sinclude and various regressions involving them.
Test extra whitespace at the end of the include, multiple -includes and
sincludes (should not give an error) and make sure that errors are reported
for targets that were also -included.";

$makefile2 = &get_tmpfile;

open(MAKEFILE,"> $makefile");

# The contents of the Makefile ...

print MAKEFILE <<EOF;
\#Extra space at the end of the following file name
include $makefile2                  
all: ; \@echo There should be no errors for this makefile.

-include nonexistent.mk
-include nonexistent.mk
sinclude nonexistent.mk
sinclude nonexistent-2.mk
-include makeit.mk
sinclude makeit.mk

error: makeit.mk
EOF

close(MAKEFILE);


open(MAKEFILE,"> $makefile2");

print MAKEFILE "ANOTHER: ; \@echo This is another included makefile\n";

close(MAKEFILE);

# Create the answer to what should be produced by this Makefile
&run_make_with_options($makefile, "all", &get_logfile);
$answer = "There should be no errors for this makefile.\n";
&compare_output($answer, &get_logfile(1));

&run_make_with_options($makefile, "ANOTHER", &get_logfile);
$answer = "This is another included makefile\n";
&compare_output($answer, &get_logfile(1));

# Try to build the "error" target; this will fail since we don't know
# how to create makeit.mk, but we should also get a message (even though
# the -include suppressed it during the makefile read phase, we should
# see one during the makefile run phase).

# The fix to this caused more problems than the error, so I removed it.
# pds -- 22 Jan 2000

#&run_make_with_options($makefile, "error", &get_logfile, 512);
#$answer = "$make_name: *** No rule to make target `makeit.mk', needed by `error'.\n";
#&compare_output($answer, &get_logfile(1));

1;
