On Thu, 2008-07-03 at 08:05 -0700, Uffze wrote:
> I don't have a clue why on some lines make starts the tools directly
> (so they work), while on other lines the tools are started via the gnu
> shell (which uses different paths than window and results in the fact
> that they can't be found).

I can't say why the shell isn't found or how to resolve that problem,
but I can tell you why sometimes it's used and sometimes it's not.

Make does not contain a complete implementation of the shell language.
On UNIX, in particular, which is where make originated, the shell has a
complex and powerful syntax and reimplementing the shell inside make
isn't something we want to attempt.  On the other hand, invoking a shell
takes extra time and makes the build slower.

So, make has a "fast path" and a "slow path".  It will examine your
recipe line and if there are any characters in it which are deemed
"special" (that is, seem to require a full shell to resolve, such as
shell variables or multiple commands or whatever), then make uses the
"slow path", which invokes a real shell and passes the command line to
it.

If the recipe line contains nothing that is "shell-worthy", then it uses
the "fast path", which just invokes the command line directly with no
shell processing.



_______________________________________________
Make-w32 mailing list
Make-w32@gnu.org
http://lists.gnu.org/mailman/listinfo/make-w32

Reply via email to