diff options
author | Paul Smith <psmith@gnu.org> | 2013-04-28 01:19:19 -0400 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2013-04-28 01:19:19 -0400 |
commit | 7f01830927969a8386050617385e59070fe9f34b (patch) | |
tree | b211c33f53be418ea4bf051b503aea10607f6d49 /main.c | |
parent | 30843dea3a17f84b7456f68d75e5cd6bd5c5e11b (diff) | |
download | gunmake-7f01830927969a8386050617385e59070fe9f34b.tar.gz |
Add support for per-job output sync.
A new flag to the -O/--output-sync, "job", selects a per-job (that is, per
line of a recipe) output synchronization. To support this move the close of
the temp file out of the sync_output() function and don't do it until we free
the child, since we may call sync_output() multiple times in a given recipe.
When we set up for a new temp file, if we're in per-job mode we truncate the
file and seek to the beginning to re-use it for every job.
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -695,7 +695,11 @@ decode_output_sync_flags (void) { const char *p = *pp; - if (streq (p, "target")) + if (streq (p, "none")) + output_sync = OUTPUT_SYNC_NONE; + else if (streq (p, "job")) + output_sync = OUTPUT_SYNC_JOB; + else if (streq (p, "target")) output_sync = OUTPUT_SYNC_TARGET; else if (streq (p, "make")) output_sync = OUTPUT_SYNC_MAKE; |