On Mon, Jun 14, 2010 at 4:18 PM, German Escallon <[email protected]>wrote:
> First things first. How can I know if my script succeeded or not?? I've > tried reading and printing the $? environment variable. Here's what I've > tried with a script that should always fail. > > e.g: > @$(shell /path/to/my/script.sh) > @echo "result: $$?" > That is TWO shell scripts, from the point of view of make. Change it to: @/path/to/my/script.sh > and it will work as you want, as long as the script itself returns non-0 for error. Do not use $(shell) to execute shell code from within a recipe (except under very unusual conditions, maybe). > The line always prints "result: 0", regardless of the result. Because make sees it as a line of its own, and each logical line is a different script as far as make is concerned, and it starts a different subshell for each line. > When I run this same script on the console, and then echo the $? variable, > I always get the error code I'm hoping for. > ECHOing the error code will return code 0 (regardless of what it prints) and will not cause make to exit. -- ----- stephan beal http://wanderinghorse.net/home/stephan/
_______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make
