1# 2# MED_CHECK_PYTHON 3# --------------- 4# 5 6AC_DEFUN([_MED_DEFINE_PYTHON_ENABLE],[ 7 8 AC_ARG_ENABLE(python, [AS_HELP_STRING([--enable-python], 9 [Install the MED python library. Default: enabled]) 10 ],[ 11 enable_python=$enableval 12 ],[ 13 enable_python=yes 14 ]) 15]) 16 17AC_DEFUN([MED_CHECK_PYTHON], [ 18 AC_REQUIRE([_MED_DEFINE_PYTHON_ENABLE]) 19 AC_BEFORE([$0],[AM_PATH_PYTHON]) 20 21# Si swig n'est pas activé mais l'utilisation de python oui, 22# il faut appeler la macro MEDCHECK_PYTHON_DEVEL (également appelée par MEDCHECK_SWIG si le swig est activée). 23# Elle permet de positionner les flags de compilation/édition des liens (python devel) 24# pour compiler les interfaces python embarquées en essayant de trouver la version PYTHON_VERSION_REF 25# ou au minimum PYTHON_VERSION_MIN 26# Elle définie également la version de python utilisée via ac_python_version, les tests suivants ont besoin 27# La version est codée "x.y" (pas de release). 28# Ne pas utiliser PYTHON_VERSION qui est une variable préciseuse 29 AS_IF([test x$enable_python = xyes && test -z "$ac_python_version"],[MED_CHECK_PYTHON_DEVEL]) 30 31 test x"$WITH_SWIG" = x1 && test x"$enable_python" = xno && AC_MSG_ERROR([python is needed because swig is activated.]) 32#La gestion des modules précompilés existe désormais en med_int=int|long 33# test x"$WITH_SWIG" = x0 && test x"$enable_python" = xyes && test ! x"$LONG_OR_INT" == "xint" && AC_MSG_ERROR([Either use --disable-python or --with-swig=[yes|<swigdir>]. Swig is needed because embedded python interfaces has been generated for --with-med_int=int.]) 34 test x"$WITH_SWIG" = x0 && test x"$enable_python" = xyes && test x"$BUILD_WITH_PMED" == "xyes" && AC_MSG_ERROR([Either use --disable-python or --with-swig=[yes|<swigdir>]. Swig is needed because embedded python interfaces has been generated without MPI.]) 35#Si la version de python trouvée n'est pas compatible avec les interfaces générées embarquées, arrête la configuration 36# PYTHON_IS_VERSION_REF est en fait >= VERSION_REF 37 test x"$WITH_SWIG" = x0 && test x"$enable_python" = xyes && test x"$PYTHON_IS_VERSION_REF" == "xno" && AC_MSG_ERROR([Either use --disable-python, PYTHON_VERSION=, or --with-swig=[yes|<swigdir>]. Swig is needed because the detected python version is not compatible with the version used when generating the embedded interfaces.]) 38#Si la version de swig trouvée n'est pas suffisante pour gérer la version de python, arrête la configuration 39#En particulier Python3 et swig 2.0.8 ne fonctionne pas pour les absolute import 40#mais fontionne à partir de swig 2.0.12 41#version_compare : si > -> 1, si < -> 1, si == -> 0 42#SWIG_IS_VERSION_REF==yes --> swig is >= swig_version_ref 43# [echo "$ac_python_version < 3.0.0"] 44 45 46test x"$WITH_SWIG" = x1 && test x"$enable_python" = xyes &&\ 47{ 48 AX_COMPARE_VERSION($ac_python_version,[lt],[3.0.0], 49 # [echo "$ac_python_version < 3.0.0"] 50 [:] 51 , 52 # [echo "$ac_python_version >= 3.0.0"] 53 [ 54 AX_COMPARE_VERSION($available_swig_vernum,[lt],[20012], 55 [ 56# echo "available_swig_vernum($available_swig_vernum) < 2.0.12" 57 AC_MSG_ERROR([Either use --disable-python or --with-swig=[yes|<swigdir>]. The Swig version needed must be at least 2.0.12 if you want to use python version >= 3.]) 58 ], 59 [ 60 : 61# echo "available_swig_vernum($available_swig_vernum) >= 2.0.12" 62 ]) 63 ] 64 ) 65} 66 67# AM_CONDITIONAL([MED_HAVE_PYTHON3],[test x"$PYTHON_IS_VERSION_REF" == "xyes"]) 68AM_CONDITIONAL([MED_HAVE_PYTHON3],[test x`echo $ac_python_version |sed -n 's/^\(.\).*/\1/p'` == "x3"]) 69 70 AS_IF([test x$enable_python = xyes], 71 [ 72 73# L'appel à la macro PATH_PYTHON positionne : 74# ‘PYTHON_VERSION’ 75# ‘PYTHON_PREFIX’ 76# ‘PYTHON_EXEC_PREFIX’ 77# ‘PYTHON_PLATFORM’ 78# ‘pythondir’ 79# ‘pkgpythondir’ 80# ‘pyexecdir’ 81# ‘pkgpyexecdir’ 82## 83# 'PYTHON’ variable is used 84 85AM_PATH_PYTHON([$ac_python_version],[ 86 # AC_SUBST([python_bin], 87 # [`basename ${PYTHON}`] ) 88 89 # AC_SUBST([PYTHON_PREFIX], 90 # [`${PYTHON} -c "import sys; print (sys.prefix)"`] ) 91 92 # AC_SUBST([python_includedir], 93 # [`${PYTHON} -c "import sys; print (sys.prefix + \"/include/python\" + str(sys.version_info[[0]]) + \".\" + str(sys.version_info[[1]]))"`] ) 94 95 # AC_SUBST([python_libdir], 96 # [`${PYTHON} -c "import sys; print (sys.prefix + \"/lib/python\" + str(sys.version_info[[0]]) + \".\" + str(sys.version_info[[1]]) + \"/m4\")"`] ) 97 98 # AC_SUBST([python_version], 99 # [`${PYTHON} -c "import sys; print (str(sys.version_info[[0]]) + \".\" + str(sys.version_info[[1]]))"`] ) 100 ],[AC_MSG_FAILURE([PYTHON interpreter requested, but couldn't find python >=M4MED_PYTHON_VERSION_REF 101 ]) 102 ]) 103 104 # Pour l'affichage du Summary 105 BUILD_PYTHONTESTS_CONDITIONAL_TRUE= 106 BUILD_PYTHONTESTS_CONDITIONAL_FALSE='#' 107 ],[ 108 # Pour l'affichage du Summary 109 BUILD_PYTHONTESTS_CONDITIONAL_TRUE='#' 110 BUILD_PYTHONTESTS_CONDITIONAL_FALSE= 111 PYTHON="Python not available" 112 ]) 113 114 AC_SUBST([BUILD_PYTHONTESTS_CONDITIONAL_TRUE]) 115 AC_SUBST([BUILD_PYTHONTESTS_CONDITIONAL_FALSE]) 116 AC_SUBST(PYTHON) 117 118AM_CONDITIONAL([WITH_PYTHON],[test "x$enable_python" = "xyes" ]) 119 test x"$enable_python" = xyes && AC_DEFINE(MED_HAVE_PYTHON,1, 120 [Define if the Python part of MED library must be installed.]) 121 test ! x"$enable_python" = xyes && AC_DEFINE(MED_HAVE_PYTHON,0, 122 [Define if the Python part of MED library must be installed.]) 123 124]) 125