xref: /illumos-gate/usr/src/cmd/make/lib/mksh/globals.cc (revision 09fbbb7d1b5a956a9b81304070dcff318a4a158e)
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 int		exit_status;
87 wchar_t		*file_being_read;
88 /* Variable gnu_style=true if env. var. SUN_MAKE_COMPAT_MODE=GNU (RFE 4866328) */
89 Boolean		gnu_style = false;
90 Name_set	hashtab;
91 Name		host_arch;
92 Name		host_mach;
93 int		line_number;
94 char		*make_state_lockfile;
95 Boolean		make_word_mentioned;
96 Makefile_type	makefile_type = reading_nothing;
97 char		mbs_buffer[(MAXPATHLEN * MB_LEN_MAX)];
98 Name		path_name;
99 Boolean		posix = true;
100 Name		hat;
101 Name		query;
102 Boolean		query_mentioned;
103 Boolean		reading_environment;
104 Name		shell_name;
105 Boolean		svr4 = false;
106 Name		target_arch;
107 Name		target_mach;
108 Boolean		tilde_rule;
109 Name		virtual_root;
110 Boolean		vpath_defined;
111 Name		vpath_name;
112 wchar_t		wcs_buffer[MAXPATHLEN];
113 Boolean		working_on_targets;
114 Boolean		out_err_same;
115 pid_t		childPid = -1;	// This variable is used for killing child's process
116 				// Such as qrsh, running command, etc.
117 
118 /*
119  * timestamps defined in defs.h
120  */
121 const timestruc_t file_no_time		= { -1, 0 };
122 const timestruc_t file_doesnt_exist	= { 0, 0 };
123 const timestruc_t file_is_dir		= { 1, 0 };
124 const timestruc_t file_min_time		= { 2, 0 };
125 const timestruc_t file_max_time		= { INT_MAX, 0 };
126