summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien.pedron@dumbbell.fr>2015-08-13 16:45:15 +0200
committerJean-Sébastien Pédron <jean-sebastien.pedron@dumbbell.fr>2015-08-13 16:45:15 +0200
commit0fe7916899076f90f6ba3e8e73d077b3bd5b6d12 (patch)
treecdc2f1f6ddd8eeceb2332bbc67ceaa6780739576 /Makefile
parent1d0e1988bdf09294033a2758c0e33de9632f5860 (diff)
downloadrabbitmq-server-git-0fe7916899076f90f6ba3e8e73d077b3bd5b6d12.tar.gz
Fix versions comparison to work on Mac OS X too
`sort -V` is indeed not portable. The new method is based on awk, hopefully a portable portion of the language!
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile18
1 files changed, 17 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 3bb8e4942d..c2cae4a161 100644
--- a/Makefile
+++ b/Makefile
@@ -59,9 +59,25 @@ ERLC_OPTS=-I $(INCLUDE_DIR) -Wall +warn_export_vars -v +debug_info $(call boolea
# Our type specs rely on dict:dict/0 etc, which are only available in
# 17.0 upwards.
+define compare_version
+$(shell awk 'BEGIN {
+ split("$(1)", v1, "\.");
+ version1 = v1[1] * 1000000 + v1[2] * 10000 + v1[3] * 100 + v1[4];
+
+ split("$(2)", v2, "\.");
+ version2 = v2[1] * 1000000 + v2[2] * 10000 + v2[3] * 100 + v2[4];
+
+ if (version1 $(3) version2) {
+ print "true";
+ } else {
+ print "false";
+ }
+}')
+endef
+
ERTS_VER = $(shell erl -version 2>&1 | sed -E 's/.* version //')
USE_SPECS_MIN_ERTS_VER = 5.11
-ifeq ($(shell printf "$(ERTS_VER)\n$(USE_SPECS_MIN_ERTS_VER)\n" | sort -V | head -n 1),$(USE_SPECS_MIN_ERTS_VER))
+ifeq ($(call compare_version,$(ERTS_VER),$(USE_SPECS_MIN_ERTS_VER),>=),true)
ERLC_OPTS += -Duse_specs
endif