xref: /illumos-gate/usr/src/cmd/make/lib/mksh/globals.cc (revision fca4268092e9961ebb9b5e0098dcebc545023586)
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 
27 /*
28  *	globals.cc
29  *
30  *	This declares all global variables
31  */
32 
33 /*
34  * Included files
35  */
36 #include <mksh/globals.h>
37 
38 /*
39  * Defined macros
40  */
41 
42 /*
43  * typedefs & structs
44  */
45 
46 /*
47  * Global variables
48  */
49 char		char_semantics[CHAR_SEMANTICS_ENTRIES];
50 wchar_t		char_semantics_char[] = {
51 	ampersand_char,
52 	asterisk_char,
53 	at_char,
54 	backquote_char,
55 	backslash_char,
56 	bar_char,
57 	bracketleft_char,
58 	bracketright_char,
59 	colon_char,
60 	dollar_char,
61 	doublequote_char,
62 	equal_char,
63 	exclam_char,
64 	greater_char,
65 	hat_char,
66 	hyphen_char,
67 	less_char,
68 	newline_char,
69 	numbersign_char,
70 	parenleft_char,
71 	parenright_char,
72 	percent_char,
73 	plus_char,
74 	question_char,
75 	quote_char,
76 	semicolon_char,
77 	nul_char
78 };
79 Macro_list	cond_macro_list;
80 Boolean		conditional_macro_used;
81 Boolean		do_not_exec_rule;		/* `-n' */
82 Boolean		dollarget_seen;
83 Boolean		dollarless_flag;
84 Name		dollarless_value;
85 Envvar		envvar;
86 #ifdef lint
87 char		**environ;
88 #endif
89 int		exit_status;
90 wchar_t		*file_being_read;
91 /* Variable gnu_style=true if env. var. SUN_MAKE_COMPAT_MODE=GNU (RFE 4866328) */
92 Boolean		gnu_style = false;
93 Name_set	hashtab;
94 Name		host_arch;
95 Name		host_mach;
96 int		line_number;
97 char		*make_state_lockfile;
98 Boolean		make_word_mentioned;
99 Makefile_type	makefile_type = reading_nothing;
100 char		mbs_buffer[(MAXPATHLEN * MB_LEN_MAX)];
101 Name		path_name;
102 Boolean		posix = true;
103 Name		hat;
104 Name		query;
105 Boolean		query_mentioned;
106 Boolean		reading_environment;
107 Name		shell_name;
108 Boolean		svr4 = false;
109 Name		target_arch;
110 Name		target_mach;
111 Boolean		tilde_rule;
112 Name		virtual_root;
113 Boolean		vpath_defined;
114 Name		vpath_name;
115 wchar_t		wcs_buffer[MAXPATHLEN];
116 Boolean		working_on_targets;
117 Boolean		out_err_same;
118 pid_t		childPid = -1;	// This variable is used for killing child's process
119 				// Such as qrsh, running command, etc.
120 
121 /*
122  * timestamps defined in defs.h
123  */
124 const timestruc_t file_no_time		= { -1, 0 };
125 const timestruc_t file_doesnt_exist	= { 0, 0 };
126 const timestruc_t file_is_dir		= { 1, 0 };
127 const timestruc_t file_min_time		= { 2, 0 };
128 const timestruc_t file_max_time		= { INT_MAX, 0 };
129