summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2023-03-25 17:53:19 -0400
committerPaul Smith <psmith@gnu.org>2023-03-26 16:48:48 -0400
commitcaf1d4c28fd96f1b3efec10f3978c45e5cf57aa4 (patch)
tree52bd4e454609d31627afaa7ed098754e95c3a52e
parentf99d0834184c97f162e965a603e88a3e10e22993 (diff)
downloadmake-git-caf1d4c28fd96f1b3efec10f3978c45e5cf57aa4.tar.gz
Clean up expand.c
Clarify the naming and documentation on functions in src/expand.c: - variable_expand -> expand_string - variable_expand_string -> expand_string_buf - variable_expand_for_file -> expand_string_for_file - allocated_variable_expand -> allocated_expand_string - allocated_variable_expand_for_file -> allocated_expand_string_for_file Change all callers to use the new names. * src/variable.h: Rename the functions and macros. * src/expand.c: Ditto. * src/file.c: Use the new function names. * src/function.c: Ditto. * src/implicit.c: Ditto. * src/job.c: Ditto. * src/loadapi.c: Ditto. * src/main.c: Ditto. * src/read.c: Ditto. * src/remake.c: Ditto. * src/variable.c: Ditto. * src/vpath.c: Ditto. * src/w32/subproc/sub_proc.c: Ditto.
-rw-r--r--src/expand.c88
-rw-r--r--src/file.c4
-rw-r--r--src/function.c6
-rw-r--r--src/implicit.c2
-rw-r--r--src/job.c12
-rw-r--r--src/loadapi.c2
-rw-r--r--src/main.c8
-rw-r--r--src/makeint.h5
-rw-r--r--src/read.c34
-rw-r--r--src/remake.c2
-rw-r--r--src/variable.c15
-rw-r--r--src/variable.h18
-rw-r--r--src/vpath.c4
-rw-r--r--src/w32/subproc/sub_proc.c2
14 files changed, 97 insertions, 105 deletions
diff --git a/src/expand.c b/src/expand.c
index b2d50748..25c71153 100644
--- a/src/expand.c
+++ b/src/expand.c
@@ -207,7 +207,7 @@ recursively_expand_for_file (struct variable *v, struct file *file)
if (v->append)
value = allocated_variable_append (v);
else
- value = allocated_variable_expand (v->value);
+ value = allocated_expand_string (v->value);
v->expanding = 0;
if (set_reading)
@@ -252,16 +252,17 @@ reference_variable (char *o, const char *name, size_t length)
}
/* Scan STRING for variable references and expansion-function calls. Only
- LENGTH bytes of STRING are actually scanned. If LENGTH is -1, scan until
- a null byte is found.
+ LENGTH bytes of STRING are actually scanned.
+ If LENGTH is SIZE_MAX, scan until a null byte is found.
- Write the results to LINE, which must point into 'variable_buffer'. If
- LINE is NULL, start at the beginning of the buffer.
- Return a pointer to LINE, or to the beginning of the buffer if LINE is
+ Write the results to BUF, which must point into 'variable_buffer'. If
+ BUF is NULL, start at the beginning of the current 'variable_buffer'.
+
+ Return a pointer to BUF, or to the beginning of the new buffer if BUF is
NULL.
*/
char *
-variable_expand_string (char *line, const char *string, size_t length)
+expand_string_buf (char *buf, const char *string, size_t length)
{
struct variable *v;
const char *p, *p1;
@@ -269,10 +270,10 @@ variable_expand_string (char *line, const char *string, size_t length)
char *o;
size_t line_offset;
- if (!line)
- line = initialize_variable_output ();
- o = line;
- line_offset = line - variable_buffer;
+ if (!buf)
+ buf = initialize_variable_output ();
+ o = buf;
+ line_offset = buf - variable_buffer;
if (length == 0)
return variable_buffer;
@@ -472,17 +473,7 @@ variable_expand_string (char *line, const char *string, size_t length)
return (variable_buffer + line_offset);
}
-/* Scan LINE for variable references and expansion-function calls.
- Build in 'variable_buffer' the result of expanding the references and calls.
- Return the address of the resulting string, which is null-terminated
- and is valid only until the next time this function is called. */
-char *
-variable_expand (const char *line)
-{
- return variable_expand_string (NULL, line, SIZE_MAX);
-}
-
/* Expand an argument for an expansion function.
The text starting at STR and ending at END is variable-expanded
into a null-terminated string that is returned as the value.
@@ -499,7 +490,7 @@ expand_argument (const char *str, const char *end)
return xstrdup ("");
if (!end || *end == '\0')
- return allocated_variable_expand (str);
+ return allocated_expand_string (str);
if (end - str + 1 > 1000)
tmp = alloc = xmalloc (end - str + 1);
@@ -509,25 +500,27 @@ expand_argument (const char *str, const char *end)
memcpy (tmp, str, end - str);
tmp[end - str] = '\0';
- r = allocated_variable_expand (tmp);
+ r = allocated_expand_string (tmp);
free (alloc);
return r;
}
-/* Expand LINE for FILE. Error messages refer to the file and line where
- FILE's commands were found. Expansion uses FILE's variable set list. */
+
+/* Expand STRING for FILE, into the current variable_buffer.
+ Error messages refer to the file and line where FILE's commands were found.
+ Expansion uses FILE's variable set list. */
char *
-variable_expand_for_file (const char *line, struct file *file)
+expand_string_for_file (const char *string, struct file *file)
{
char *result;
struct variable_set_list *savev;
const floc *savef;
- if (file == 0)
- return variable_expand (line);
+ if (!file)
+ return expand_string (string);
savev = current_variable_set_list;
current_variable_set_list = file->variables;
@@ -536,17 +529,32 @@ variable_expand_for_file (const char *line, struct file *file)
if (file->cmds && file->cmds->fileinfo.filenm)
reading_file = &file->cmds->fileinfo;
else
- reading_file = 0;
+ reading_file = NULL;
- result = variable_expand (line);
+ result = expand_string (string);
current_variable_set_list = savev;
reading_file = savef;
return result;
}
+
+/* Like expand_string_for_file, but the returned string is malloc'd. */
+
+char *
+allocated_expand_string_for_file (const char *string, struct file *file)
+{
+ char *obuf;
+ size_t olen;
+
+ install_variable_buffer (&obuf, &olen);
+
+ expand_string_for_file (string, file);
+
+ return swap_variable_buffer (obuf, olen);
+}
-/* Like allocated_variable_expand, but for += target-specific variables.
+/* Like allocated_expand_string, but for += target-specific variables.
First recursively construct the variable value from its appended parts in
any upper variable sets. Then expand the resulting value. */
@@ -588,7 +596,7 @@ variable_append (const char *name, size_t length,
if (! v->recursive)
return variable_buffer_output (buf, v->value, strlen (v->value));
- buf = variable_expand_string (buf, v->value, strlen (v->value));
+ buf = expand_string_buf (buf, v->value, strlen (v->value));
return (buf + strlen (buf));
}
@@ -606,19 +614,3 @@ allocated_variable_append (const struct variable *v)
return swap_variable_buffer (obuf, olen);
}
-
-/* Like variable_expand_for_file, but the returned string is malloc'd.
- This function is called a lot. It wants to be efficient. */
-
-char *
-allocated_variable_expand_for_file (const char *line, struct file *file)
-{
- char *obuf;
- size_t olen;
-
- install_variable_buffer (&obuf, &olen);
-
- variable_expand_for_file (line, file);
-
- return swap_variable_buffer (obuf, olen);
-}
diff --git a/src/file.c b/src/file.c
index 510f7d4a..9828d283 100644
--- a/src/file.c
+++ b/src/file.c
@@ -636,7 +636,7 @@ expand_deps (struct file *f)
set_file_variables (f, d->stem ? d->stem : f->stem);
/* Perform second expansion. */
- p = variable_expand_for_file (d->name, f);
+ p = expand_string_for_file (d->name, f);
/* Free the un-expanded name. */
free ((char*)d->name);
@@ -688,7 +688,7 @@ struct dep *
expand_extra_prereqs (const struct variable *extra)
{
struct dep *d;
- struct dep *prereqs = extra ? split_prereqs (variable_expand (extra->value)) : NULL;
+ struct dep *prereqs = extra ? split_prereqs (expand_string (extra->value)) : NULL;
for (d = prereqs; d; d = d->next)
{
diff --git a/src/function.c b/src/function.c
index 62b13f52..8f46ec60 100644
--- a/src/function.c
+++ b/src/function.c
@@ -885,7 +885,7 @@ func_foreach (char *o, char **argv, const char *funcname UNUSED)
free (var->value);
var->value = xstrndup (p, len);
- result = allocated_variable_expand (body);
+ result = allocated_expand_string (body);
o = variable_buffer_output (o, result, strlen (result));
o = variable_buffer_output (o, " ", 1);
@@ -945,7 +945,7 @@ func_let (char *o, char **argv, const char *funcname UNUSED)
/* Expand the body in the context of the arguments, adding the result to
the variable buffer. */
- o = variable_expand_string (o, body, SIZE_MAX);
+ o = expand_string_buf (o, body, SIZE_MAX);
pop_variable_scope ();
free (varnames);
@@ -2690,7 +2690,7 @@ func_call (char *o, char **argv, const char *funcname UNUSED)
saved_args = max_args;
max_args = i;
- o = variable_expand_string (o, body, flen+3);
+ o = expand_string_buf (o, body, flen+3);
max_args = saved_args;
v->exp_count = 0;
diff --git a/src/implicit.c b/src/implicit.c
index c40a50f4..cd7445fd 100644
--- a/src/implicit.c
+++ b/src/implicit.c
@@ -706,7 +706,7 @@ pattern_search (struct file *file, int archive,
}
/* Perform the 2nd expansion. */
- p = variable_expand_for_file (depname, file);
+ p = expand_string_for_file (depname, file);
dptr = &dl;
/* Parse the results into a deps list. */
diff --git a/src/job.c b/src/job.c
index 9cbdd2be..c7313fdb 100644
--- a/src/job.c
+++ b/src/job.c
@@ -1782,8 +1782,8 @@ new_job (struct file *file)
/* Finally, expand the line. */
cmds->fileinfo.offset = i;
- lines[i] = allocated_variable_expand_for_file (cmds->command_lines[i],
- file);
+ lines[i] = allocated_expand_string_for_file (cmds->command_lines[i],
+ file);
}
cmds->fileinfo.offset = 0;
@@ -1882,7 +1882,7 @@ new_job (struct file *file)
nm, c->file->name);
else
{
- char *newer = allocated_variable_expand_for_file ("$?", c->file);
+ char *newer = allocated_expand_string_for_file ("$?", c->file);
if (newer[0] != '\0')
{
OSSS (message, 0, _("%s: update target '%s' due to: %s"),
@@ -3637,7 +3637,7 @@ construct_command_argv (char *line, char **restp, struct file *file,
int save = warn_undefined_variables_flag;
warn_undefined_variables_flag = 0;
- shell = allocated_variable_expand_for_file ("$(SHELL)", file);
+ shell = allocated_expand_string_for_file ("$(SHELL)", file);
#if MK_OS_W32
/*
* Convert to forward slashes so that construct_command_argv_internal()
@@ -3700,9 +3700,9 @@ construct_command_argv (char *line, char **restp, struct file *file,
/* In POSIX mode we default to -ec, unless we're ignoring errors. */
shellflags = xstrdup (ANY_SET (cmd_flags, COMMANDS_NOERROR) ? "-c" : "-ec");
else
- shellflags = allocated_variable_expand_for_file (var->value, file);
+ shellflags = allocated_expand_string_for_file (var->value, file);
- ifs = allocated_variable_expand_for_file ("$(IFS)", file);
+ ifs = allocated_expand_string_for_file ("$(IFS)", file);
warn_undefined_variables_flag = save;
}
diff --git a/src/loadapi.c b/src/loadapi.c
index 06277668..6e9611db 100644
--- a/src/loadapi.c
+++ b/src/loadapi.c
@@ -70,7 +70,7 @@ gmk_eval (const char *buffer, const gmk_floc *gfloc)
char *
gmk_expand (const char *ref)
{
- return allocated_variable_expand (ref);
+ return allocated_expand_string (ref);
}
/* Register a function to be called from makefiles. */
diff --git a/src/main.c b/src/main.c
index c673cb70..86497e70 100644
--- a/src/main.c
+++ b/src/main.c
@@ -179,6 +179,10 @@ int question_flag = 0;
int no_builtin_rules_flag = 0;
int no_builtin_variables_flag = 0;
+/* Nonzero means all variables are automatically exported. */
+
+int export_all_variables = 0;
+
/* Nonzero means keep going even if remaking some file fails (-k). */
int keep_going_flag;
@@ -2797,7 +2801,7 @@ main (int argc, char **argv, char **envp)
char *p;
if (default_goal_var->recursive)
- p = variable_expand (default_goal_var->value);
+ p = expand_string (default_goal_var->value);
else
{
p = variable_buffer_output (variable_buffer, default_goal_var->value,
@@ -3336,7 +3340,7 @@ decode_env_switches (const char *envar, size_t len, enum variable_origin origin)
p = mempcpy (p, envar, len);
*(p++) = ')';
*p = '\0';
- value = variable_expand (varref);
+ value = expand_string (varref);
/* Skip whitespace, and check for an empty value. */
NEXT_TOKEN (value);
diff --git a/src/makeint.h b/src/makeint.h
index edac5ba2..00f72190 100644
--- a/src/makeint.h
+++ b/src/makeint.h
@@ -738,7 +738,7 @@ extern unsigned short stopchar_map[];
extern int just_print_flag, run_silent, ignore_errors_flag, keep_going_flag;
extern int print_data_base_flag, question_flag, touch_flag, always_make_flag;
extern int env_overrides, no_builtin_rules_flag, no_builtin_variables_flag;
-extern int print_version_flag, check_symlink_flag;
+extern int print_version_flag, check_symlink_flag, export_all_variables;
extern int warn_undefined_variables_flag, posix_pedantic;
extern int not_parallel, second_expansion, clock_skew_detected;
extern int rebuilding_makefiles, one_shell, output_sync, verify_flag;
@@ -752,6 +752,9 @@ extern int batch_mode_shell;
#define GNUMAKEFLAGS_NAME "GNUMAKEFLAGS"
#define MAKEFLAGS_NAME "MAKEFLAGS"
+#define MAKELEVEL_NAME "MAKELEVEL"
+#define MAKELEVEL_LENGTH (CSTRLEN (MAKELEVEL_NAME))
+
/* Resetting the command script introduction prefix character. */
#define RECIPEPREFIX_NAME ".RECIPEPREFIX"
#define RECIPEPREFIX_DEFAULT '\t'
diff --git a/src/read.c b/src/read.c
index a8539c3e..14f9dcee 100644
--- a/src/read.c
+++ b/src/read.c
@@ -186,7 +186,7 @@ read_all_makefiles (const char **makefiles)
char *name, *p;
size_t length;
- value = allocated_variable_expand ("$(MAKEFILES)");
+ value = allocated_expand_string ("$(MAKEFILES)");
/* Set NAME to the start of next token and LENGTH to its length.
MAKEFILES is updated for finding remaining tokens. */
@@ -807,7 +807,7 @@ eval (struct ebuffer *ebuf, int set_default)
/* Expand the line so we can use indirect and constructed
variable names in an (un)export command. */
- cp = ap = allocated_variable_expand (p2);
+ cp = ap = allocated_expand_string (p2);
for (p = find_next_token (&cp, &l); p != 0;
p = find_next_token (&cp, &l))
@@ -833,7 +833,7 @@ eval (struct ebuffer *ebuf, int set_default)
/* vpath ends the previous rule. */
record_waiting_files ();
- cp = variable_expand (p2);
+ cp = expand_string (p2);
p = find_next_token (&cp, &l);
if (p != 0)
{
@@ -866,7 +866,7 @@ eval (struct ebuffer *ebuf, int set_default)
/* Include ends the previous rule. */
record_waiting_files ();
- p = allocated_variable_expand (p2);
+ p = allocated_expand_string (p2);
/* If no filenames, it's a no-op. */
if (*p == '\0')
@@ -920,7 +920,7 @@ eval (struct ebuffer *ebuf, int set_default)
/* Load ends the previous rule. */
record_waiting_files ();
- p = allocated_variable_expand (p2);
+ p = allocated_expand_string (p2);
/* If no filenames, it's a no-op. */
if (*p == '\0')
@@ -1052,7 +1052,7 @@ eval (struct ebuffer *ebuf, int set_default)
break;
}
- p2 = variable_expand_string (NULL, lb_next, wlen);
+ p2 = expand_string_buf (NULL, lb_next, wlen);
while (1)
{
@@ -1080,7 +1080,7 @@ eval (struct ebuffer *ebuf, int set_default)
entirely consistent, since we do an unconditional
expand below once we know we don't have a
target-specific variable. */
- variable_expand_string (pend, lb_next, SIZE_MAX);
+ expand_string_buf (pend, lb_next, SIZE_MAX);
lb_next += strlen (lb_next);
p2 = variable_buffer + p2_off;
cmdleft = variable_buffer + cmd_off + 1;
@@ -1116,7 +1116,7 @@ eval (struct ebuffer *ebuf, int set_default)
p2 += strlen (p2);
*(p2++) = ' ';
- p2 = variable_expand_string (p2, lb_next, wlen);
+ p2 = expand_string_buf (p2, lb_next, wlen);
/* We don't need to worry about cmdleft here, because if it was
found in the variable_buffer the entire buffer has already
been expanded... we'll never get here. */
@@ -1228,7 +1228,7 @@ eval (struct ebuffer *ebuf, int set_default)
if (*lb_next != '\0')
{
size_t l = p2 - variable_buffer;
- variable_expand_string (p2 + plen, lb_next, SIZE_MAX);
+ expand_string_buf (p2 + plen, lb_next, SIZE_MAX);
p2 = variable_buffer + l;
/* Look for a semicolon in the expanded line. */
@@ -1359,7 +1359,7 @@ do_undefine (char *name, enum variable_origin origin, struct ebuffer *ebuf)
char *p, *var;
/* Expand the variable name and find the beginning (NAME) and end. */
- var = allocated_variable_expand (name);
+ var = allocated_expand_string (name);
name = next_token (var);
if (*name == '\0')
O (fatal, &ebuf->floc, _("empty variable name"));
@@ -1404,7 +1404,7 @@ do_define (char *name, enum variable_origin origin, struct ebuffer *ebuf)
}
/* Expand the variable name and find the beginning (NAME) and end. */
- n = allocated_variable_expand (name);
+ n = allocated_expand_string (name);
name = next_token (n);
if (name[0] == '\0')
O (fatal, &defstart, _("empty variable name"));
@@ -1637,7 +1637,7 @@ conditional_line (char *line, size_t len, const floc *flocp)
/* Expand the thing we're looking up, so we can use indirect and
constructed variable names. */
- var = allocated_variable_expand (line);
+ var = allocated_expand_string (line);
/* Make sure there's only one variable name to test. */
p = end_of_token (var);
@@ -1695,9 +1695,9 @@ conditional_line (char *line, size_t len, const floc *flocp)
else
*line++ = '\0';
- s2 = variable_expand (s1);
+ s2 = expand_string (s1);
/* We must allocate a new copy of the expanded string because
- variable_expand re-uses the same buffer. */
+ expand_string re-uses the same buffer. */
l = strlen (s2);
s1 = alloca (l + 1);
memcpy (s1, s2, l + 1);
@@ -1744,7 +1744,7 @@ conditional_line (char *line, size_t len, const floc *flocp)
if (*line != '\0')
EXTRATEXT ();
- s2 = variable_expand (s2);
+ s2 = expand_string (s2);
conditionals->ignoring[o] = (streq (s1, s2) == (cmdtype == c_ifneq));
}
@@ -1804,7 +1804,7 @@ record_target_var (struct nameseq *filenames, char *defn,
v->origin = origin;
if (v->flavor == f_simple)
- v->value = allocated_variable_expand (v->value);
+ v->value = allocated_expand_string (v->value);
else
v->value = xstrdup (v->value);
}
@@ -3071,7 +3071,7 @@ tilde_expand (const char *name)
int save = warn_undefined_variables_flag;
warn_undefined_variables_flag = 0;
- home_dir = allocated_variable_expand ("$(HOME)");
+ home_dir = allocated_expand_string ("$(HOME)");
warn_undefined_variables_flag = save;
}
diff --git a/src/remake.c b/src/remake.c
index b8aaab93..7c841f5d 100644
--- a/src/remake.c
+++ b/src/remake.c
@@ -1717,7 +1717,7 @@ library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr)
const char **dp;
- libpatterns = xstrdup (variable_expand ("$(.LIBPATTERNS)"));
+ libpatterns = xstrdup (expand_string ("$(.LIBPATTERNS)"));
/* Skip the '-l'. */
lib += 2;
diff --git a/src/variable.c b/src/variable.c
index d472c03d..6d87390c 100644
--- a/src/variable.c
+++ b/src/variable.c
@@ -1005,7 +1005,6 @@ define_automatic_variables (void)
define_variable_cname ("+F", "$(notdir $+)", o_automatic, 1);
}
-int export_all_variables;
static int
should_export (const struct variable *v)
@@ -1305,14 +1304,14 @@ do_variable_definition (const floc *flocp, const char *varname,
We have to allocate memory since otherwise it'll clobber the
variable buffer, and we may still need that if we're looking at a
target-specific variable. */
- newval = alloc_value = allocated_variable_expand (value);
+ newval = alloc_value = allocated_expand_string (value);
break;
case f_expand:
{
/* A POSIX "var :::= value" assignment. Expand the value, then it
becomes a recursive variable. After expansion convert all '$'
tokens to '$$' to resolve to '$' when recursively expanded. */
- char *t = allocated_variable_expand (value);
+ char *t = allocated_expand_string (value);
char *np = alloc_value = xmalloc (strlen (t) * 2 + 1);
char *op = t;
while (op[0] != '\0')
@@ -1330,7 +1329,7 @@ do_variable_definition (const floc *flocp, const char *varname,
{
/* A shell definition "var != value". Expand value, pass it to
the shell, and store the result in recursively-expanded var. */
- char *q = allocated_variable_expand (value);
+ char *q = allocated_expand_string (value);
alloc_value = shell_result (q);
free (q);
flavor = f_recursive;
@@ -1398,7 +1397,7 @@ do_variable_definition (const floc *flocp, const char *varname,
when it was set; and from the expanded new value. Allocate
memory for the expansion as we may still need the rest of the
buffer if we're looking at a target-specific variable. */
- val = tp = allocated_variable_expand (val);
+ val = tp = allocated_expand_string (val);
/* If the new value is empty, nothing to do. */
vallen = strlen (val);
@@ -1544,7 +1543,7 @@ do_variable_definition (const floc *flocp, const char *varname,
{
char *tp = alloc_value;
- alloc_value = allocated_variable_expand (newval);
+ alloc_value = allocated_expand_string (newval);
if (find_and_set_default_shell (alloc_value))
{
@@ -1767,7 +1766,7 @@ assign_variable_definition (struct variable *v, const char *line)
name = alloca (v->length + 1);
memcpy (name, v->name, v->length);
name[v->length] = '\0';
- v->name = allocated_variable_expand (name);
+ v->name = allocated_expand_string (name);
if (v->name[0] == '\0')
O (fatal, &v->fileinfo, _("empty variable name"));
@@ -2020,7 +2019,7 @@ sync_Path_environment ()
{
static char *environ_path = NULL;
char *oldpath = environ_path;
- char *path = allocated_variable_expand ("PATH=$(PATH)");
+ char *path = allocated_expand_string ("PATH=$(PATH)");
if (!path)
return;
diff --git a/src/variable.h b/src/variable.h
index 218c9964..195cc360 100644
--- a/src/variable.h
+++ b/src/variable.h
@@ -127,15 +127,14 @@ void install_variable_buffer (char **bufp, size_t *lenp);
void restore_variable_buffer (char *buf, size_t len);
char *swap_variable_buffer (char *buf, size_t len);
-char *variable_expand_string (char *line, const char *string, size_t length);
-char *variable_expand (const char *line);
-char *variable_expand_for_file (const char *line, struct file *file);
-char *allocated_variable_expand_for_file (const char *line, struct file *file);
-#define allocated_variable_expand(line) \
- allocated_variable_expand_for_file (line, (struct file *) 0)
+char *expand_string_buf (char *buf, const char *string, size_t length);
+#define expand_string(s) expand_string_buf (NULL, (s), SIZE_MAX)
+char *expand_string_for_file (const char *string, struct file *file);
+char *allocated_expand_string_for_file (const char *line, struct file *file);
+#define allocated_expand_string(s) allocated_expand_string_for_file ((s), NULL)
char *expand_argument (const char *str, const char *end);
char *recursively_expand_for_file (struct variable *v, struct file *file);
-#define recursively_expand(v) recursively_expand_for_file (v, NULL)
+#define recursively_expand(v) recursively_expand_for_file ((v), NULL)
/* function.c */
int handle_function (char **op, const char **stringp);
@@ -232,8 +231,3 @@ char **target_environment (struct file *file, int recursive);
struct pattern_var *create_pattern_var (const char *target,
const char *suffix);
-
-extern int export_all_variables;
-
-#define MAKELEVEL_NAME "MAKELEVEL"
-#define MAKELEVEL_LENGTH (CSTRLEN (MAKELEVEL_NAME))
diff --git a/src/vpath.c b/src/vpath.c
index bb369455..873a9c94 100644
--- a/src/vpath.c
+++ b/src/vpath.c
@@ -71,7 +71,7 @@ build_vpath_lists (void)
/* If there is a VPATH variable with a nonnull expanded value, construct the
general VPATH list from it. */
- p = variable_expand ("$(strip $(VPATH))");
+ p = expand_string ("$(strip $(VPATH))");
if (*p != '\0')
{
@@ -95,7 +95,7 @@ build_vpath_lists (void)
/* If there is a GPATH variable with a nonnull expanded value, construct the
GPATH list from it. */
- p = variable_expand ("$(strip $(GPATH))");
+ p = expand_string ("$(strip $(GPATH))");
if (*p != '\0')
{
diff --git a/src/w32/subproc/sub_proc.c b/src/w32/subproc/sub_proc.c
index 4331973a..be32d9ef 100644
--- a/src/w32/subproc/sub_proc.c
+++ b/src/w32/subproc/sub_proc.c
@@ -615,7 +615,7 @@ process_begin(
char **argvi = argv;
size_t arglen = 0;
- strcpy(buf, variable_expand ("$(SHELL)"));
+ strcpy(buf, expand_string ("$(SHELL)"));
shell_name = &buf[0];
strcpy(exec_fname, "-c");
/* Construct a single command string in argv[0]. */