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