]> SALOME platform Git repositories - modules/kernel.git/blob - salome_adm/unix/config_files/python.m4
Salome HOME
6274d6ac9f8eb0e951183c46027c6b6798e7514b
[modules/kernel.git] / salome_adm / unix / config_files / python.m4
1 dnl Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
2 dnl
3 dnl Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 dnl
6 dnl This library is free software; you can redistribute it and/or
7 dnl modify it under the terms of the GNU Lesser General Public
8 dnl License as published by the Free Software Foundation; either
9 dnl version 2.1 of the License.
10 dnl
11 dnl This library is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 dnl Lesser General Public License for more details.
15 dnl
16 dnl You should have received a copy of the GNU Lesser General Public
17 dnl License along with this library; if not, write to the Free Software
18 dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 dnl
20 dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 dnl
22
23 ## ------------------------
24 ## Python file handling
25 ## From Andrew Dalke
26 ## Modified by Marc Tajchman (06/2001)
27 ## ------------------------
28
29 dnl CHECK_PYTHON([module, classes])
30 dnl
31 dnl Adds support for distributing Python modules or classes.
32 dnl Python library files distributed as a `module' are installed
33 dnl under PYTHON_SITE_PACKAGE (eg, ./python1.5/site-package/package-name)
34 dnl while those distributed as `classes' are installed under PYTHON_SITE
35 dnl (eg, ./python1.5/site-packages).  The default is to install as
36 dnl a `module'.
37
38 AC_DEFUN([CHECK_PYTHON],
39  [
40   python_ok=yes
41  
42   AC_ARG_WITH(python,
43    [AC_HELP_STRING([--with-python=DIR],[root directory path of python installation])],
44    [PYTHON="$withval/bin/python"
45     AC_MSG_RESULT("select python distribution in $withval")
46    ], [
47     AC_PATH_PROG(PYTHON, python)
48     ])
49   
50   AC_CHECKING([local Python configuration])
51
52   AC_REQUIRE([AC_LINKER_OPTIONS])dnl
53
54   PYTHON_PREFIX=`echo $PYTHON | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
55   PYTHON_PREFIX=`echo $PYTHON_PREFIX | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
56   PYTHONHOME=$PYTHON_PREFIX
57
58   AC_SUBST(PYTHON_PREFIX)
59   AC_SUBST(PYTHONHOME)
60
61   changequote(<<, >>)dnl
62   PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"`
63   changequote([, ])dnl
64   AC_SUBST(PYTHON_VERSION)
65
66   PY_MAKEFILE=${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config/Makefile
67   if test ! -f "$PY_MAKEFILE"; then
68     # For Ubuntu >= 13.04
69     PY_MAKEFILE=${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config-${build_cpu}-${build_os}/Makefile
70   fi
71   if test ! -f "$PY_MAKEFILE"; then
72     if test "${build_cpu::6}" = "x86_64" ; then
73       PY_MAKEFILE=${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/Makefile
74     fi
75   fi
76   if test ! -f "$PY_MAKEFILE"; then
77      AC_MSG_WARN([*** Couldn't find ${PY_MAKEFILE}.  Maybe you are
78 *** missing the development portion of the python installation])
79      python_ok=no
80   fi
81
82   AC_SUBST(PYTHON_INCLUDES)
83   AC_SUBST(PYTHON_LIBS)
84
85   PYTHON_INCLUDES=-I$PYTHON_PREFIX/include/python$PYTHON_VERSION
86   PYTHON_LIBS="-L${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}"
87   PYTHON_LIB=$PYTHON_LIBS
88   PYTHON_LIBA=${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a
89   if test "${build_cpu::6}" = "x86_64" ; then
90     if test "$PY_MAKEFILE" = "${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/Makefile" ; then
91       PYTHON_LIBS="-L${PYTHON_PREFIX}/lib64/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}"
92       PYTHON_LIB=$PYTHON_LIBS
93       PYTHON_LIBA=${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a
94     fi
95   fi
96
97   dnl At times (like when building shared libraries) you may want
98   dnl to know which OS Python thinks this is.
99
100   AC_SUBST(PYTHON_PLATFORM)
101   PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"`
102
103   AC_SUBST(PYTHON_SITE)
104   AC_ARG_WITH(python-site,
105     [AC_HELP_STRING([--with-python-site=DIR],
106        [Use DIR for installing platform independent Python site-packages])],
107
108 dnl modification : by default, we install python script in salome root tree
109
110 dnl [PYTHON_SITE="$withval"
111 dnl python_site_given=yes],
112 dnl [PYTHON_SITE=$PYTHON_PREFIX"/lib/python"$PYTHON_VERSION/site-packages
113 dnl python_site_given=no]
114
115    [PYTHON_SITE="$withval"
116     python_site_given=yes],
117    [PYTHON_SITE=${prefix}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/site-packages
118     python_site_given=no])
119
120   AC_SUBST(PYTHON_SITE_PACKAGE)
121   PYTHON_SITE_PACKAGE=$PYTHON_SITE/$PACKAGE
122
123
124   dnl Get PYTHON_SITE from --with-python-site-exec or from
125   dnl --with-python-site or from running Python
126
127   AC_SUBST(PYTHON_SITE_EXEC)
128   AC_ARG_WITH(python-site-exec,
129     [AC_HELP_STRING([--with-python-site-exec=DIR],
130                     [Use DIR for installing platform dependent Python site-packages])],
131     [PYTHON_SITE_EXEC="$withval"],
132     [if test "$python_site_given" = yes; then
133        PYTHON_SITE_EXEC=$PYTHON_SITE
134      else
135        PYTHON_SITE_EXEC=${PYTHON_EXEC_PREFIX}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/site-packages
136      fi])
137
138   dnl Set up the install directory
139   ifelse($1, classes,
140 [PYTHON_SITE_INSTALL=$PYTHON_SITE],
141 [PYTHON_SITE_INSTALL=$PYTHON_SITE_PACKAGE])
142   AC_SUBST(PYTHON_SITE_INSTALL)
143
144   dnl Also lets automake think PYTHON means something.
145
146   pythondir=${PYTHON_PREFIX}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/
147   AC_SUBST(pythondir)
148
149  AC_MSG_CHECKING([if we need libdb])
150  PY_NEEDOPENDB=`nm $PYTHON_LIBA | grep dbopen | grep U`
151   if test "x$PY_NEEDOPENDB" != "x"; then
152      AC_MSG_RESULT(yes)
153      AC_CHECK_LIB(db,dbopen,PYTHON_LIBS="$PYTHON_LIBS -ldb",db_ok=no)
154   else
155      AC_MSG_RESULT(no)
156   fi
157
158  AC_MSG_CHECKING([if we need libdl])
159   PY_NEEDOPENDL=`nm $PYTHON_LIBA | grep dlopen | grep U`
160   if test "x$PY_NEEDOPENDL" != "x"; then
161      AC_MSG_RESULT(yes)
162      AC_CHECK_LIB(dl,dlopen,PYTHON_LIBS="$PYTHON_LIBS -ldl",dl_ok=no)
163   else
164      AC_MSG_RESULT(no)
165   fi
166
167  AC_MSG_CHECKING([if we need libutil])
168   PY_NEEDOPENPTY=`nm $PYTHON_LIBA | grep openpty | grep U`
169   if test "x$PY_NEEDOPENPTY" != "x"; then
170      AC_MSG_RESULT(yes)
171      AC_CHECK_LIB(util,openpty,PYTHON_LIBS="$PYTHON_LIBS -lutil",openpty_ok=no)
172   else
173      AC_MSG_RESULT(no)
174   fi
175
176  AC_MSG_CHECKING([if we need tcltk])
177   PY_NEEDTCLTK=`nm $PYTHON_LIBA | grep Tcl_Init | grep U`
178   if test "x$PY_NEEDTCLTK" != "x"; then
179      AC_MSG_RESULT(yes)
180      AC_CHECK_LIB(tcl,Tcl_Init,PYTHON_LIBS="$PYTHON_LIBS -ltcl -ltk",tclinit_ok=no)
181   else
182      AC_MSG_RESULT(no)
183   fi
184
185   if test "$python_ok" == "yes"; then
186       AC_MSG_RESULT(looks good)
187   fi
188 ])