I am having a problem with logging to output from an automated build.
The build is done with a Makefile and the makefile utility.
The problem is that normal output like compiler command lines go to stdout and compile errors go to stderr.
I want to get the output from the build as it would show on the screen. So something like:
(stdout) CC -c file.cpp
(stderr) Compile error at file.cpp line 232, blah blah blah
(stdout) CC -c file2.cpp
What I tried (from a ksh script) is:
make -k > build.log 2> build.log
This results in a single log file but the problem is that the streams are buffered and so the result in the log file is all mixed up.
I could capture the output into 2 separate log files but then I would have no info on how to glue them back together into a single log file.
Is there a way to turn off buffering for stdout and stderr in this case?