gh-100220: Fix error handling in make rules #100328
Open
+42
−19
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Use
set -e
before compound shell commands in order to ensure that make targets fail correctly when at least one of the subcommands fail.This is necessary since make considers a target failed only if one of the shell invocations returns with unsuccessful exit status. If a shell script does not exit explicitly, the shell uses the exit status of the last executed command. This means that when multiple commands are executed (e.g. through a
for
loop), the exit statuses of prior command invocations are ignored.This can be either resolved by adding an explicit
|| exit 1
to every command that is expected to succeed, or by running the whole script withset -e
. The latter was used here as it the rules seem to be written with the assumption that individual commands were supposed to cause the make rules to fail.make sharedinstall
does not return failure if install commands fail #100220