On Sat, Mar 22, 2014 at 10:36 AM, Assaf Gordon <[email protected]> wrote:
> One more critical difference (in building on FreeBSD-10 vs. common linux):
>
> The following contrived Makefile, works on Linux (with either GNU make or
> bmake), but fails on FreeBSD-10:
> ===
>     $ cat makefile
>     all:
>         non_existing_command ; true
> ===
>
> On Linux (using GNU make + 'dash' as the shell):
> ===
>     $ make && echo ok
>     non_existing_command ; true
>     /bin/sh: non_existing_command: not found
>     ok
>     $ bmake && echo ok
>     non_existing_command ; true
>     /bin/sh: non_existing_command: not found
>     ok
> ===
>
> On FreeBSD-10 (using bmake and FreeBSD's native 'sh'):
> ===
>     $ make
>     non_existing_command ; true
>     non_existing_command: not found
>     *** Error code 127
>
>     Stop.
>     make: stopped in /usr/home/gordon/bmake_differences

Hi Gordon,
That makes it look like the FreeBSD bmake invokes each line
using a shell with the equivalent of "set -e" in effect. That is the
trouble. Do they document if/how they set the SHELL environment
variable? You can probably cause GNU make to misbehave in
the same manner by setting SHELL  to something like "/bin/sh -e".

Reply via email to