10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe/*
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * CDDL HEADER START
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe *
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * The contents of this file are subject to the terms of the
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * Common Development and Distribution License (the "License").
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * You may not use this file except in compliance with the License.
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe *
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * or http://www.opensolaris.org/os/licensing.
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * See the License for the specific language governing permissions
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * and limitations under the License.
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe *
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * When distributing Covered Code, include this CDDL HEADER in each
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * If applicable, add the following below this CDDL HEADER, with the
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * fields enclosed by brackets "[]" replaced with your own identifying
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * information: Portions Copyright [yyyy] [name of copyright owner]
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe *
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * CDDL HEADER END
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe/*
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * Use is subject to license terms.
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe/*
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * globals.cc
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe *
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * This declares all global variables
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe/*
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * Included files
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe#include <nl_types.h>
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe#include <mk/defs.h>
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe#include <sys/stat.h>
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe/*
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * Defined macros
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe/*
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * typedefs & structs
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe/*
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * Global variables used by make only
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe FILE *dependency_report_file;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe/*
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * Global variables used by make
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean allrules_read=false;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name posix_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name svr4_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean sdot_target; /* used to identify s.m(/M)akefile */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean all_parallel;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean assign_done;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe int foo;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean build_failed_seen;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name built_last_make_run;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name c_at;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean cleanup;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean close_report;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean command_changed;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean commands_done;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Chain conditional_targets;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name conditionals;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean continue_after_error; /* `-k' */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Property current_line;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name current_make_version;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name current_target;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe short debug_level;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Cmd_line default_rule;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name default_rule_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name default_target_to_build;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name dmake_group;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name dmake_max_jobs;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name dmake_mode;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe DMake_mode dmake_mode_type;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name dmake_output_mode;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe DMake_output_mode output_mode = txt1_mode;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name dmake_odir;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name dmake_rcfile;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name done;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name dot;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name dot_keep_state;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name dot_keep_state_file;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name empty_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean fatal_in_progress;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe int file_number;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe#if 0
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean filter_stderr; /* `-X' */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe#endif
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name force;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name ignore_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean ignore_errors; /* `-i' */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean ignore_errors_all; /* `-i' */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name init;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe int job_msg_id;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean keep_state;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name make_state;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe timestruc_t make_state_before;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Dependency makefiles_used;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name makeflags;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe// Boolean make_state_locked; // Moved to lib/mksh
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name make_version;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe char mbs_buffer2[(MAXPATHLEN * MB_LEN_MAX)];
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe char *mbs_ptr;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe char *mbs_ptr2;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean depinfo_already_read = false;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean no_action_was_taken = true; /* true if we've not **
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe ** run any command */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean no_parallel = false;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name no_parallel_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name not_auto;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean only_parallel;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean parallel;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name parallel_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name localhost_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe int parallel_process_cnt;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Percent percent_list;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Dyntarget dyntarget_list;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name plus;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name pmake_machinesfile;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name precious;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name primary_makefile;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean quest; /* `-q' */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe short read_trace_level;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean reading_dependencies = false;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name recursive_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe int recursion_level;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe short report_dependencies_level = 0; /* -P */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean report_pwd;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean rewrite_statefile;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Running running_list;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe char *sccs_dir_path;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name sccs_get_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name sccs_get_posix_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Cmd_line sccs_get_rule;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Cmd_line sccs_get_org_rule;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Cmd_line sccs_get_posix_rule;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name get_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Cmd_line get_rule;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name get_posix_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Cmd_line get_posix_rule;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean all_precious;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean silent_all; /* `-s' */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean report_cwd; /* `-w' */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean silent; /* `-s' */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name silent_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe char *stderr_file = NULL;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe char *stdout_file = NULL;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean stdout_stderr_same;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Dependency suffixes;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name suffixes_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name sunpro_dependencies;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean target_variants;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe const char *tmpdir = "/tmp";
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe const char *temp_file_directory = ".";
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name temp_file_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe short temp_file_number;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe time_t timing_start;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe wchar_t *top_level_target;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean touch; /* `-t' */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean trace_reader; /* `-D' */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Boolean build_unconditional; /* `-u' */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe pathpt vroot_path = VROOT_DEFAULT;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe Name wait_name;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe wchar_t wcs_buffer2[MAXPATHLEN];
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe wchar_t *wcs_ptr;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe wchar_t *wcs_ptr2;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe long int hostid;
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe/*
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe * File table of contents
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe */
10d63b7db37a83b39c7f511cf9426c9d03ea0760Richard Lowe