aboutsummaryrefslogtreecommitdiffstats
path: root/src/redo-ifchange.c
diff options
context:
space:
mode:
authorTharre <tharre3@gmail.com>2014-11-16 17:30:35 +0100
committerTharre <tharre3@gmail.com>2014-11-16 17:30:35 +0100
commitb4c1b2145d6a0b1ec4219847dc26877046f84e8b (patch)
tree6bb3bc8b35afc7a76bf53d93227b07e91501b807 /src/redo-ifchange.c
parent19cba89127381d9dc06d1e823b123231496e9a3d (diff)
downloadredo-b4c1b2145d6a0b1ec4219847dc26877046f84e8b.tar.gz
redo-b4c1b2145d6a0b1ec4219847dc26877046f84e8b.tar.xz
redo-b4c1b2145d6a0b1ec4219847dc26877046f84e8b.zip
Change the way redo updates targets.
It's done a lot more efficiently now, as we are no longer checking if a target is out-of-date before we rebuild it, but instead rebuild subtargets directly when they are checked. We also now correctly depend on .do files.
Diffstat (limited to 'src/redo-ifchange.c')
-rw-r--r--src/redo-ifchange.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/redo-ifchange.c b/src/redo-ifchange.c
index cfc017b..d7b4af0 100644
--- a/src/redo-ifchange.c
+++ b/src/redo-ifchange.c
@@ -14,19 +14,13 @@
int main(int argc, char *argv[]) {
if (!environment_sane()) {
- fprintf(stderr, "redo: environment variables are missing, \
- please use %s only in do scripts.\n", argv[0]);
+ fprintf(stderr, "redo: environment variables are missing, "
+ "please use %s only in do scripts.\n", argv[0]);
exit(1);
}
for (int i = 1; i < argc; ++i) {
- /*debug("Testing if %s is up-to-date ...\n", argv[i]);*/
- if (has_changed(argv[i], 'c', false)) {
- /*printf("=> no\n");*/
- build_target(argv[i]);
- } else {
- /*printf("=> yes\n");*/
- }
+ update_target(argv[i], 'c');
add_dep(argv[i], NULL, 'c');
}