diff options
author | neil <neil@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-01-05 07:50:24 +0000 |
---|---|---|
committer | neil <neil@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-01-05 07:50:24 +0000 |
commit | 2e399de6a092e30322c99830608049b38bf5e2ef (patch) | |
tree | 4a7fde9382b70c566caa911a671a363b63d0df58 /gcc/mkdeps.c | |
parent | e1efd9143a70b24bb7b74f3faa121c0e7e01fbbb (diff) | |
download | gcc-2e399de6a092e30322c99830608049b38bf5e2ef.tar.gz |
* cpp.texi: Update for -MP. Clarify behaviour of -MT.
* cppinit.c (initialize_dependency_output): Update.
(cpp_finish): Output dummy targets for -MP.
(OPT_MP): New.
(cpp_handle_option): Handle -MP. Don't quote -MT options.
* cpplib.h (struct cpp_options): Add deps_phony_targets.
* gcc.c (cpp_options): Update to handle -MP.
* mkdeps.c (deps_add_target, deps_add_default_target): Update
to quote only the default target.
(deps_phony_targets): Insert a preceding newline. Rename from
deps_dummy_targets for consistency.
* mkdeps.h: Update
java:
* lang.c (lang_decode_option): Change -MA to -MP.
* jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
Update to new prototype; do quote targets.
(jcf_dependency_write): Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38707 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/mkdeps.c')
-rw-r--r-- | gcc/mkdeps.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/gcc/mkdeps.c b/gcc/mkdeps.c index 8d3e0bfce89..f83d82f9e30 100644 --- a/gcc/mkdeps.c +++ b/gcc/mkdeps.c @@ -73,8 +73,7 @@ munge (filename) break; case '$': - /* '$' is quoted by doubling it. This can mishandle things - like "$(" but there's no easy fix. */ + /* '$' is quoted by doubling it. */ len++; break; } @@ -172,13 +171,14 @@ deps_free (d) free (d); } +/* Adds a target T. We make a copy, so it need not be a permanent + string. QUOTE is true if the string should be quoted. */ void -deps_add_target (d, t) +deps_add_target (d, t, quote) struct deps *d; const char *t; + int quote; { - t = munge (t); /* Also makes permanent copy. */ - if (d->ntargets == d->targets_size) { d->targets_size *= 2; @@ -186,11 +186,17 @@ deps_add_target (d, t) d->targets_size * sizeof (const char *)); } + if (quote) + t = munge (t); /* Also makes permanent copy. */ + else + t = xstrdup (t); + d->targetv[d->ntargets++] = t; } /* Sets the default target if none has been given already. An empty - string as the default target in interpreted as stdin. */ + string as the default target in interpreted as stdin. The string + is quoted for MAKE. */ void deps_add_default_target (d, tgt) struct deps *d; @@ -203,7 +209,7 @@ deps_add_default_target (d, tgt) return; if (tgt[0] == '\0') - deps_add_target (d, "-"); + deps_add_target (d, "-", 1); else { tgt = base_name (tgt); @@ -220,7 +226,7 @@ deps_add_default_target (d, tgt) strcpy (suffix, OBJECT_SUFFIX); else strcat (o, OBJECT_SUFFIX); - deps_add_target (d, o); + deps_add_target (d, o, 1); } } @@ -293,7 +299,7 @@ deps_write (d, fp, colmax) } void -deps_dummy_targets (d, fp) +deps_phony_targets (d, fp) const struct deps *d; FILE *fp; { @@ -301,6 +307,7 @@ deps_dummy_targets (d, fp) for (i = 1; i < d->ndeps; i++) { + putc ('\n', fp); fputs (d->depv[i], fp); putc (':', fp); putc ('\n', fp); |