Merge branch 'branch-1.13.2' into maint
[platform/upstream/automake.git] / lib / Automake / RuleDef.pm
1 # Copyright (C) 2003-2013 Free Software Foundation, Inc.
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2, or (at your option)
6 # any later version.
7
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 # GNU General Public License for more details.
12
13 # You should have received a copy of the GNU General Public License
14 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
16 package Automake::RuleDef;
17
18 use 5.006;
19 use strict;
20 use Carp;
21 use Automake::ChannelDefs;
22 use Automake::ItemDef;
23
24 require Exporter;
25 use vars '@ISA', '@EXPORT';
26 @ISA = qw/Automake::ItemDef Exporter/;
27 @EXPORT = qw (&RULE_AUTOMAKE &RULE_USER);
28
29 =head1 NAME
30
31 Automake::RuleDef - a class for rule definitions
32
33 =head1 SYNOPSIS
34
35   use Automake::RuleDef;
36   use Automake::Location;
37
38 =head1 DESCRIPTION
39
40 This class gathers data related to one Makefile-rule definition.
41 It shouldn't be needed outside of F<Rule.pm>.
42
43 =head2 Constants
44
45 =over 4
46
47 =item C<RULE_AUTOMAKE>, C<RULE_USER>
48
49 Possible owners for rules.
50
51 =cut
52
53 use constant RULE_AUTOMAKE => 0; # Rule defined by Automake.
54 use constant RULE_USER => 1;     # Rule defined in the user's Makefile.am.
55
56 =back
57
58 =head2 Methods
59
60 =over 4
61
62 =item C<new Automake::RuleDef ($name, $comment, $location, $owner, $source)>
63
64 Create a new rule definition with target C<$name>, with associated comment
65 C<$comment>, Location C<$location> and owner C<$owner>, defined in file
66 C<$source>.
67
68 =cut
69
70 sub new ($$$$$)
71 {
72   my ($class, $name, $comment, $location, $owner, $source) = @_;
73
74   my $self = Automake::ItemDef::new ($class, $comment, $location, $owner);
75   $self->{'source'} = $source;
76   $self->{'name'} = $name;
77   return $self;
78 }
79
80 =item C<$source = $rule-E<gt>source>
81
82 Return the source of the rule.
83
84 =cut
85
86 sub source ($)
87 {
88   my ($self) = @_;
89   return $self->{'source'};
90 }
91
92 =item C<$name = $rule-E<gt>name>
93
94 Return the name of the rule.
95
96 =cut
97
98 sub name ($)
99 {
100   my ($self) = @_;
101   return $self->{'name'};
102 }
103
104 =back
105
106 =head1 SEE ALSO
107
108 L<Automake::Rule>, L<Automake::ItemDef>.
109
110 =cut
111
112 1;
113
114 ### Setup "GNU" style for perl-mode and cperl-mode.
115 ## Local Variables:
116 ## perl-indent-level: 2
117 ## perl-continued-statement-offset: 2
118 ## perl-continued-brace-offset: 0
119 ## perl-brace-offset: 0
120 ## perl-brace-imaginary-offset: 0
121 ## perl-label-offset: -2
122 ## cperl-indent-level: 2
123 ## cperl-brace-offset: 0
124 ## cperl-continued-brace-offset: 0
125 ## cperl-label-offset: -2
126 ## cperl-extra-newline-before-brace: t
127 ## cperl-merge-trailing-else: nil
128 ## cperl-continued-statement-offset: 2
129 ## End: