Browse code

config: non-sed method for verison string manipulation

Kevin Lin authored on 2016/05/07 00:53:43
Showing 2 changed files
... ...
@@ -64,22 +64,15 @@ else
64 64
     AC_CONFIG_SUBDIRS([llvm])
65 65
 fi
66 66
 
67
-llvmver_val=`echo "$llvmver" | sed -e 's/svn//g'`
68
-AC_CANONICAL_HOST
69
-case $host_os in
70
-  darwin* )
71
-    llvmver_sval=`echo "$llvmver_val" | sed -Ee 's/[[0-9]]+//' | sed -e 's/^\.//'`
72
-    llvmver_major=`echo "$llvmver_val"  | sed -Ee 's/([[0-9]]+).*/\1/'`
73
-    llvmver_minor=`echo "$llvmver_sval" | sed -Ee 's/([[0-9]]+).*/\1/'`
74
-    llvmver_patch=`echo "$llvmver_sval" | sed -Ee 's/[[0-9]]+//' | sed -e 's/^\.//' | sed -Ee 's/([[0-9]]+).*/\1/'`
75
-    ;;
76
-  *)
77
-    llvmver_sval=`echo "$llvmver_val" | sed -re 's/[[0-9]]+//' | sed -e 's/^\.//'`
78
-    llvmver_major=`echo "$llvmver_val"  | sed -re 's/([[0-9]]+).*/\1/'`
79
-    llvmver_minor=`echo "$llvmver_sval" | sed -re 's/([[0-9]]+).*/\1/'`
80
-    llvmver_patch=`echo "$llvmver_sval" | sed -re 's/[[0-9]]+//' | sed -e 's/^\.//' | sed -re 's/([[0-9]]+).*/\1/'`
81
-    ;;
82
-esac
67
+llvmver_prefix=`expr "$llvmver" : '\([[^0-9]]*\)'`
68
+llvmver_frag=${llvmver:${#llvmver_prefix}}
69
+
70
+llvmver_major=`expr "$llvmver_frag" : '\([[0-9]]*\)'`
71
+llvmver_frag=${llvmver_frag#*\.}
72
+llvmver_minor=`expr "$llvmver_frag" : '\([[0-9]]*\)'`
73
+llvmver_frag=${llvmver_frag#*\.}
74
+llvmver_patch=`expr "$llvmver_frag" : '\([[0-9]]*\)'`
75
+
83 76
 dnl suffix unused as of LLVM 3.4.1
84 77
 llvmver_suffix=
85 78
 if test "x$llvmver_patch" = "x"; then
... ...
@@ -54,17 +54,13 @@ if test "x$pcreconfig" != "x"; then
54 54
     fi
55 55
 
56 56
     AC_MSG_RESULT([$pcre_version])
57
-    AC_CANONICAL_HOST
58
-    case $host_os in
59
-      darwin* )
60
-        pcrever_major=`echo "$pcre_version" | sed -Ee 's/([[0-9]]+).*/\1/'`
61
-        pcrever_minor=`echo "$pcre_version" | sed -Ee 's/[[0-9]]+\.([[0-9]]+).*/\1/'`
62
-        ;;
63
-      *)
64
-        pcrever_major=`echo "$pcre_version" | sed -re 's/([[0-9]]+).*/\1/'`
65
-        pcrever_minor=`echo "$pcre_version" | sed -re 's/[[0-9]]+\.([[0-9]]+).*/\1/'`
66
-        ;;
67
-    esac
57
+
58
+    pcrever_prefix=`expr "$pcre_version" : '\([[^0-9]]*\)'`
59
+    pcrever_frag=${pcre_version:${#pcrever_prefix}}
60
+
61
+    pcrever_major=`expr "$pcrever_frag" : '\([[0-9]]*\)'`
62
+    pcrever_frag=${pcrever_frag#*\.}
63
+    pcrever_major=`expr "$pcrever_frag" : '\([[0-9]]*\)'`
68 64
 
69 65
     dnl check for match_limit_recursion support
70 66
     if test "$pcrelib" = "pcre"; then