diff options
author | Boris Kolpackov <boris@kolpackov.net> | 2004-09-28 18:13:55 +0000 |
---|---|---|
committer | Boris Kolpackov <boris@kolpackov.net> | 2004-09-28 18:13:55 +0000 |
commit | fb6410f43583a9e0b457d675e1bc2d1ed5ba279b (patch) | |
tree | 9fe0b1ee1ec8a39a284cc418b1b64bc748d8b4d5 | |
parent | 341312cc57eba0a1888b3dc89510894e3e7e42c9 (diff) | |
download | gunmake-fb6410f43583a9e0b457d675e1bc2d1ed5ba279b.tar.gz |
Implemented dontcare flag inheritance when rebuilding makefiles.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | remake.c | 31 | ||||
-rw-r--r-- | tests/ChangeLog | 5 | ||||
-rw-r--r-- | tests/scripts/features/include | 12 |
4 files changed, 52 insertions, 1 deletions
@@ -1,3 +1,8 @@ +2004-09-28 Boris Kolpackov <boris@kolpackov.net> + + * remake.c (update_file_1): When rebuilding makefiles inherit + dontcare flag from a target that triggered update. + 2004-09-27 Boris Kolpackov <boris@kolpackov.net> * variable.c (initialize_file_variables): Mark pattern-specific @@ -468,6 +468,7 @@ update_file_1 (struct file *file, unsigned int depth) { FILE_TIMESTAMP mtime; int maybe_make; + int dontcare = 0; check_renamed (d->file); @@ -491,7 +492,21 @@ update_file_1 (struct file *file, unsigned int depth) d->file->parent = file; maybe_make = must_make; + + /* Inherit dontcare flag from our parent. */ + if (rebuilding_makefiles) + { + dontcare = d->file->dontcare; + d->file->dontcare = file->dontcare; + } + + dep_status |= check_dep (d->file, depth, this_mtime, &maybe_make); + + /* Restore original dontcare flag. */ + if (rebuilding_makefiles) + d->file->dontcare = dontcare; + if (! d->ignore_mtime) must_make = maybe_make; @@ -528,10 +543,26 @@ update_file_1 (struct file *file, unsigned int depth) for (d = file->deps; d != 0; d = d->next) if (d->file->intermediate) { + int dontcare = 0; + FILE_TIMESTAMP mtime = file_mtime (d->file); check_renamed (d->file); d->file->parent = file; + + /* Inherit dontcare flag from our parent. */ + if (rebuilding_makefiles) + { + dontcare = d->file->dontcare; + d->file->dontcare = file->dontcare; + } + + dep_status |= update_file (d->file, depth); + + /* Restore original dontcare flag. */ + if (rebuilding_makefiles) + d->file->dontcare = dontcare; + check_renamed (d->file); { diff --git a/tests/ChangeLog b/tests/ChangeLog index 8420705..87c64d5 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,8 @@ +2004-09-28 Boris Kolpackov <boris@kolpackov.net> + + * scripts/features/include: Test dontcare flag inheritance + when rebuilding makefiles. + 2004-09-27 Boris Kolpackov <boris@kolpackov.net> * scripts/features/patspecific_vars: Test exported variables. diff --git a/tests/scripts/features/include b/tests/scripts/features/include index 5f20ad8..f48cbd3 100644 --- a/tests/scripts/features/include +++ b/tests/scripts/features/include @@ -16,7 +16,7 @@ open(MAKEFILE,"> $makefile"); print MAKEFILE <<EOF; \#Extra space at the end of the following file name -include $makefile2 +include $makefile2 all: ; \@echo There should be no errors for this makefile. -include nonexistent.mk @@ -78,5 +78,15 @@ hello: ; @echo hello "hello\n" ); +# Test inheritance of dontcare flag when rebuilding makefiles. +# +run_make_test(' +.PHONY: all +all: ; @: + +-include foo + +foo: bar; @: +', '', ''); 1; |