summaryrefslogtreecommitdiffstats
path: root/m4/ac_pkg_cython.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/ac_pkg_cython.m4')
-rw-r--r--m4/ac_pkg_cython.m467
1 files changed, 67 insertions, 0 deletions
diff --git a/m4/ac_pkg_cython.m4 b/m4/ac_pkg_cython.m4
new file mode 100644
index 0000000..e0af96a
--- /dev/null
+++ b/m4/ac_pkg_cython.m4
@@ -0,0 +1,67 @@
1
2AC_DEFUN([AC_PROG_CYTHON],[
3 AC_PATH_PROGS([CYTHON],[cython cython3])
4 if test -z "$CYTHON" ; then
5 AC_MSG_WARN([Unable to find 'cython' or 'cython3' program. You should look at https://cython.org or install your distribution specific cython package.])
6 CYTHON=false
7 elif test -n "$1" ; then
8 AC_MSG_CHECKING([for Cython version])
9 [cython_version=`$CYTHON --version 2>&1 | sed 's/Cython version \(.*\)$/\1/g'`]
10 AC_MSG_RESULT([$cython_version])
11
12 # Setup extra version string for parsing
13 [cython_version_stripped=`echo $cython_version | sed 's/\([0-9]\+\)\.\([0-9]\+\)[^\.]*\(\.\([0-9]\+\)\)\?.*/0\1.0\2.0\4/g'`]
14 if test -n "$cython_version" ; then
15 # Calculate the required version number components
16 [required=$1]
17 [required_major=`echo $required | sed 's/[^0-9].*//'`]
18 if test -z "$required_major" ; then
19 [required_major=0]
20 fi
21 [required=`echo $required | sed 's/[0-9]*[^0-9]//'`]
22 [required_minor=`echo $required | sed 's/[^0-9].*//'`]
23 if test -z "$required_minor" ; then
24 [required_minor=0]
25 fi
26 [required=`echo $required | sed 's/[0-9]*[^0-9]//'`]
27 [required_patch=`echo $required | sed 's/[^0-9].*//'`]
28 if test -z "$required_patch" ; then
29 [required_patch=0]
30 fi
31
32 # Calculate the available version number components
33 [available=$cython_version_stripped]
34 [available_major=`echo $available | sed 's/[^0-9].*//'`]
35 if test -z "$available_major" ; then
36 [available_major=0]
37 fi
38 [available=`echo $available | sed 's/[0-9]*[^0-9]//'`]
39 [available_minor=`echo $available | sed 's/[^0-9].*//'`]
40 if test -z "$available_minor" ; then
41 [available_minor=0]
42 fi
43 [available=`echo $available | sed 's/[0-9]*[^0-9]//'`]
44 [available_patch=`echo $available | sed 's/[^0-9].*//'`]
45 if test -z "$available_patch" ; then
46 [available_patch=0]
47 fi
48
49 if test $available_major -gt $required_major || \
50 ( test $available_major -eq $required_major && \
51 test $available_minor -gt $required_minor ) || \
52 ( test $available_major -eq $required_major && \
53 test $available_minor -eq $required_minor && \
54 test $available_patch -ge $required_patch ) ; then
55
56 AC_MSG_NOTICE([Cython executable is '$CYTHON'])
57 else
58 AC_MSG_WARN([Cython version >= $1 is required. You have $cython_version. You should look at http://www.cython.org])
59 CYTHON='echo "Error: Cython version >= $1 is required. You have '"$cython_version"'. You should look at http://www.cython.org" ; false'
60 fi
61 else
62 AC_MSG_WARN([Unable to determine Cython version])
63 CYTHON=false
64 fi
65 fi
66 AC_SUBST([CYTHON_LIB])
67])