From: Krzysztof Nosek <address@hidden>
To: address@hidden, address@hidden
Subject: Re: Don't see any output to stdout from commands
Date: Thu, 07 Sep 2006 09:40:01 +0200
> [...]
> I've just started using GNU make on my Windows machine. Previously I was
> using nmake. The one problem I noticed thus far is that I don't see any
> output from the commands. For the most part all the commands are the
same,
> namely I run devenv.exe to compile a VS.NET project file. Under nmake
the
> output to stdout from devenv displayed in the console window I ran nmake
> from. However since I switched to GNU make I don't see any output to
> stdout.
> Am I doing something wrong or is this the expected behavior? By the way,
> it does correctly build everything, I just don't see any progress
besides
> make echoing the command.
> [...]
Nicholas, Eli,
That's definitely not GNU make's fault but MS devenv's. This problem is
commonly known issue among all those who ever faced building MS Visual
Studio
projects from the command line environment, be it GNU make or anything else
apart from native Microsoft solutions (nmake, cmd).
First of all, there are two devenv binaries, devenv.com and devenv.exe, one
of
them actually calling another. The difference between them is in creating
stdout output, but neither does no good job. Devenv.com is buffering its
output without flushing it. And if you make any of them write to a named
logfile, they keep the file exclusively open all the time, so you can't
tail
it or whatever. The cumbersome but (most times...) working solution is to
stick to the contents of the output through the named pipe. It's neither
handy
nor perfect, but still better than nothing. See an example discussion on
http://mathieu.fenniak.net/devenv-vs-the-programmer/ and contact me for
perlish solution of the wrapper described there.
By the way, devenv is very slow for building, ignores all of the
environment
settings and if devenv.exe's command line syntax is incorrect, it's likely
to
show you msgbox from GUI and wait for interaction instead of returning
understandable error code to the parent shell. And if talking about devenv
replacements, there is not-usable-for-most-things vcbuild
(http://www.gotdotnet.com/team/cplusplus/), which does ignore project
dependencies inside solution files and returns random return values to the
shell which give no but fuzzy idea of what actually happened during the
build.
My sincere salutations to all folks forced to build with MS Visual Studio,
Chriss Nosek