xref: /illumos-gate/usr/src/cmd/make/bin/globals.cc (revision ae389aa9)
110d63b7dSRichard Lowe /*
210d63b7dSRichard Lowe  * CDDL HEADER START
310d63b7dSRichard Lowe  *
410d63b7dSRichard Lowe  * The contents of this file are subject to the terms of the
510d63b7dSRichard Lowe  * Common Development and Distribution License (the "License").
610d63b7dSRichard Lowe  * You may not use this file except in compliance with the License.
710d63b7dSRichard Lowe  *
810d63b7dSRichard Lowe  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
910d63b7dSRichard Lowe  * or http://www.opensolaris.org/os/licensing.
1010d63b7dSRichard Lowe  * See the License for the specific language governing permissions
1110d63b7dSRichard Lowe  * and limitations under the License.
1210d63b7dSRichard Lowe  *
1310d63b7dSRichard Lowe  * When distributing Covered Code, include this CDDL HEADER in each
1410d63b7dSRichard Lowe  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1510d63b7dSRichard Lowe  * If applicable, add the following below this CDDL HEADER, with the
1610d63b7dSRichard Lowe  * fields enclosed by brackets "[]" replaced with your own identifying
1710d63b7dSRichard Lowe  * information: Portions Copyright [yyyy] [name of copyright owner]
1810d63b7dSRichard Lowe  *
1910d63b7dSRichard Lowe  * CDDL HEADER END
2010d63b7dSRichard Lowe  */
2110d63b7dSRichard Lowe /*
2210d63b7dSRichard Lowe  * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
2310d63b7dSRichard Lowe  * Use is subject to license terms.
2436cd0120SRobert Mustacchi  *
2536cd0120SRobert Mustacchi  * Copyright 2019, Joyent, Inc.
2610d63b7dSRichard Lowe  */
2710d63b7dSRichard Lowe 
2810d63b7dSRichard Lowe /*
2910d63b7dSRichard Lowe  *	globals.cc
3010d63b7dSRichard Lowe  *
3110d63b7dSRichard Lowe  *	This declares all global variables
3210d63b7dSRichard Lowe  */
3310d63b7dSRichard Lowe 
3410d63b7dSRichard Lowe /*
3510d63b7dSRichard Lowe  * Included files
3610d63b7dSRichard Lowe  */
3710d63b7dSRichard Lowe #include <nl_types.h>
3810d63b7dSRichard Lowe #include <mk/defs.h>
3910d63b7dSRichard Lowe #include <sys/stat.h>
4010d63b7dSRichard Lowe 
4110d63b7dSRichard Lowe /*
4210d63b7dSRichard Lowe  * Defined macros
4310d63b7dSRichard Lowe  */
4410d63b7dSRichard Lowe 
4510d63b7dSRichard Lowe /*
4610d63b7dSRichard Lowe  * typedefs & structs
4710d63b7dSRichard Lowe  */
4810d63b7dSRichard Lowe 
4910d63b7dSRichard Lowe /*
5010d63b7dSRichard Lowe  * Global variables used by make only
5110d63b7dSRichard Lowe  */
5210d63b7dSRichard Lowe 	FILE		*dependency_report_file;
5310d63b7dSRichard Lowe 
5410d63b7dSRichard Lowe /*
5510d63b7dSRichard Lowe  * Global variables used by make
5610d63b7dSRichard Lowe  */
5710d63b7dSRichard Lowe 	Boolean		allrules_read=false;
5810d63b7dSRichard Lowe 	Name		posix_name;
5910d63b7dSRichard Lowe 	Name		svr4_name;
6010d63b7dSRichard Lowe 	Boolean		sdot_target;	/* used to identify s.m(/M)akefile */
6110d63b7dSRichard Lowe 	Boolean		all_parallel;
6210d63b7dSRichard Lowe 	Boolean		assign_done;
63*ae389aa9SAndy Fiddaman 	int foo;
6410d63b7dSRichard Lowe 	Boolean		build_failed_seen;
6510d63b7dSRichard Lowe 	Name		built_last_make_run;
6610d63b7dSRichard Lowe 	Name		c_at;
6710d63b7dSRichard Lowe 	Boolean		cleanup;
6810d63b7dSRichard Lowe 	Boolean		close_report;
6910d63b7dSRichard Lowe 	Boolean		command_changed;
7010d63b7dSRichard Lowe 	Boolean		commands_done;
7110d63b7dSRichard Lowe 	Chain		conditional_targets;
7210d63b7dSRichard Lowe 	Name		conditionals;
7310d63b7dSRichard Lowe 	Boolean		continue_after_error;		/* `-k' */
7410d63b7dSRichard Lowe 	Property	current_line;
7510d63b7dSRichard Lowe 	Name		current_make_version;
7610d63b7dSRichard Lowe 	Name		current_target;
7710d63b7dSRichard Lowe 	short		debug_level;
7810d63b7dSRichard Lowe 	Cmd_line	default_rule;
7910d63b7dSRichard Lowe 	Name		default_rule_name;
8010d63b7dSRichard Lowe 	Name		default_target_to_build;
8110d63b7dSRichard Lowe 	Name		dmake_group;
8210d63b7dSRichard Lowe 	Name		dmake_max_jobs;
8310d63b7dSRichard Lowe 	Name		dmake_mode;
8410d63b7dSRichard Lowe 	DMake_mode	dmake_mode_type;
8510d63b7dSRichard Lowe 	Name		dmake_output_mode;
8610d63b7dSRichard Lowe 	DMake_output_mode	output_mode = txt1_mode;
8710d63b7dSRichard Lowe 	Name		dmake_odir;
8810d63b7dSRichard Lowe 	Name		dmake_rcfile;
8910d63b7dSRichard Lowe 	Name		done;
9010d63b7dSRichard Lowe 	Name		dot;
9110d63b7dSRichard Lowe 	Name		dot_keep_state;
9210d63b7dSRichard Lowe 	Name		dot_keep_state_file;
9310d63b7dSRichard Lowe 	Name		empty_name;
9410d63b7dSRichard Lowe 	Boolean		fatal_in_progress;
9510d63b7dSRichard Lowe 	int		file_number;
9610d63b7dSRichard Lowe #if 0
9710d63b7dSRichard Lowe 	Boolean		filter_stderr;			/* `-X' */
9810d63b7dSRichard Lowe #endif
9910d63b7dSRichard Lowe 	Name		force;
10010d63b7dSRichard Lowe 	Name		ignore_name;
10110d63b7dSRichard Lowe 	Boolean		ignore_errors;			/* `-i' */
10210d63b7dSRichard Lowe 	Boolean		ignore_errors_all;		/* `-i' */
10310d63b7dSRichard Lowe 	Name		init;
10410d63b7dSRichard Lowe 	int		job_msg_id;
10510d63b7dSRichard Lowe 	Boolean		keep_state;
10610d63b7dSRichard Lowe 	Name		make_state;
10710d63b7dSRichard Lowe 	timestruc_t	make_state_before;
10810d63b7dSRichard Lowe 	Dependency	makefiles_used;
10910d63b7dSRichard Lowe 	Name		makeflags;
11010d63b7dSRichard Lowe //	Boolean		make_state_locked; // Moved to lib/mksh
11110d63b7dSRichard Lowe 	Name		make_version;
11210d63b7dSRichard Lowe 	char		mbs_buffer2[(MAXPATHLEN * MB_LEN_MAX)];
11310d63b7dSRichard Lowe 	char		*mbs_ptr;
11410d63b7dSRichard Lowe 	char		*mbs_ptr2;
11510d63b7dSRichard Lowe 	Boolean		depinfo_already_read = false;
11610d63b7dSRichard Lowe 	Boolean		no_action_was_taken = true;	/* true if we've not **
11710d63b7dSRichard Lowe 							** run any command   */
11810d63b7dSRichard Lowe 
11910d63b7dSRichard Lowe 	Boolean		no_parallel = false;
12010d63b7dSRichard Lowe 	Name		no_parallel_name;
12110d63b7dSRichard Lowe 	Name		not_auto;
12210d63b7dSRichard Lowe 	Boolean		only_parallel;
12310d63b7dSRichard Lowe 	Boolean		parallel;
12410d63b7dSRichard Lowe 	Name		parallel_name;
12510d63b7dSRichard Lowe 	Name		localhost_name;
12610d63b7dSRichard Lowe 	int		parallel_process_cnt;
12710d63b7dSRichard Lowe 	Percent		percent_list;
12810d63b7dSRichard Lowe 	Dyntarget	dyntarget_list;
12910d63b7dSRichard Lowe 	Name		plus;
13010d63b7dSRichard Lowe 	Name		pmake_machinesfile;
13110d63b7dSRichard Lowe 	Name		precious;
13210d63b7dSRichard Lowe         Name		primary_makefile;
13310d63b7dSRichard Lowe 	Boolean		quest;				/* `-q' */
13410d63b7dSRichard Lowe 	short		read_trace_level;
135*ae389aa9SAndy Fiddaman         Boolean		reading_dependencies = false;
13610d63b7dSRichard Lowe 	Name		recursive_name;
13710d63b7dSRichard Lowe 	int		recursion_level;
13810d63b7dSRichard Lowe 	short		report_dependencies_level = 0;	/* -P */
13910d63b7dSRichard Lowe 	Boolean		report_pwd;
14010d63b7dSRichard Lowe 	Boolean		rewrite_statefile;
14110d63b7dSRichard Lowe 	Running		running_list;
14210d63b7dSRichard Lowe 	char		*sccs_dir_path;
14310d63b7dSRichard Lowe 	Name		sccs_get_name;
14410d63b7dSRichard Lowe 	Name		sccs_get_posix_name;
14510d63b7dSRichard Lowe 	Cmd_line	sccs_get_rule;
14610d63b7dSRichard Lowe 	Cmd_line	sccs_get_org_rule;
14710d63b7dSRichard Lowe 	Cmd_line	sccs_get_posix_rule;
14810d63b7dSRichard Lowe 	Name		get_name;
14910d63b7dSRichard Lowe 	Cmd_line	get_rule;
15010d63b7dSRichard Lowe 	Name		get_posix_name;
15110d63b7dSRichard Lowe 	Cmd_line	get_posix_rule;
15210d63b7dSRichard Lowe 	Boolean		all_precious;
15310d63b7dSRichard Lowe 	Boolean		silent_all;			/* `-s' */
15410d63b7dSRichard Lowe 	Boolean		report_cwd;			/* `-w' */
15510d63b7dSRichard Lowe 	Boolean		silent;				/* `-s' */
15610d63b7dSRichard Lowe 	Name		silent_name;
15710d63b7dSRichard Lowe 	char		*stderr_file = NULL;
15810d63b7dSRichard Lowe 	char		*stdout_file = NULL;
15910d63b7dSRichard Lowe 	Boolean		stdout_stderr_same;
16010d63b7dSRichard Lowe 	Dependency	suffixes;
16110d63b7dSRichard Lowe 	Name		suffixes_name;
16210d63b7dSRichard Lowe 	Name		sunpro_dependencies;
16310d63b7dSRichard Lowe         Boolean		target_variants;
16410d63b7dSRichard Lowe 	const char	*tmpdir = "/tmp";
16510d63b7dSRichard Lowe 	const char	*temp_file_directory = ".";
16610d63b7dSRichard Lowe 	Name		temp_file_name;
16710d63b7dSRichard Lowe 	short		temp_file_number;
16810d63b7dSRichard Lowe 	time_t		timing_start;
16910d63b7dSRichard Lowe 	wchar_t		*top_level_target;
17010d63b7dSRichard Lowe 	Boolean		touch;				/* `-t' */
17110d63b7dSRichard Lowe 	Boolean		trace_reader;			/* `-D' */
17210d63b7dSRichard Lowe 	Boolean		build_unconditional;		/* `-u' */
17310d63b7dSRichard Lowe 	pathpt		vroot_path = VROOT_DEFAULT;
17410d63b7dSRichard Lowe 	Name		wait_name;
17510d63b7dSRichard Lowe 	wchar_t		wcs_buffer2[MAXPATHLEN];
17610d63b7dSRichard Lowe 	wchar_t		*wcs_ptr;
17710d63b7dSRichard Lowe 	wchar_t		*wcs_ptr2;
17810d63b7dSRichard Lowe 	long int	hostid;
17936cd0120SRobert Mustacchi 	Boolean		path_reset = false;
18036cd0120SRobert Mustacchi 	Boolean		rebuild_arg0 = false;
18110d63b7dSRichard Lowe 
18210d63b7dSRichard Lowe /*
18310d63b7dSRichard Lowe  * File table of contents
18410d63b7dSRichard Lowe  */
18510d63b7dSRichard Lowe 
186