1 /* RCS $Id: vextern.h,v 1.7 2007-10-15 15:42:04 ihi Exp $
4 -- Global variable declarations.
7 -- Leave _DEFINE_GLOBALS_ undefined and the following declarations
8 -- will be defined as global variables, otherwise you get the
9 -- external declarations to the same global variables.
12 -- Dennis Vadura, dvadura@dmake.wticorp.com
15 -- http://dmake.wticorp.com/
18 -- Copyright (c) 1996,1997 by WTI Corp. All rights reserved.
20 -- This program is NOT free software; you can redistribute it and/or
21 -- modify it under the terms of the Software License Agreement Provided
22 -- in the file <distribution-root>/readme/license.txt.
25 -- Use cvs log to obtain detailed change logs.
28 /* These two are defined in dir/ruletab.c and dir/dirbrk.c, and are always
29 * imported as externals by the other code. Their defining modules do not
30 * #include this file. */
31 extern char* DirBrkStr
; /* pointer to value of macro DIRBRKSTR */
32 extern char** Rule_tab
; /* Builtin rules */
34 #ifndef _DEFINE_GLOBALS_
40 EXTERN
int Line_number
; /* Current line number in make file parse */
41 EXTERN t_attr Glob_attr
; /* Global attrs to control global ops */
42 EXTERN
char* Makedir
; /* pointer to macro value for MAKEDIR */
43 EXTERN
char* Makedir_macval
; /* value of MAKEDIR (for .WINPATH) */
44 EXTERN
char* Shell
; /* pointer to macro value for SHELL */
45 EXTERN
char* Shell_flags
; /* pointer to macro value for SHELLFLAGS */
46 EXTERN
char* Shell_quote
; /* pointer to macro value for SHELLCMDQUOTE */
47 EXTERN
char* GShell
; /* pointer to macro value for GROUPSHELL */
48 EXTERN
char* GShell_flags
; /* pointer to macro value for GROUPFLAGS */
49 EXTERN
char* Shell_metas
; /* pointer to macro value for SHELLMETAS */
50 EXTERN
char* Grp_suff
; /* pointer to macro value for GROUPSUFFIX */
51 EXTERN
char* DirSepStr
; /* pointer to macro value for DIRSEPSTR */
52 EXTERN
char* AbsPname
; /* pointer to macro value for ABSMAKECMD */
53 EXTERN
char* Pname
; /* dmake process invoke name */
54 EXTERN
char* Pwd
; /* current working dir */
55 EXTERN
char* Pwd_macval
; /* value of PWD (for .WINPATH) */
56 EXTERN
char* Tmd
; /* path to directory where dmake started */
57 EXTERN
char* Tmd_macval
; /* value of TMD (for .WINPATH) */
58 EXTERN
char* Spacechar
; /* pointer to macro value for SPACECHAR */
59 EXTERN
char* Keep_state
; /* current .KEEP_STATE file */
60 EXTERN
char* Escape_char
; /* Current escape character */
61 EXTERN
char* LastMacName
; /* Last macro successfully parsed */
62 EXTERN
char* UseDirCache
; /* The value of .DIRCACHE */
63 EXTERN
char* DcacheRespCase
; /* TRUE if we are to respect dcache case */
64 EXTERN
char* OOoDmMode
; /* Enable special behavior for OOo build. */
65 EXTERN
int Target
; /* TRUE if a default target was found in *
66 * a makefile or on the commandline */
67 EXTERN
int If_expand
; /* TRUE if calling Expand from getinp.c */
68 EXTERN
int Suppress_temp_file
;/* TRUE if doing a test in _exec_recipe*/
69 EXTERN
int Readenv
; /* TRUE if defining macro from environment*/
70 EXTERN
int Makemkf
; /* TRUE if making makefile(s) */
71 EXTERN
int Nest_level
; /* Nesting level for .IF .ELSE .END ... */
72 EXTERN
int Prep
; /* Value of macro PREP */
73 EXTERN
int Def_targets
; /* TRUE if defining targets - Only used *
75 EXTERN
int Skip_to_eof
; /* TRUE if asked to skip to eof on input */
76 EXTERN
int NameMax
; /* The value of NAMEMAX */
77 EXTERN
int UseWinpath
; /* True if .WINPATH is set for currently *
80 EXTERN
char* CygDrvPre
; /* Drive prefix used by cygwin */
81 EXTERN
int CygDrvPreLen
; /* Drive prefix length used by cygwin */
85 EXTERN CELLPTR Root
; /* Root of the make graph (.ROOT) */
86 EXTERN CELLPTR Targets
; /* Targets in makefile (.TARGETS) */
88 EXTERN CELLPTR Current_target
; /* cell of current target being made */
89 EXTERN
int Wait_for_completion
; /* Wait for subprocess to finish */
90 EXTERN
int Is_exec_shell
; /* Indicate shell escape */
91 EXTERN CELLPTR Shell_exec_target
; /* Keep Current_target for _exec__shell */
92 EXTERN
FILE* stdout_redir
; /* For _exec_shell client redirects */
93 EXTERN
int zerofd
; /* File descriptor for /dev/null */
94 EXTERN
int Doing_bang
; /* TRUE if target timestamp needs not to be
95 * updated immediately. */
96 EXTERN
int Packed_shell
; /* TRUE if packed args to use a shell */
98 EXTERN
int Swap_on_exec
; /* TRUE if going to swap on exec call */
100 EXTERN
int State
; /* parser state */
101 EXTERN
int Group
; /* parsing a group recipe ==> TRUE */
103 /* Command line option flags are defined here. They correspond one-for one
104 * with the flags defined in dmake.c */
106 EXTERN
char *Augmake
; /* -A */
107 EXTERN
char Comment
; /* -c */
108 EXTERN
char Get_env
; /* -e or -E */
109 EXTERN
char* Notabs
; /* -B */
110 EXTERN
int Continue
; /* -k */
111 EXTERN
int Force
; /* -u */
112 EXTERN
int Listing
; /* -p */
113 EXTERN
int Rules
; /* -r */
114 EXTERN
int Trace
; /* -n */
115 EXTERN
int Touch
; /* -t */
116 EXTERN
int Check
; /* -q */
117 EXTERN uint16 Verbose
; /* -v */
118 EXTERN uint16 Measure
; /* -m */
119 EXTERN
int Microsoft
; /* -M */
120 EXTERN
int Transitive
; /* -T */
121 EXTERN
int No_exec
; /* -X */
123 EXTERN HASHPTR Defs
[HASH_TABLE_SIZE
];
124 EXTERN HASHPTR Macs
[HASH_TABLE_SIZE
];
126 EXTERN
char *Buffer
; /* a general purpose buffer */
127 EXTERN
int Buffer_size
;
128 EXTERN
int Max_proclmt
; /* limit of max # of conc procs */
129 EXTERN
int Max_proc
; /* max # of conc procs */