xref: /illumos-gate/usr/src/cmd/make/bin/globals.cc (revision 20a7641f9918de8574b8b3b47dbe35c4bfc78df1)
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  * Copyright 2019, Joyent, Inc.
26  */
27 
28 /*
29  *	globals.cc
30  *
31  *	This declares all global variables
32  */
33 
34 /*
35  * Included files
36  */
37 #include <nl_types.h>
38 #include <mk/defs.h>
39 #include <sys/stat.h>
40 
41 /*
42  * Defined macros
43  */
44 
45 /*
46  * typedefs & structs
47  */
48 
49 /*
50  * Global variables used by make only
51  */
52 	FILE		*dependency_report_file;
53 
54 /*
55  * Global variables used by make
56  */
57 	Boolean		allrules_read=false;
58 	Name		posix_name;
59 	Name		svr4_name;
60 	Boolean		sdot_target;	/* used to identify s.m(/M)akefile */
61 	Boolean		all_parallel;
62 	Boolean		assign_done;
63 	int foo;
64 	Boolean		build_failed_seen;
65 	Name		built_last_make_run;
66 	Name		c_at;
67 	Boolean		cleanup;
68 	Boolean		close_report;
69 	Boolean		command_changed;
70 	Boolean		commands_done;
71 	Chain		conditional_targets;
72 	Name		conditionals;
73 	Boolean		continue_after_error;		/* `-k' */
74 	Property	current_line;
75 	Name		current_make_version;
76 	Name		current_target;
77 	short		debug_level;
78 	Cmd_line	default_rule;
79 	Name		default_rule_name;
80 	Name		default_target_to_build;
81 	Name		dmake_group;
82 	Name		dmake_max_jobs;
83 	Name		dmake_mode;
84 	DMake_mode	dmake_mode_type;
85 	Name		dmake_output_mode;
86 	DMake_output_mode	output_mode = txt1_mode;
87 	Name		dmake_odir;
88 	Name		dmake_rcfile;
89 	Name		done;
90 	Name		dot;
91 	Name		dot_keep_state;
92 	Name		dot_keep_state_file;
93 	Name		empty_name;
94 	Boolean		fatal_in_progress;
95 	int		file_number;
96 #if 0
97 	Boolean		filter_stderr;			/* `-X' */
98 #endif
99 	Name		force;
100 	Name		ignore_name;
101 	Boolean		ignore_errors;			/* `-i' */
102 	Boolean		ignore_errors_all;		/* `-i' */
103 	Name		init;
104 	int		job_msg_id;
105 	Boolean		keep_state;
106 	Name		make_state;
107 	timestruc_t	make_state_before;
108 	Dependency	makefiles_used;
109 	Name		makeflags;
110 //	Boolean		make_state_locked; // Moved to lib/mksh
111 	Name		make_version;
112 	char		mbs_buffer2[(MAXPATHLEN * MB_LEN_MAX)];
113 	char		*mbs_ptr;
114 	char		*mbs_ptr2;
115 	Boolean		depinfo_already_read = false;
116 	Boolean		no_action_was_taken = true;	/* true if we've not **
117 							** run any command   */
118 
119 	Boolean		no_parallel = false;
120 	Name		no_parallel_name;
121 	Name		not_auto;
122 	Boolean		only_parallel;
123 	Boolean		parallel;
124 	Name		parallel_name;
125 	Name		localhost_name;
126 	int		parallel_process_cnt;
127 	Percent		percent_list;
128 	Dyntarget	dyntarget_list;
129 	Name		plus;
130 	Name		pmake_machinesfile;
131 	Name		precious;
132         Name		primary_makefile;
133 	Boolean		quest;				/* `-q' */
134 	short		read_trace_level;
135         Boolean		reading_dependencies = false;
136 	Name		recursive_name;
137 	int		recursion_level;
138 	short		report_dependencies_level = 0;	/* -P */
139 	Boolean		report_pwd;
140 	Boolean		rewrite_statefile;
141 	Running		running_list;
142 	char		*sccs_dir_path;
143 	Name		sccs_get_name;
144 	Name		sccs_get_posix_name;
145 	Cmd_line	sccs_get_rule;
146 	Cmd_line	sccs_get_org_rule;
147 	Cmd_line	sccs_get_posix_rule;
148 	Name		get_name;
149 	Cmd_line	get_rule;
150 	Name		get_posix_name;
151 	Cmd_line	get_posix_rule;
152 	Boolean		all_precious;
153 	Boolean		silent_all;			/* `-s' */
154 	Boolean		report_cwd;			/* `-w' */
155 	Boolean		silent;				/* `-s' */
156 	Name		silent_name;
157 	char		*stderr_file = NULL;
158 	char		*stdout_file = NULL;
159 	Boolean		stdout_stderr_same;
160 	Dependency	suffixes;
161 	Name		suffixes_name;
162 	Name		sunpro_dependencies;
163         Boolean		target_variants;
164 	const char	*tmpdir = "/tmp";
165 	const char	*temp_file_directory = ".";
166 	Name		temp_file_name;
167 	short		temp_file_number;
168 	time_t		timing_start;
169 	wchar_t		*top_level_target;
170 	Boolean		touch;				/* `-t' */
171 	Boolean		trace_reader;			/* `-D' */
172 	Boolean		build_unconditional;		/* `-u' */
173 	pathpt		vroot_path = VROOT_DEFAULT;
174 	Name		wait_name;
175 	wchar_t		wcs_buffer2[MAXPATHLEN];
176 	wchar_t		*wcs_ptr;
177 	wchar_t		*wcs_ptr2;
178 	long int	hostid;
179 	Boolean		path_reset = false;
180 	Boolean		rebuild_arg0 = false;
181 
182 /*
183  * File table of contents
184  */
185 
186