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..3b4c9a7 --- /dev/null +++ b/m4/ac_pkg_cython.m4 | |||
| @@ -0,0 +1,67 @@ | |||
| 1 | |||
| 2 | AC_DEFUN([AC_PROG_CYTHON],[ | ||
| 3 | AC_PATH_PROG([CYTHON],[cython]) | ||
| 4 | if test -z "$CYTHON" ; then | ||
| 5 | AC_MSG_WARN([cannot find 'cython' program. You should look at http://www.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([cannot determine Cython version]) | ||
| 63 | CYTHON=false | ||
| 64 | fi | ||
| 65 | fi | ||
| 66 | AC_SUBST([CYTHON_LIB]) | ||
| 67 | ]) | ||
