+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
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 ()
{
{
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)
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)
/* 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. */
@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