]> git.ipfire.org Git - thirdparty/make.git/commitdiff
Formerly read.c.~66~
authorRoland McGrath <roland@redhat.com>
Thu, 15 Jul 1993 02:25:00 +0000 (02:25 +0000)
committerRoland McGrath <roland@redhat.com>
Thu, 15 Jul 1993 02:25:00 +0000 (02:25 +0000)
read.c

diff --git a/read.c b/read.c
index 76335faf4c5f0056fd84e9a3275f66a01c18872f..2d26f24d9a5cd0e5c71dff77d1793d3e944f0f05 100644 (file)
--- a/read.c
+++ b/read.c
@@ -143,7 +143,7 @@ read_all_makefiles (makefiles)
       {
        if (*p != '\0')
          *p++ = '\0';
-       read_makefile (name, 1);
+       read_makefile (name, RM_NO_DEFAULT_GOAL | RM_INCLUDED | RM_DONTCARE);
       }
 
     free (value);
@@ -503,17 +503,22 @@ read_makefile (filename, flags)
              v->export = v_noexport;
            }
        }
-      else if (word1eq ("include", 7))
+      else if (word1eq ("include", 7) || word1eq ("-include", 8))
        {
          /* We have found an `include' line specifying a nested
             makefile to be read at this point.  */
          struct conditionals *save, new_conditionals;
          struct nameseq *files;
+         /* "-include" (vs "include") says no
+            error if the file does not exist.  */
+         int noerror = p[0] == '-';
 
-         p = allocated_variable_expand (next_token (p + 8));
+         p = allocated_variable_expand (next_token (p + (noerror ? 9 : 8)));
          if (*p == '\0')
            {
-             makefile_error (filename, lineno, "no file name for `include'");
+             makefile_error (filename, lineno,
+                             "no file name for `%sinclude'",
+                             noerror ? "-" : "");
              continue;
            }
 
@@ -543,7 +548,8 @@ read_makefile (filename, flags)
              free (files);
              files = next;
 
-             read_makefile (name, 2);
+             read_makefile (name, (RM_INCLUDED | RM_NO_TILDE
+                                   | (noerror ? RM_DONTCARE : 0)));
            }
 
          /* Restore state.  */