summaryrefslogtreecommitdiff
path: root/output.h
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2013-09-14 01:04:04 -0400
committerPaul Smith <psmith@gnu.org>2013-09-14 01:04:04 -0400
commitc5bfa400448a14f4c8d4fc51dd56ea17176e1f84 (patch)
tree9a46584dec752bdf9a1a50fc7941d9344fece30d /output.h
parentdeff9dacc97cc20015d3018992f2c77cb7fab102 (diff)
downloadmake-c5bfa400448a14f4c8d4fc51dd56ea17176e1f84.tar.gz
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.
Diffstat (limited to 'output.h')
-rw-r--r--output.h12
1 files changed, 11 insertions, 1 deletions
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