From 78ac5bd9c71414cad7248943f28d964a63529ec3 Mon Sep 17 00:00:00 2001
From: Roland McGrath <roland@redhat.com>
Date: Thu, 10 Aug 1995 23:58:12 +0000
Subject: [PATCH] (define_makeflags): Omit command line variable definitions
 from MFLAGS value.

---
 main.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/main.c b/main.c
index 2c92793c..4cfb4d7e 100644
--- a/main.c
+++ b/main.c
@@ -1778,6 +1778,24 @@ define_makeflags (all, makefile)
       flags = flags->next;
     }
 
+
+  /* Define MFLAGS before appending variable definitions.  */
+
+  if (p == &flagstring[1])
+    /* No flags.  */
+    flagstring[0] = '\0';
+  else if (p[-1] == '-')
+    /* Kill the final space and dash.  */
+    p[-2] = '\0';
+  else
+    /* Terminate the string.  */
+    *p = '\0';
+
+  /* Since MFLAGS is not parsed for flags, there is no reason to
+     override any makefile redefinition.  */
+  (void) define_variable ("MFLAGS", 6, flagstring, o_env, 1);
+
+
   if (all && command_variables != 0)
     {
       /* Now write a reference to $(MAKEOVERRIDES), which contains all the
@@ -1842,9 +1860,6 @@ define_makeflags (all, makefile)
        We should not do this again on the second call, because that is
        after reading makefiles which might have done `unexport MAKEFLAGS'. */
     v->export = v_export;
-  /* Since MFLAGS is not parsed for flags, there is no reason to
-     override any makefile redefinition.  */
-  (void) define_variable ("MFLAGS", 6, flagstring, o_env, 1);
 }
 
 /* Print version information.  */