1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 */
25 /*
26 * @(#)globals.cc 1.16 06/12/12
27 */
28
29 #pragma ident "@(#)globals.cc 1.16 06/12/12"
30
31 /*
32 * globals.cc
33 *
34 * This declares all global variables
35 */
36
37 /*
38 * Included files
39 */
40 #include <mksh/globals.h>
41
42 /*
43 * Defined macros
44 */
45
46 /*
47 * typedefs & structs
48 */
49
50 /*
51 * Global variables
52 */
53 char char_semantics[CHAR_SEMANTICS_ENTRIES];
54 wchar_t char_semantics_char[] = {
55 ampersand_char,
56 asterisk_char,
57 at_char,
58 backquote_char,
59 backslash_char,
60 bar_char,
61 bracketleft_char,
62 bracketright_char,
63 colon_char,
64 dollar_char,
65 doublequote_char,
66 equal_char,
67 exclam_char,
68 greater_char,
69 hat_char,
70 hyphen_char,
71 less_char,
72 newline_char,
73 numbersign_char,
74 parenleft_char,
75 parenright_char,
76 percent_char,
77 plus_char,
78 question_char,
79 quote_char,
80 semicolon_char,
81 #ifdef SGE_SUPPORT
82 space_char,
83 tab_char,
84 #endif
85 nul_char
86 };
87 Macro_list cond_macro_list;
88 Boolean conditional_macro_used;
89 Boolean do_not_exec_rule; /* `-n' */
90 Boolean dollarget_seen;
91 Boolean dollarless_flag;
92 Name dollarless_value;
93 Envvar envvar;
94 #ifdef lint
95 char **environ;
96 #endif
97 #ifdef SUN5_0
98 int exit_status;
99 #endif
100 wchar_t *file_being_read;
101 /* Variable gnu_style=true if env. var. SUN_MAKE_COMPAT_MODE=GNU (RFE 4866328) */
102 Boolean gnu_style = false;
103 Name_set hashtab;
104 Name host_arch;
105 Name host_mach;
106 int line_number;
107 char *make_state_lockfile;
108 Boolean make_word_mentioned;
109 Makefile_type makefile_type = reading_nothing;
110 char mbs_buffer[(MAXPATHLEN * MB_LEN_MAX)];
111 Name path_name;
112 Boolean posix = true;
113 Name hat;
114 Name query;
115 Boolean query_mentioned;
116 Boolean reading_environment;
117 Name shell_name;
118 Boolean svr4 = false;
119 Name target_arch;
120 Name target_mach;
121 Boolean tilde_rule;
122 Name virtual_root;
123 Boolean vpath_defined;
124 Name vpath_name;
125 wchar_t wcs_buffer[MAXPATHLEN];
126 Boolean working_on_targets;
127 #if defined (TEAMWARE_MAKE_CMN) && defined(REDIRECT_ERR)
128 Boolean out_err_same;
129 #endif
130 pid_t childPid = -1; // This variable is used for killing child's process
131 // Such as qrsh, running command, etc.
132
133 /*
134 * timestamps defined in defs.h
135 */
136 const timestruc_t file_no_time = { -1, 0 };
137 const timestruc_t file_doesnt_exist = { 0, 0 };
138 const timestruc_t file_is_dir = { 1, 0 };
139 const timestruc_t file_min_time = { 2, 0 };
140 const timestruc_t file_max_time = { INT_MAX, 0 };