VirtualBox

source: kBuild/trunk/src/gmake/dep.h@ 287

Last change on this file since 287 was 281, checked in by bird, 20 years ago

This commit was generated by cvs2svn to compensate for changes in r280,
which included commits to RCS files with non-trunk default branches.

  • Property svn:eol-style set to native
File size: 2.7 KB
Line 
1/* Definitions of dependency data structures for GNU Make.
2Copyright (C) 1988, 1989, 1991, 1992, 1993, 1996 Free Software Foundation, Inc.
3This file is part of GNU Make.
4
5GNU Make is free software; you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation; either version 2, or (at your option)
8any later version.
9
10GNU Make is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with GNU Make; see the file COPYING. If not, write to
17the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18Boston, MA 02111-1307, USA. */
19
20/* Flag bits for the second argument to `read_makefile'.
21 These flags are saved in the `changed' field of each
22 `struct dep' in the chain returned by `read_all_makefiles'. */
23
24#define RM_NO_DEFAULT_GOAL (1 << 0) /* Do not set default goal. */
25#define RM_INCLUDED (1 << 1) /* Search makefile search path. */
26#define RM_DONTCARE (1 << 2) /* No error if it doesn't exist. */
27#define RM_NO_TILDE (1 << 3) /* Don't expand ~ in file name. */
28#define RM_NOFLAG 0
29
30/* Structure representing one dependency of a file.
31 Each struct file's `deps' points to a chain of these,
32 chained through the `next'.
33
34 Note that the first two words of this match a struct nameseq. */
35
36struct dep
37 {
38 struct dep *next;
39 char *name;
40 struct file *file;
41 unsigned int changed : 8;
42 unsigned int ignore_mtime : 1;
43 unsigned int need_2nd_expansion : 1;
44 };
45
46
47/* Structure used in chains of names, for parsing and globbing. */
48
49struct nameseq
50 {
51 struct nameseq *next;
52 char *name;
53 };
54
55
56extern struct nameseq *multi_glob PARAMS ((struct nameseq *chain, unsigned int size));
57#ifdef VMS
58extern struct nameseq *parse_file_seq ();
59#else
60extern struct nameseq *parse_file_seq PARAMS ((char **stringp, int stopchar, unsigned int size, int strip));
61#endif
62extern char *tilde_expand PARAMS ((char *name));
63
64#ifndef NO_ARCHIVES
65extern struct nameseq *ar_glob PARAMS ((char *arname, char *member_pattern, unsigned int size));
66#endif
67
68#ifndef iAPX286
69#define dep_name(d) ((d)->name == 0 ? (d)->file->name : (d)->name)
70#else
71/* Buggy compiler can't hack this. */
72extern char *dep_name ();
73#endif
74
75extern struct dep *copy_dep_chain PARAMS ((struct dep *d));
76extern void free_ns_chain PARAMS ((struct nameseq *n));
77extern struct dep *read_all_makefiles PARAMS ((char **makefiles));
78extern int eval_buffer PARAMS ((char *buffer));
79extern int update_goal_chain PARAMS ((struct dep *goals));
80extern void uniquize_deps PARAMS ((struct dep *));
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