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