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