diff options
author | Tharre <tharre3@gmail.com> | 2017-08-27 11:07:28 +0200 |
---|---|---|
committer | Tharre <tharre3@gmail.com> | 2017-08-27 13:47:51 +0200 |
commit | 1abdcb049d4500f899306cf678e1b1a5e50880bb (patch) | |
tree | 6e41c048347fc3cba523ed5bbd66f21045c3d14b | |
parent | 16492e559f4aeaa454b4ca6826648256a730529e (diff) | |
download | redo-1abdcb049d4500f899306cf678e1b1a5e50880bb.tar.gz redo-1abdcb049d4500f899306cf678e1b1a5e50880bb.tar.xz redo-1abdcb049d4500f899306cf678e1b1a5e50880bb.zip |
Abort if a source target doesn't exist
-rw-r--r-- | src/build.c | 6 |
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; } |