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
===


This method is used in 'automake' generated Makefiles in several places (e.g. in the 
"help2man" part, in my previous emails) - and now I understand why it didn't stop the 
"make" on Linuxes but caused build failure on FreeBSD-10.

Hope this helps,
 -gordon




Reply via email to