Paul Smith wrote: > On Sun, 2013-04-28 at 20:00 +0300, Eli Zaretskii wrote: > > > I've pushed a change to add a new argument to the -O/--output-sync > > > option, "job", to write output after each line of the recipe. > > > > What is its purpose? To avoid mixing in the same screen line > > characters from several parallel sub-makes? (That does happen, albeit > > rarely.) Or is it something else? > > I'm not sure exactly what you mean by your second sentence. However I > asked the same question you did about this feature. > > Frank had a use-case: he was tracking which jobs were active/still > running by making all his recipes look like this: > > target: > @echo start: $@ > ... recipe ... > @echo end: $@ > > This allows a higher-level, dynamic interface to track which jobs are > running, when they started, etc. and track the build.
Indeed. And to answer Eli's direct question: Yes, it avoids mixing output from several parallel sub-makes, but not only characters in the same line (that's rare indeed), but also, e.g. several distinct messages produce by two parallel jobs, e.g. this won't happen: foo.c:1: blah bar.c:1: blah foo.c:2: blah bar.c:2: blah > Although I implemented this because it was simple, I'm not so sure this > is a real use-case. Or to be more accurate, I agree that it's a real > use-case but I don't think this is a good solution to the problem. > > I suspect that a better solution might be to create a "machine > interface" mode for make, as some other GNU CLI tools like GDB, etc. > have. This interface would be well-defined and unchanging and easily > machine-parseable, and allow people to write front-ends to more > accurately examine make's output. Sure, it would even simplify my job -- I wouldn't have to put start/end messages in (selected) recipes manually, but could just get information about all running command lines (and possibly filter out uninteresting ones). But I guess implementation of this feature in make is a bit more work, so for my purpose I went the (at the moment) easier route. If you'd ever like to implement such an interface, please let me know (CC, as I'm not subscribed). I might be able to give some input, or at least test it with my use cases. (FWIW, what I'd like of such a feature is that it's text (line) based, so it can easily be parsed by scripts, and that it in some form contains the target name and the command line.) _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make