diff options
| author | Jean-Sébastien Pédron <jean-sebastien.pedron@dumbbell.fr> | 2015-08-13 16:45:15 +0200 |
|---|---|---|
| committer | Jean-Sébastien Pédron <jean-sebastien.pedron@dumbbell.fr> | 2015-08-13 16:45:15 +0200 |
| commit | 0fe7916899076f90f6ba3e8e73d077b3bd5b6d12 (patch) | |
| tree | cdc2f1f6ddd8eeceb2332bbc67ceaa6780739576 | |
| parent | 1d0e1988bdf09294033a2758c0e33de9632f5860 (diff) | |
| download | rabbitmq-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!
| -rw-r--r-- | Makefile | 18 |
1 files changed, 17 insertions, 1 deletions
@@ -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 |
