Salome HOME
NRI : Merge from V1_2.
[modules/kernel.git] / salome_adm / unix / config_files / python.m4
1 ## ------------------------
2 ## Python file handling
3 ## From Andrew Dalke
4 ## Modified by Marc Tajchman (06/2001)
5 ## ------------------------
6
7 dnl CHECK_PYTHON([module, classes])
8 dnl
9 dnl Adds support for distributing Python modules or classes.
10 dnl Python library files distributed as a `module' are installed
11 dnl under PYTHON_SITE_PACKAGE (eg, ./python1.5/site-package/package-name)
12 dnl while those distributed as `classes' are installed under PYTHON_SITE
13 dnl (eg, ./python1.5/site-packages).  The default is to install as
14 dnl a `module'.
15
16 AC_DEFUN(CHECK_PYTHON,
17  [
18   AC_ARG_WITH(python,
19    [  --with-python=DIR root directory path of python installation ],
20    [PYTHON="$withval/bin/python"
21     AC_MSG_RESULT("select python distribution in $withval")
22    ], [
23     AC_PATH_PROG(PYTHON, python)
24     ])
25   
26   AC_CHECKING([local Python configuration])
27   PYTHON_PREFIX=`echo $PYTHON | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
28   PYTHON_PREFIX=`echo $PYTHON_PREFIX | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
29   PYTHONHOME=$PYTHON_PREFIX
30
31   AC_SUBST(PYTHON_PREFIX)
32   AC_SUBST(PYTHONHOME)
33
34   changequote(<<, >>)dnl
35   PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"`
36   changequote([, ])dnl
37   AC_SUBST(PYTHON_VERSION)
38
39   PY_MAKEFILE=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/config/Makefile
40   if test ! -f "$PY_MAKEFILE"; then
41      AC_MSG_ERROR([*** Couldn't find ${PY_MAKEFILE}.  Maybe you are
42 *** missing the development portion of the python installation])
43   fi
44
45   AC_SUBST(PYTHON_INCLUDES)
46   AC_SUBST(PYTHON_LIBS)
47
48   PYTHON_INCLUDES=-I$PYTHON_PREFIX/include/python$PYTHON_VERSION
49   PYTHON_LIBS="-L${PYTHON_PREFIX}/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}"
50   PYTHON_LIB=$PYTHON_LIBS
51   PYTHON_LIBA=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a
52
53   dnl At times (like when building shared libraries) you may want
54   dnl to know which OS Python thinks this is.
55
56   AC_SUBST(PYTHON_PLATFORM)
57   PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"`
58
59   AC_SUBST(PYTHON_SITE)
60   AC_ARG_WITH(python-site,
61 [  --with-python-site=DIR          Use DIR for installing platform independent
62                                   Python site-packages],
63
64 dnl modification : by default, we install python script in salome root tree
65
66 dnl [PYTHON_SITE="$withval"
67 dnl python_site_given=yes],
68 dnl [PYTHON_SITE=$PYTHON_PREFIX"/lib/python"$PYTHON_VERSION/site-packages
69 dnl python_site_given=no])
70
71 [PYTHON_SITE="$withval"
72 python_site_given=yes],
73 [PYTHON_SITE=$prefix"/lib/python"$PYTHON_VERSION/site-packages
74 python_site_given=no])
75
76   AC_SUBST(PYTHON_SITE_PACKAGE)
77   PYTHON_SITE_PACKAGE=$PYTHON_SITE/$PACKAGE
78
79
80   dnl Get PYTHON_SITE from --with-python-site-exec or from
81   dnl --with-python-site or from running Python
82
83   AC_SUBST(PYTHON_SITE_EXEC)
84   AC_ARG_WITH(python-site-exec,
85 [  --with-python-site-exec=DIR     Use DIR for installing platform dependent
86                                   Python site-packages],
87 [PYTHON_SITE_EXEC="$withval"],
88 [if test "$python_site_given" = yes; then
89   PYTHON_SITE_EXEC=$PYTHON_SITE
90 else
91   PYTHON_SITE_EXEC=$PYTHON_EXEC_PREFIX"/lib/python"$PYTHON_VERSION/site-packages
92 fi])
93
94   dnl Set up the install directory
95   ifelse($1, classes,
96 [PYTHON_SITE_INSTALL=$PYTHON_SITE],
97 [PYTHON_SITE_INSTALL=$PYTHON_SITE_PACKAGE])
98   AC_SUBST(PYTHON_SITE_INSTALL)
99
100   dnl Also lets automake think PYTHON means something.
101
102   pythondir=$PYTHON_PREFIX"/lib/python"$PYTHON_VERSION/
103   AC_SUBST(pythondir)
104
105  AC_MSG_CHECKING([if we need libdb])
106  PY_NEEDOPENDB=`nm $PYTHON_LIBA | grep dbopen | grep U`
107   if test "x$PY_NEEDOPENDB" != "x"; then
108      PYTHON_LIBS="$PYTHON_LIBS -ldb"
109      AC_MSG_RESULT(yes)
110   else
111      AC_MSG_RESULT(no)
112   fi
113
114  AC_MSG_CHECKING([if we need libdl])
115   PY_NEEDOPENDL=`nm $PYTHON_LIBA | grep dlopen | grep U`
116   if test "x$PY_NEEDOPENDL" != "x"; then
117      PYTHON_LIBS="$PYTHON_LIBS -ldl"
118      AC_MSG_RESULT(yes)
119   else
120      AC_MSG_RESULT(no)
121   fi
122
123  AC_MSG_CHECKING([if we need libutil])
124   PY_NEEDOPENPTY=`nm $PYTHON_LIBA | grep openpty | grep U`
125   if test "x$PY_NEEDOPENPTY" != "x"; then
126      PYTHON_LIBS="$PYTHON_LIBS -lutil"
127      AC_MSG_RESULT(yes)
128   else
129      AC_MSG_RESULT(no)
130   fi
131
132  AC_MSG_CHECKING([if we need tcltk])
133   PY_NEEDTCLTK=`nm $PYTHON_LIBA | grep Tcl_Init | grep U`
134   if test "x$PY_NEEDTCLTK" != "x"; then
135      PYTHON_LIBS="$PYTHON_LIBS -ltcl -ltk"
136      AC_MSG_RESULT(yes)
137   else
138      AC_MSG_RESULT(no)
139   fi
140
141   python_ok=yes
142   AC_MSG_RESULT(looks good)])