aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTharre <tharre3@gmail.com>2017-08-27 11:07:28 +0200
committerTharre <tharre3@gmail.com>2017-08-27 13:47:51 +0200
commit1abdcb049d4500f899306cf678e1b1a5e50880bb (patch)
tree6e41c048347fc3cba523ed5bbd66f21045c3d14b
parent16492e559f4aeaa454b4ca6826648256a730529e (diff)
downloadredo-1abdcb049d4500f899306cf678e1b1a5e50880bb.tar.gz
redo-1abdcb049d4500f899306cf678e1b1a5e50880bb.tar.xz
redo-1abdcb049d4500f899306cf678e1b1a5e50880bb.zip
Abort if a source target doesn't exist
-rw-r--r--src/build.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/build.c b/src/build.c
index 5bcee3b..a2dfbc1 100644
--- a/src/build.c
+++ b/src/build.c
@@ -497,9 +497,11 @@ static int handle_c(dep_info *dep) {
if (dsv_parse_file(&ctx_dep, depfd)) {
/* parsing failed */
log_info("%s ood: parsing of dependency file failed\n", dep->target);
+ fclose(depfd);
retval = build_target(dep);
goto exit;
}
+ fclose(depfd);
if (sscanf(ctx_dep.fields[2], "%"SCNu32, &dep->magic) < 1) {
retval = build_target(dep);
@@ -512,8 +514,7 @@ static int handle_c(dep_info *dep) {
fatal("redo: failed to open %s", dep->target);
} else if (ctx_dep.fields[3][0] == 's') {
/* target is a source and must not be rebuild */
- retval = 1;
- goto exit2;
+ die("Source %s not found and will not be rebuilt.\n", dep->target);
} else {
log_info("%s ood: target file nonexistent\n", dep->target);
retval = build_target(dep);
@@ -605,6 +606,5 @@ exit2:
free(ctx_dep.fields[i]);
exit:
dsv_free(&ctx_dep);
- fclose(depfd);
return retval;
}