re PR preprocessor/7358 (Changes to Sun's make Dependencies)
authorNeil Booth <neil@daikokuya.co.uk>
Wed, 14 Aug 2002 22:34:50 +0000 (22:34 +0000)
committerNeil Booth <neil@gcc.gnu.org>
Wed, 14 Aug 2002 22:34:50 +0000 (22:34 +0000)
PR preprocessor/7358
* c-opts.c (check_deps_environment_vars): Ignore main file
for SUNPRO_DEPENDENCIES.
* cppfiles.c (stack_include_file): Ignore main file if
appropriate.
* cpplib.h (struct cpp_options): New member in deps.
* doc/cppenv.texi: Update.

From-SVN: r56333

gcc/ChangeLog
gcc/c-opts.c
gcc/cppfiles.c
gcc/cpplib.h
gcc/doc/cppenv.texi

index a411d93976d8f2fa7cc1c55ccaee86c6509e95e9..2142ccd750a7d5f8d29e38d5406e7d7454165c94 100644 (file)
@@ -1,3 +1,13 @@
+2002-08-15  Neil Booth  <neil@daikokuya.co.uk>
+
+       PR preprocessor/7358
+       * c-opts.c (check_deps_environment_vars): Ignore main file
+       for SUNPRO_DEPENDENCIES.
+       * cppfiles.c (stack_include_file): Ignore main file if
+       appropriate.
+       * cpplib.h (struct cpp_options): New member in deps.
+       * doc/cppenv.texi: Update.
+
 2002-08-14  Neil Booth  <neil@daikokuya.co.uk>
 
        PR preprocessor/7526
index 0b98308b12bbfff2555766635422f54f863a1975..36f11f02288267d62af855f94fc03355a50b1cef 100644 (file)
@@ -1467,7 +1467,8 @@ c_common_finish ()
    DEPS_TARGET", where OUTPUT_FILE is the file to write deps info to
    and DEPS_TARGET is the target to mention in the deps.  They also
    result in dependency information being appended to the output file
-   rather than overwriting it.  */
+   rather than overwriting it, and like Sun's compiler
+   SUNPRO_DEPENDENCIES suppresses the dependency on the main file.  */
 static void
 check_deps_environment_vars ()
 {
@@ -1480,7 +1481,10 @@ check_deps_environment_vars ()
     {
       GET_ENVIRONMENT (spec, "SUNPRO_DEPENDENCIES");
       if (spec)
-       cpp_opts->deps.style = DEPS_SYSTEM;
+       {
+         cpp_opts->deps.style = DEPS_SYSTEM;
+         cpp_opts->deps.ignore_main_file = true;
+       }
     }
 
   if (spec)
index 63e6f750ecb1daac003f49854a078970a9c51ed1..892583e2329df3022ad453f8ae8f82f1213f6769 100644 (file)
@@ -318,9 +318,12 @@ stack_include_file (pfile, inc)
   sysp = MAX ((pfile->map ? pfile->map->sysp : 0),
              (inc->foundhere ? inc->foundhere->sysp : 0));
 
-  /* For -M, add the file to the dependencies on its first inclusion.  */
+  /* Add the file to the dependencies on its first inclusion.  */
   if (CPP_OPTION (pfile, deps.style) > !!sysp && !inc->include_count)
-    deps_add_dep (pfile->deps, inc->name);
+    {
+      if (pfile->buffer || CPP_OPTION (pfile, deps.ignore_main_file) == 0)
+       deps_add_dep (pfile->deps, inc->name);
+    }
 
   /* Not in cache?  */
   if (! inc->buffer)
index 3640d44605a1fbeb9f0a75628a2f3647f88f68d1..3d2cac707b53522459c9ecc1bf31aa7cff3607b3 100644 (file)
@@ -387,6 +387,9 @@ struct cpp_options
     /* Generate phony targets for each dependency apart from the first
        one.  */
     bool phony_targets;
+
+    /* If true, no dependency is generated on the main file.  */
+    bool ignore_main_file;
   } deps;
 
   /* Target-specific features set by the front end or client.  */
index a233313e66e6ad45de1233d9689992f4ffc481ef..7a913f15903c411bf47f9556ea6ac03b2dfeb9a5 100644 (file)
@@ -72,7 +72,8 @@ with an optional @option{-MT} switch too.
 @cindex dependencies for make as output
 This variable is the same as @env{DEPENDENCIES_OUTPUT} (see above),
 except that system header files are not ignored, so it implies
-@option{-M} rather than @option{-MM}.
+@option{-M} rather than @option{-MM}.  However, the dependence on the
+main input file is omitted.
 @ifset cppmanual
 @xref{Invocation}.
 @end ifset