[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: make-trouble from a newb: To hell with shell

From: Paul Smith
Subject: Re: make-trouble from a newb: To hell with shell
Date: Thu, 03 Jul 2008 12:33:27 -0400

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

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.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]