Annotation of src/usr.bin/make/extern.h, Revision 1.37
1.37 ! espie 1: /* $OpenPackages$ */
! 2: /* $OpenBSD: nonints.h,v 1.7 1998/12/05 00:06:28 espie Exp $ */
1.6 millert 3: /* $NetBSD: nonints.h,v 1.12 1996/11/06 17:59:19 christos Exp $ */
1.1 deraadt 4:
5: /*-
1.6 millert 6: * Copyright (c) 1988, 1989, 1990, 1993
7: * The Regents of the University of California. All rights reserved.
1.1 deraadt 8: * Copyright (c) 1989 by Berkeley Softworks
9: * All rights reserved.
10: *
11: * This code is derived from software contributed to Berkeley by
12: * Adam de Boor.
13: *
14: * Redistribution and use in source and binary forms, with or without
15: * modification, are permitted provided that the following conditions
16: * are met:
17: * 1. Redistributions of source code must retain the above copyright
18: * notice, this list of conditions and the following disclaimer.
19: * 2. Redistributions in binary form must reproduce the above copyright
20: * notice, this list of conditions and the following disclaimer in the
21: * documentation and/or other materials provided with the distribution.
22: * 3. All advertising materials mentioning features or use of this software
23: * must display the following acknowledgement:
24: * This product includes software developed by the University of
25: * California, Berkeley and its contributors.
26: * 4. Neither the name of the University nor the names of its contributors
27: * may be used to endorse or promote products derived from this software
28: * without specific prior written permission.
29: *
30: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
31: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
32: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
33: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
34: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
35: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
36: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
37: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
38: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
39: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
40: * SUCH DAMAGE.
41: *
1.6 millert 42: * from: @(#)nonints.h 8.3 (Berkeley) 3/19/94
1.1 deraadt 43: */
44:
45: /* arch.c */
1.37 ! espie 46: extern ReturnStatus Arch_ParseArchive(char **, Lst, SymTable *);
! 47: extern void Arch_Touch(GNode *);
! 48: extern void Arch_TouchLib(GNode *);
! 49: extern TIMESTAMP Arch_MTime(GNode *);
! 50: extern TIMESTAMP Arch_MemMTime(GNode *);
! 51: extern void Arch_FindLib(GNode *, Lst);
! 52: extern Boolean Arch_LibOODate(GNode *);
! 53: extern void Arch_Init(void);
! 54: extern void Arch_End(void);
! 55: extern Boolean Arch_IsLib(GNode *);
1.1 deraadt 56:
57: /* compat.c */
1.37 ! espie 58: extern void Compat_Run(Lst);
1.1 deraadt 59:
60: /* cond.c */
1.37 ! espie 61: extern int Cond_Eval(char *);
! 62: extern void Cond_End(void);
1.1 deraadt 63:
1.15 espie 64: #include "error.h"
65:
1.1 deraadt 66: /* for.c */
1.16 espie 67: typedef struct For_ For;
1.37 ! espie 68: extern For *For_Eval(const char *);
! 69: extern Boolean For_Accumulate(For *, const char *);
! 70: extern void For_Run (For *);
1.1 deraadt 71:
72: /* main.c */
1.37 ! espie 73: extern void Main_ParseArgLine(char *);
! 74: extern char *Cmd_Exec(const char *, char **);
! 75: extern void Error(char *, ...);
! 76: extern void Fatal(char *, ...);
! 77: extern void Punt(char *, ...);
! 78: extern void DieHorribly(void);
! 79: extern void PrintAddr(void *);
! 80: extern void Finish(int);
1.8 espie 81:
82: /* make.c */
1.37 ! espie 83: extern void Make_TimeStamp(GNode *, GNode *);
! 84: extern Boolean Make_OODate(GNode *);
! 85: extern void Make_HandleUse(GNode *, GNode *);
! 86: extern void Make_Update(GNode *);
! 87: extern void Make_DoAllVar(GNode *);
! 88: extern Boolean Make_Run(Lst);
1.1 deraadt 89:
90: /* parse.c */
1.37 ! espie 91: extern void Parse_Error(int, char *, ...);
! 92: extern Boolean Parse_AnyExport(void);
! 93: extern Boolean Parse_IsVar(char *);
! 94: extern void Parse_DoVar(const char *, GSymT *);
! 95: extern void Parse_AddIncludeDir(const char *);
! 96: extern void Parse_File(char *, FILE *);
! 97: extern void Parse_Init(void);
! 98: extern void Parse_End(void);
! 99: extern void Parse_FromString(char *, unsigned long);
! 100: extern unsigned long Parse_Getlineno(void);
! 101: extern const char *Parse_Getfilename(void);
! 102: extern void Parse_MainName(Lst);
! 103:
! 104: /* stats.h */
! 105: extern void Init_Stats(void);
1.1 deraadt 106:
107: /* str.c */
1.37 ! espie 108: extern void str_init(void);
! 109: extern void str_end(void);
! 110: extern char *lastchar(const char *, const char *, int);
! 111: extern char *str_concati(const char *, const char *, const char *, int);
! 112: #define str_concat(s1, s2, sep) str_concati(s1, s2, strchr(s2, '\0'), sep)
! 113: extern char **brk_string(const char *, int *, char **);
! 114: extern const char *iterate_words(const char **);
! 115: extern Boolean Str_Matchi(const char *, const char *, const char *);
! 116: #define Str_Match(string, pattern) \
! 117: Str_Matchi(string, pattern, strchr(pattern, '\0'))
! 118: extern const char *Str_SYSVMatch(const char *, const char *, size_t *);
! 119: extern void Str_SYSVSubst(Buffer, const char *, const char *, size_t);
! 120: extern char *interval_dup(const char *, const char *);
! 121: extern char *escape_dup(const char *, const char *, const char *);
1.1 deraadt 122:
123: /* suff.c */
1.37 ! espie 124: extern void Suff_ClearSuffixes(void);
! 125: extern Boolean Suff_IsTransform(const char *);
! 126: extern GNode *Suff_AddTransform(const char *);
! 127: extern void Suff_EndTransform(void *);
! 128: extern void Suff_AddSuffix(char *);
! 129: extern Lst Suff_GetPath(char *);
! 130: extern void Suff_DoPaths(void);
! 131: extern void Suff_AddInclude(char *);
! 132: extern void Suff_AddLib(char *);
! 133: extern void Suff_FindDeps(GNode *);
! 134: extern void Suff_SetNull(char *);
! 135: extern void Suff_Init(void);
! 136: extern void Suff_End(void);
! 137: extern void Suff_PrintAll(void);
1.1 deraadt 138:
139: /* targ.c */
1.37 ! espie 140: extern void Targ_Init(void);
! 141: extern void Targ_End(void);
! 142: extern GNode *Targ_NewGN(const char *, const char *);
! 143: extern GNode *Targ_FindNode(const char *, const char *, int);
! 144: extern void Targ_FindList(Lst, Lst);
! 145: extern Boolean Targ_Ignore(GNode *);
! 146: extern Boolean Targ_Silent(GNode *);
! 147: extern Boolean Targ_Precious(GNode *);
! 148: extern void Targ_SetMain(GNode *);
! 149: extern void Targ_PrintCmd(void *);
! 150: extern char *Targ_FmtTime(TIMESTAMP);
! 151: extern void Targ_PrintType(int);
! 152: extern void Targ_PrintGraph(int);
1.1 deraadt 153:
154: /* var.c */
1.37 ! espie 155: extern void Var_Delete(const char *);
! 156: extern void Var_Set_interval(const char *, const char *, const char *,
! 157: GSymT *);
! 158: extern void Varq_Set(int, const char *, GNode *);
! 159: extern void Var_Append_interval(const char *, const char *,
! 160: const char *, GSymT *);
! 161: extern void Varq_Append(int, const char *, GNode *);
! 162: extern char *Var_Value_interval(const char *, const char *);
! 163: extern char *Varq_Value(int, GNode *);
! 164: extern char *Var_Parse(const char *, SymTable *, Boolean, size_t *,
! 165: Boolean *);
! 166: extern size_t Var_ParseSkip(const char *, SymTable *, ReturnStatus *);
! 167: extern ReturnStatus Var_ParseBuffer(Buffer, const char *, SymTable *,
! 168: Boolean, size_t *);
! 169: extern char *Var_Subst(const char *, SymTable *, Boolean);
! 170: extern void Var_SubstVar(Buffer, const char *, const char *, const char *);
! 171: extern void Var_Init(void);
! 172: extern void Var_End(void);
! 173: extern void Var_Dump(void);
! 174: extern void SymTable_Init(SymTable *);
! 175: extern void SymTable_Destroy(SymTable *);
! 176: #define Var_Set(n, v, ctxt) Var_Set_interval(n, NULL, v, ctxt)
! 177: #define Var_Append(n, v, ctxt) Var_Append_interval(n, NULL, v, ctxt)
! 178: #define Var_Value(n) Var_Value_interval(n, NULL)
! 179: extern void Var_AddCmdline(const char *);
! 180:
! 181: /* Used to store temporary names, after $ expansion */
! 182: struct Name {
! 183: const char *s;
! 184: const char *e;
! 185: Boolean tofree;
! 186: };
! 187:
! 188: extern const char *Var_Name_Get(const char *, struct Name *, SymTable *,
! 189: Boolean, const char *(*)(const char *));
! 190: extern void Var_Name_Free(struct Name *);