On 14/01/2023, Mike Frysinger <vap...@gentoo.org> wrote: [...] >> I tried several other implementations and they follow the POSIX >> behaviour by default, adding -e only when errors are not suppressed. > > this is exactly my point. if i'm developing a project with automake > and i'm using gnu make, i can easily produce bad code that is not > portable. but the insidious part is that it doesn't fail for me, it > fails for my users who are not using gnu make, but using a > POSIX-compliant implementation that respects the `set -e` behavior.
But as I demonstrated, adding .POSIX doesn't actually make GNU make work the same as these "POSIX-by-default" implementations. It just gives it a different, GNU-specific behaviour, since GNU make apparently enables -e regardless of whether or not errors are suppressed. Does changing the behaviour in this way really improve anything for a maintainer that is only testing with GNU make? Without putting .POSIX in the Makefile, GNU is at least consistent with NetBSD here (which never uses -e) and probably also other modern BSD derivatives, as I think many have these days adopted NetBSD make. Cheers, Nick