From 182d89a3e9e9477e6fd7fae846e2033ee6e287cd Mon Sep 17 00:00:00 2001 From: Neil Booth Date: Wed, 14 Aug 2002 22:34:50 +0000 Subject: [PATCH] re PR preprocessor/7358 (Changes to Sun's make Dependencies) 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 | 10 ++++++++++ gcc/c-opts.c | 8 ++++++-- gcc/cppfiles.c | 7 +++++-- gcc/cpplib.h | 3 +++ gcc/doc/cppenv.texi | 3 ++- 5 files changed, 26 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a411d93976d..2142ccd750a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2002-08-15 Neil Booth + + 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 PR preprocessor/7526 diff --git a/gcc/c-opts.c b/gcc/c-opts.c index 0b98308b12b..36f11f02288 100644 --- a/gcc/c-opts.c +++ b/gcc/c-opts.c @@ -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) diff --git a/gcc/cppfiles.c b/gcc/cppfiles.c index 63e6f750ecb..892583e2329 100644 --- a/gcc/cppfiles.c +++ b/gcc/cppfiles.c @@ -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) diff --git a/gcc/cpplib.h b/gcc/cpplib.h index 3640d44605a..3d2cac707b5 100644 --- a/gcc/cpplib.h +++ b/gcc/cpplib.h @@ -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. */ diff --git a/gcc/doc/cppenv.texi b/gcc/doc/cppenv.texi index a233313e66e..7a913f15903 100644 --- a/gcc/doc/cppenv.texi +++ b/gcc/doc/cppenv.texi @@ -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 -- 2.30.2