#                                                                    -*-perl-*-

$description = "This script tests to make sure that Make looks for
default makefiles in the correct order (GNUmakefile,makefile,Makefile)";

# Create a makefile called "GNUmakefile"
$makefile = "GNUmakefile";

open(MAKEFILE,"> $makefile");
print MAKEFILE "FIRST: ; \@echo It chose GNUmakefile\n";
close(MAKEFILE);

# Create another makefile called "makefile"
open(MAKEFILE,"> makefile");
print MAKEFILE "SECOND: ; \@echo It chose makefile\n";
close(MAKEFILE);

# DOS/W32/MacOSX platforms are case-insensitive / case-preserving, so
# Makefile is the same file as makefile.  Just test what we can here.

my $case_sensitive = 0;
if (! -f 'Makefile') {
    # Create another makefile called "Makefile"
    $case_sensitive = 1;
    open(MAKEFILE,"> Makefile");
    print MAKEFILE "THIRD: ; \@echo It chose Makefile\n";
    close(MAKEFILE);
}

run_make_with_options("","",&get_logfile);
compare_output("It chose GNUmakefile\n",&get_logfile(1));
unlink($makefile);

run_make_with_options("","",&get_logfile);
compare_output("It chose makefile\n",&get_logfile(1));
unlink("makefile");

if ($case_sensitive) {
    run_make_with_options("","",&get_logfile);
    compare_output("It chose Makefile\n",&get_logfile(1));
    unlink("Makefile");
}

1;
