summaryrefslogtreecommitdiffstats
path: root/m4/ac_pkg_cython.m4
blob: e0af96a6d227cde850584b3d10fddd874ec19ef9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
AC_DEFUN([AC_PROG_CYTHON],[
        AC_PATH_PROGS([CYTHON],[cython cython3])
        if test -z "$CYTHON" ; then
                AC_MSG_WARN([Unable to find 'cython' or 'cython3' program. You should look at https://cython.org or install your distribution specific cython package.])
                CYTHON=false
        elif test -n "$1" ; then
                AC_MSG_CHECKING([for Cython version])
                [cython_version=`$CYTHON --version 2>&1 | sed 's/Cython version \(.*\)$/\1/g'`]
                AC_MSG_RESULT([$cython_version])

                # Setup extra version string for parsing
                [cython_version_stripped=`echo $cython_version | sed 's/\([0-9]\+\)\.\([0-9]\+\)[^\.]*\(\.\([0-9]\+\)\)\?.*/0\1.0\2.0\4/g'`]
                if test -n "$cython_version" ; then
                        # Calculate the required version number components
                        [required=$1]
                        [required_major=`echo $required | sed 's/[^0-9].*//'`]
                        if test -z "$required_major" ; then
                                [required_major=0]
                        fi
                        [required=`echo $required | sed 's/[0-9]*[^0-9]//'`]
                        [required_minor=`echo $required | sed 's/[^0-9].*//'`]
                        if test -z "$required_minor" ; then
                                [required_minor=0]
                        fi
                        [required=`echo $required | sed 's/[0-9]*[^0-9]//'`]
                        [required_patch=`echo $required | sed 's/[^0-9].*//'`]
                        if test -z "$required_patch" ; then
                                [required_patch=0]
                        fi

                        # Calculate the available version number components
                        [available=$cython_version_stripped]
                        [available_major=`echo $available | sed 's/[^0-9].*//'`]
                        if test -z "$available_major" ; then
                                [available_major=0]
                        fi
                        [available=`echo $available | sed 's/[0-9]*[^0-9]//'`]
                        [available_minor=`echo $available | sed 's/[^0-9].*//'`]
                        if test -z "$available_minor" ; then
                                [available_minor=0]
                        fi
                        [available=`echo $available | sed 's/[0-9]*[^0-9]//'`]
                        [available_patch=`echo $available | sed 's/[^0-9].*//'`]
                        if test -z "$available_patch" ; then
                                [available_patch=0]
                        fi

                        if test $available_major -gt $required_major || \
                                ( test $available_major -eq $required_major && \
                                      test $available_minor -gt $required_minor ) || \
                                ( test $available_major -eq $required_major && \
                                        test $available_minor -eq $required_minor && \
                                        test $available_patch -ge $required_patch ) ; then

                                AC_MSG_NOTICE([Cython executable is '$CYTHON'])
                        else
                                AC_MSG_WARN([Cython version >= $1 is required.  You have $cython_version.  You should look at http://www.cython.org])
                                CYTHON='echo "Error: Cython version >= $1 is required.  You have '"$cython_version"'.  You should look at http://www.cython.org" ; false'
                        fi
                else
                        AC_MSG_WARN([Unable to determine Cython version])
                        CYTHON=false
                fi
        fi
        AC_SUBST([CYTHON_LIB])
])