1 #include "types.h"
2 #include "globals.h"
3 
4 int env_overrides = 0;
5 
6 /* Nonzero means ignore status codes returned by commands
7    executed to remake files.  Just treat them all as successful (-i).  */
8 
9 int ignore_errors_flag = 0;
10 
11 /* Nonzero means don't remake anything, just print the data base
12    that results from reading the makefile (-p).  */
13 
14 int print_data_base_flag = 0;
15 
16 /* Nonzero means don't remake anything; just return a nonzero status
17    if the specified targets are not up to date (-q).  */
18 
19 int question_flag = 0;
20 
21 /* Nonzero means do not use any of the builtin rules (-r) / variables (-R).  */
22 
23 int no_builtin_rules_flag = 0;
24 int no_builtin_variables_flag = 0;
25 
26 /* Nonzero means check symlink mtimes.  */
27 int check_symlink_flag = 0;
28 
29 /* Nonzero means print directory before starting and when done (-w).  */
30 int print_directory_flag = 0;
31 
32 /* Nonzero means print version information.  */
33 int print_version_flag = 0;
34 
35 /*! Nonzero means --trace and shell trace with input.  */
36 int shell_trace = 0;
37 
38 /* Nonzero means profile calls (option --profile).  */
39 int profile_flag = 0;
40 
41 /* Nonzero means look in parent directories for a Makefile if one isn't found
42    in the current directory (option --search-parent).  */
43 int search_parent_flag = 0;
44 
45 /* Nonzero means do extra verification (that may slow things down).  */
46 int verify_flag;
47 
48 /* Nonzero means do not print commands to be executed (-s).  */
49 int silent_flag;
50 
51 /* Nonzero means just touch the files
52    that would appear to need remaking (-t)  */
53 int touch_flag;
54 
55 /* Nonzero means just print what commands would need to be executed,
56    don't actually execute them (-n).  */
57 int just_print_flag;
58 
59 /*! If 1, we don't give additional error reporting information. */
60 int no_extended_errors = 0;
61 
62 int db_level = 0;
63 
64 /*! Value of the MAKELEVEL variable at startup (or 0).  */
65 unsigned int makelevel;
66 
67 /*! Nonzero gives a list of explicit target names and exits. Set by option
68   --targets
69  */
70 int show_targets_flag = 0;
71 
72 /*! Nonzero gives a list of explicit target names that have commands
73   associated with them and exits. Set by option --tasks
74  */
75 int show_tasks_flag = 0;
76 
77 /*! If 1, same as --debugger=preaction */
78 int debugger_flag;
79 
80 /* If nonzero, we should print a warning message
81    for each reference to an undefined variable.  */
82 int warn_undefined_variables_flag;
83 
84 /** True if we are inside the debugger, false otherwise. */
85 int in_debugger = false;
86 
87 /*! Nonzero if we have seen the magic '.POSIX' target.
88    This turns on pedantic compliance with POSIX.2.  */
89 int posix_pedantic;
90 
91 /*! If nonzero, we are debugging after each "step" for that many times.
92   When we have a value 1, then we actually run the debugger read loop.
93   Otherwise we decrement the step count.
94 
95 */
96 unsigned int i_debugger_stepping = 0;
97 
98 /*! If nonzero, we are debugging after each "next" for that many times.
99   When we have a value 1, then we actually run the debugger read loop.
100   Otherwise we decrement the step count.
101 
102 */
103 unsigned int i_debugger_nexting = 0;
104 
105 /*! If nonzero, enter the debugger if we hit a fatal error.
106 */
107 unsigned int debugger_on_error = 0;
108 
109 /*! If nonzero, we have requested some sort of debugging.
110 */
111 unsigned int debugger_enabled;
112 
113 /*! If true, enter the debugger before reading any makefiles. */
114 bool b_debugger_preread = false;
115 
116 /* This character introduces a command: it's the first char on the line.  */
117 char cmd_prefix = '\t';
118 
119 /*! Our current directory after processing all -C options.  */
120 char *starting_directory;
121 
122 /* One of OUTPUT_SYNC_* if the "--output-sync" option was given.  This
123    attempts to synchronize the output of parallel jobs such that the results
124    of each job stay together.  */
125 int output_sync = OUTPUT_SYNC_NONE;
126 
127 /*! This is the path to the shell used run Makefile commands.
128 The value is set in job.c.
129 */
130 extern const char *default_shell;
131 
132 char *remote_description = 0;
133 
134 /* Remember the original value of the SHELL variable, from the environment.  */
135 struct variable shell_var;
136 
137 /* The filename and pointer to line number of the
138    makefile currently being read in.  */
139 const gmk_floc *reading_file = 0;
140