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