build: detect new erlang version format correctly

- OTP 17.0 uses a different numbering system for releases and patches, but not 
semver.org
- the major version number will be bumped for the first time in 4 years


Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/35e16032
Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/35e16032
Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/35e16032

Branch: refs/heads/2200-feature-support-erlang-17.0
Commit: 35e16032a0591ddfcf8bbd55fa600612dade1ceb
Parents: 1aa9d3b
Author: Dave Cottlehuber <d...@apache.org>
Authored: Thu Mar 13 10:27:29 2014 +0100
Committer: Dave Cottlehuber <d...@apache.org>
Committed: Mon Apr 28 13:50:49 2014 +0200

----------------------------------------------------------------------
 configure.ac | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb/blob/35e16032/configure.ac
----------------------------------------------------------------------
diff --git a/configure.ac b/configure.ac
index 57a4268..dadbf02 100644
--- a/configure.ac
+++ b/configure.ac
@@ -411,23 +411,25 @@ esac
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking Erlang version 
compatibility" >&5
 $as_echo_n "checking Erlang version compatibility... " >&6; }
-erlang_version_error="The installed Erlang version must be >= R14B 
(erts-5.8.1) and <R17 (erts-5.11)"
+erlang_version_error="The installed Erlang version must be >= R14B 
(erts-5.8.1) and =< 17 (erts-6.0)"
 
 version="`${ERL} -version 2>&1 | ${SED} 's/[[^0-9]]/ /g'` 0 0 0"
 major_version=`echo $version | ${AWK} "{print \\$1}"`
 minor_version=`echo $version | ${AWK} "{print \\$2}"`
 patch_version=`echo $version | ${AWK} "{print \\$3}"`
+echo -n "detected Erlang version: 
$major_version.$minor_version.$patch_version..."
 
-if test $major_version -ne 5; then
-    as_fn_error $? "$erlang_version_error" "$LINENO" 5
+if test $major_version -lt 5 -o $major_version -gt 6; then
+    as_fn_error $? "$erlang_version_error major_version does not match" 
"$LINENO" 5
 fi
 
-if test $minor_version -lt 8 -o $minor_version -gt 10; then
-    as_fn_error $? "$erlang_version_error" "$LINENO" 5
+if test $major_version -eq 5 -a $minor_version -lt 8; then
+    as_fn_error $? "$erlang_version_error minor_version does not match" 
"$LINENO" 5
 fi
 
 AC_MSG_RESULT(compatible)
 
+# returns 17 for erts-6.0, and R14B03 or similar for earlier releases
 otp_release="`\
     ${ERL} -noshell \
     -eval 'io:put_chars(erlang:system_info(otp_release)).' \
@@ -435,8 +437,10 @@ otp_release="`\
 
 AC_SUBST(otp_release)
 
-AM_CONDITIONAL([USE_OTP_NIFS], [test x$otp_release \> xR13B03])
-AM_CONDITIONAL([USE_EJSON_COMPARE_NIF], [test x$otp_release \> xR14B03])
+AM_CONDITIONAL([USE_OTP_NIFS],
+    [test x$otp_release \> xR14B -o $otp_release -ge 17 ])
+AM_CONDITIONAL([USE_EJSON_COMPARE_NIF],
+    [test x$otp_release \> xR14B03])
 
 has_crypto=`\
     ${ERL} -eval "\

Reply via email to