aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Nord <[email protected]>2015-11-16 13:23:06 +0100
committerHenrik Nord <[email protected]>2015-11-16 13:23:06 +0100
commitdc61e819e190ae65b69fbb013511b25023f713ff (patch)
tree25485d0ca995e1b91a8716dd0e6e89fe27948dab
parent01ecb1cd777b82259bb29824ac73906831c017fe (diff)
parentfb1c22169c96b51f331c0e7885cdbd0806585da2 (diff)
downloadotp-dc61e819e190ae65b69fbb013511b25023f713ff.tar.gz
otp-dc61e819e190ae65b69fbb013511b25023f713ff.tar.bz2
otp-dc61e819e190ae65b69fbb013511b25023f713ff.zip
Merge branch 'legoscia/erl-make-exit-code' into maint
* legoscia/erl-make-exit-code: Make erl -make return non-zero exit code on failure OTP-13107
-rw-r--r--erts/etc/common/erlexec.c2
-rw-r--r--lib/tools/src/make.erl10
2 files changed, 10 insertions, 2 deletions
diff --git a/erts/etc/common/erlexec.c b/erts/etc/common/erlexec.c
index cde0b25a2a..1e7c56dd8e 100644
--- a/erts/etc/common/erlexec.c
+++ b/erts/etc/common/erlexec.c
@@ -718,7 +718,7 @@ int main(int argc, char **argv)
* on itself here. We'll avoid doing that.
*/
if (strcmp(argv[i], "-make") == 0) {
- add_args("-noshell", "-noinput", "-s", "make", "all", NULL);
+ add_args("-noshell", "-noinput", "-s", "make", "all_or_nothing", NULL);
add_Eargs("-B");
haltAfterwards = 1;
i = argc; /* Skip rest of command line */
diff --git a/lib/tools/src/make.erl b/lib/tools/src/make.erl
index 96c3e0e506..5d5a1ef2bd 100644
--- a/lib/tools/src/make.erl
+++ b/lib/tools/src/make.erl
@@ -25,12 +25,20 @@
%% If Emakefile is missing the current directory is used.
-module(make).
--export([all/0,all/1,files/1,files/2]).
+-export([all_or_nothing/0,all/0,all/1,files/1,files/2]).
-include_lib("kernel/include/file.hrl").
-define(MakeOpts,[noexec,load,netload,noload]).
+all_or_nothing() ->
+ case all() of
+ up_to_date ->
+ up_to_date;
+ error ->
+ halt(1)
+ end.
+
all() ->
all([]).