summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2013-05-01 07:59:24 -0400
committerPaul Smith <psmith@gnu.org>2013-05-01 07:59:24 -0400
commit9acb657eb18a35a920fa24615e5f80060e656e72 (patch)
tree0f300a1985cd8d24d2979ac75c44b6ea1070a825
parent19a69bafc0913f13e334b5f56d95c693fab29023 (diff)
downloadgunmake-9acb657eb18a35a920fa24615e5f80060e656e72.tar.gz
Don't synchronize output for recursive make unless -Omake
-rw-r--r--ChangeLog5
-rw-r--r--job.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 6badda8..148ca6a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-05-01 Paul Smith <psmith@gnu.org>
+
+ * job.c (start_job_command): Don't redirect output for recursive
+ make jobs, unless we're in makefile synchronization mode.
+
2013-04-29 Eli Zaretskii <eliz@gnu.org>
* w32/include/dlfcn.h: New file.
diff --git a/job.c b/job.c
index 2a470b6..2488808 100644
--- a/job.c
+++ b/job.c
@@ -1707,8 +1707,10 @@ start_job_command (struct child *child)
#endif
#ifdef OUTPUT_SYNC
- /* Divert child output into tempfile(s) if output_sync in use. */
- if (output_sync)
+ /* Divert child output if output_sync in use. Don't capture
+ recursive make output unless we are synchronizing "make" mode. */
+ if (output_sync && (output_sync == OUTPUT_SYNC_MAKE
+ || !(flags & COMMANDS_RECURSE)))
{
int outfd = fileno (stdout);
int errfd = fileno (stderr);