blob: e0af96a6d227cde850584b3d10fddd874ec19ef9 [file] [log] [blame]
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])
])