This function is a wrapper around waf's check_python_header.
It avoids searching more than once for the headers bringing a small
speed improvement and a better lisibility of the logs.
But it's mainly to avoid a nasty bug when python libraries are in path
pointed by python_LIBPL (ie. /usr/local/lib/python2.6/config/) instead
of python_LIBDIR (ie. /usr/local/lib).
On the first call waf will correctly find that in order to link with
python libs it needs to add -L$python_LIBPL.
But on the next calls of check_python_headers, waf will use both the
current library path value (ie. -L/usr/local/lib/python2.6/config) and
-L$python_LIBDIR (ie. /usr/local/lib/) which will make him beleive that
python libraries are in $python_LIBDIR which at the end will make the
final link test fails in check_python_headers as it will not use the
good directory.
So by avoiding calling check_python_headers more than once we avoid
making waf fooling itself.
from samba_utils import *
from samba_autoconf import *
from samba_utils import *
from samba_autoconf import *
+from Configure import conf
+@conf
+def SAMBA_CHECK_PYTHON_HEADERS(conf, mandatory=True):
+ if conf.env["python_headers_checked"] == []:
+ conf.check_python_headers(mandatory)
+ conf.env["python_headers_checked"] = "yes"
+ else:
+ conf.msg("python headers", "using cache")
+
def SAMBA_PYTHON(bld, name,
source='',
def SAMBA_PYTHON(bld, name,
source='',
# also disable if we don't have the python libs installed
conf.check_tool('python')
conf.check_python_version((2,4,2))
# also disable if we don't have the python libs installed
conf.check_tool('python')
conf.check_python_version((2,4,2))
- conf.check_python_headers(mandatory=False)
+ conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=False)
if not conf.env.HAVE_PYTHON_H:
Logs.warn('Disabling pytalloc-util as python devel libs not found')
conf.env.disable_python = True
if not conf.env.HAVE_PYTHON_H:
Logs.warn('Disabling pytalloc-util as python devel libs not found')
conf.env.disable_python = True
# also disable if we don't have the python libs installed
conf.check_tool('python')
conf.check_python_version((2,4,2))
# also disable if we don't have the python libs installed
conf.check_tool('python')
conf.check_python_version((2,4,2))
- conf.check_python_headers(mandatory=False)
+ conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=False)
if not conf.env.HAVE_PYTHON_H:
Logs.warn('Disabling pytdb as python devel libs not found')
conf.env.disable_python = True
if not conf.env.HAVE_PYTHON_H:
Logs.warn('Disabling pytdb as python devel libs not found')
conf.env.disable_python = True
# also disable if we don't have the python libs installed
conf.check_tool('python')
conf.check_python_version((2,4,2))
# also disable if we don't have the python libs installed
conf.check_tool('python')
conf.check_python_version((2,4,2))
- conf.check_python_headers(mandatory=False)
+ conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=False)
if not conf.env.HAVE_PYTHON_H:
Logs.warn('Disabling pytevent as python devel libs not found')
conf.env.disable_python = True
if not conf.env.HAVE_PYTHON_H:
Logs.warn('Disabling pytevent as python devel libs not found')
conf.env.disable_python = True
# enable tool to build python extensions
conf.check_tool('python')
conf.check_python_version((2,4,2))
# enable tool to build python extensions
conf.check_tool('python')
conf.check_python_version((2,4,2))
- conf.check_python_headers(mandatory=True)
+ conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=True)
if sys.platform == 'darwin' and not conf.env['HAVE_ENVIRON_DECL']:
# Mac OSX needs to have this and it's also needed that the python is compiled with this
if sys.platform == 'darwin' and not conf.env['HAVE_ENVIRON_DECL']:
# Mac OSX needs to have this and it's also needed that the python is compiled with this