Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

#                                                                    -*-perl-*-

$description = "Test the -C option to GNU make.";

$details = "\
This test is similar to the clean test except that this test creates the file
to delete in the work directory instead of the current directory.  Make is
called from another directory using the -C workdir option so that it can both
find the makefile and the file to delete in the work directory.";

$example = $workdir . $pathsep . "EXAMPLE";

open(MAKEFILE,"> $makefile");
print MAKEFILE <<EOF;
all: ; \@echo This makefile did not clean the dir ... good
clean: ; $delete_command EXAMPLE\$(ext)
EOF
close(MAKEFILE);

# TEST #1
# -------
&touch($example);

&run_make_with_options("${testname}.mk",
	               "-C $workdir clean",
		       &get_logfile);

chdir $workdir;
$wpath = &get_this_pwd;
chdir $pwd;

if (-f $example) {
  $test_passed = 0;
}

# Create the answer to what should be produced by this Makefile
$answer = "$make_name: Entering directory `$wpath'\n"
        . "$delete_command EXAMPLE\n"
        . "$make_name: Leaving directory `$wpath'\n";

&compare_output($answer,&get_logfile(1));


# TEST #2
# -------
# Do it again with trailing "/"; this should work the same

$example .= "slash";

&touch($example);

&run_make_with_options("${testname}.mk",
	               "-C $workdir/ clean ext=slash",
		       &get_logfile);

chdir $workdir;
$wpath = &get_this_pwd;
chdir $pwd;

if (-f $example) {
  $test_passed = 0;
}

# Create the answer to what should be produced by this Makefile
$answer = "$make_name: Entering directory `$wpath'\n"
        . "$delete_command EXAMPLEslash\n"
        . "$make_name: Leaving directory `$wpath'\n";

&compare_output($answer,&get_logfile(1));

1;