On 2007-2-21 6:18 UTC, David Boyce wrote:
> How does one determine the exit status of the shell forked by $(shell
> ...)? I see nothing about it in the 3.81 online manual. I need to run
> a command for which the null string is a perfectly legal
> output value, so I can't get away with anything like this:
>
> foo := $(shell mycommand)
>
> ifeq($foo),)
> <code to handle error conditions>
> endif
>
> And I don't just need to abort on error either. If the command fails I
> have another (slower and less reliable) way to get the data whereas if
> it succeeds with null output I want to continue on happily. Which
> means I need exit status. Is this an oversight in the spec?
Consider this makefile:
x := $(shell false)
.PHONY: all
all:
@echo $x
The command fails, and 'make' stops--on msw, e.g., I get:
process_begin: CreateProcess(NULL, false, ...) failed.
But change the above variable definition to:
x := $(shell false || echo "alternative")
and it does what I think you want:
C:/tmp[0]$make
alternative
_______________________________________________
Help-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-make