On Wed, Mar 31, 2010 at 5:16 AM, Stephan Beal <[email protected]> wrote: > The return value of cmd2 WILL be ignored here.
Note, however, that this is a temporary/non-portable phenomenon. According to the recently clarified POSIX standard, make is in fact supposed to abort if such an "internal" command failure occurs. GNU make has historically not done so but other make programs do and GNU make's next release (3.82) will have to conform. So this would be a good time to code defensively and not assume the current behavior. > That said, you can explicitly force the return code to be 0 with: > all: > cmd1 ; cmd2 || true ; cmd3 Minor point, but there's a shell builtin ":" which does the same thing and is faster and more robust (it works natively on Windows, for one thing). I wrote up a (modestly titled) "Shell Scripter's Bible" long ago for people I worked with and one of the entries said that it's a good idea to think of ||: as a special atomic shell operator meaning "ignore previous exit code". Not literally true, of course, but a handy mnemonic. If you change SHELL you may need to use 'true' but with the default shell ':' is better. David Boyce _______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make
