VirtualBox

source: kBuild/trunk/src/gmake/rule.h@ 803

Last change on this file since 803 was 503, checked in by bird, 18 years ago

Untested merge with GNU Make v3.81 (vendor/gnumake/2005-05-16 -> vendor/gnumake/current).

  • Property svn:eol-style set to native
File size: 2.3 KB
Line 
1/* Definitions for using pattern rules in GNU Make.
2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
4Foundation, Inc.
5This file is part of GNU Make.
6
7GNU Make is free software; you can redistribute it and/or modify it under the
8terms of the GNU General Public License as published by the Free Software
9Foundation; either version 2, or (at your option) any later version.
10
11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
13A PARTICULAR PURPOSE. See the GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License along with
16GNU Make; see the file COPYING. If not, write to the Free Software
17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */
18
19/* Structure used for pattern rules. */
20
21struct rule
22 {
23 struct rule *next;
24 char **targets; /* Targets of the rule. */
25 unsigned int *lens; /* Lengths of each target. */
26 char **suffixes; /* Suffixes (after `%') of each target. */
27 struct dep *deps; /* Dependencies of the rule. */
28 struct commands *cmds; /* Commands to execute. */
29 char terminal; /* If terminal (double-colon). */
30 char in_use; /* If in use by a parent pattern_search. */
31 };
32
33/* For calling install_pattern_rule. */
34struct pspec
35 {
36 char *target, *dep, *commands;
37 };
38
39
40extern struct rule *pattern_rules;
41extern struct rule *last_pattern_rule;
42extern unsigned int num_pattern_rules;
43
44extern unsigned int max_pattern_deps;
45extern unsigned int max_pattern_targets;
46extern unsigned int max_pattern_dep_length;
47
48extern struct file *suffix_file;
49extern unsigned int maxsuffix;
50
51
52extern void install_pattern_rule PARAMS ((struct pspec *p, int terminal));
53extern int new_pattern_rule PARAMS ((struct rule *rule, int override));
54extern void count_implicit_rule_limits PARAMS ((void));
55extern void convert_to_pattern PARAMS ((void));
56extern void create_pattern_rule PARAMS ((char **targets,
57 char **target_percents, int terminal,
58 struct dep *deps,
59 struct commands *commands,
60 int override));
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette