diff options
Diffstat (limited to 'm4/ac_pkg_cython.m4')
-rw-r--r-- | m4/ac_pkg_cython.m4 | 67 |
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 | |||
2 | AC_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 | ]) | ||