summaryrefslogtreecommitdiffstats
path: root/src/kmk/tests/scripts/features/mult_targets
blob: c8ff4189b70f7cc3c226197ed6e24bdfc133f2e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
$description = "The following test creates a makefile to test that a \n "
              ."rule with multiple targets is equivalent to writing \n"
              ."many rules, each with one target, and all identical aside\n"
              ."from that.";

$details = "A makefile is created with one rule and two targets.  Make \n"
          ."is called twice, once for each target, and the output which \n"
          ."contains the target name with \$@ is looked at for the changes.\n"
          ."This test also tests the substitute function by replacing \n"
          ."the word output with nothing in the target name giving either\n"
          ."an output of \"I am little\" or \"I am big\"";  

open(MAKEFILE,"> $makefile");

# The Contents of the MAKEFILE ...

print MAKEFILE "bigoutput littleoutput: test.h\n";
print MAKEFILE "\t\@echo I am \$(subst output,,\$@)\n";  

# END of Contents of MAKEFILE

close(MAKEFILE);

&touch("test.h");

&run_make_with_options($makefile,"bigoutput",&get_logfile);


# Create the answer to what should be produced by this Makefile
$answer = "I am big\n";

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

&run_make_with_options($makefile,"littleoutput",&get_logfile);
$answer = "I am little\n";
&compare_output($answer,&get_logfile(1));

unlink "test.h";

1;