From c5bfa400448a14f4c8d4fc51dd56ea17176e1f84 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Sat, 14 Sep 2013 01:04:04 -0400 Subject: Support the -Orecurse option properly. In this mode we still collect all the output from a given target and dump it at once. However we don't treat recursive lines any differently from non-recursive lines. Also we don't print enter/leave messages after every dump. However we do ensure that we always print them once to stdout, so the parent make will collect it properly. --- output.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'output.h') diff --git a/output.h b/output.h index a918504..2bb1c39 100644 --- a/output.h +++ b/output.h @@ -26,12 +26,22 @@ extern struct output *output_context; #define OUTPUT_SET(_new) do{ if ((_new)->syncout) output_context = (_new); }while(0) #define OUTPUT_UNSET() do{ output_context = NULL; }while(0) -void output_init (struct output *out, unsigned int syncout); +FILE *output_tmpfile (char **, const char *); + +/* Initialize and close a child output structure: if NULL do this program's + output (this should only be done once). */ +void output_init (struct output *out); void output_close (struct output *out); +/* In situations where output may be about to be displayed but we're not + sure if we've set it up yet, call this. */ void output_start (void); + +/* Show a message on stdout or stderr. Will start the output if needed. */ void outputs (int is_err, const char *msg); #ifdef OUTPUT_SYNC +int output_tmpfd (void); +/* Dump any child output content to stdout, and reset it. */ void output_dump (struct output *out); #endif -- cgit v1.2.3