build: Replace #!/usr/bin/env python with passed in PYTHON=
[sfrench/samba-autobuild/.git] / buildtools / wafsamba / samba_python.py
1 # waf build tool for building IDL files with pidl
2
3 import Build
4 from samba_utils import *
5 from samba_autoconf import *
6
7 from Configure import conf
8
9 @conf
10 def SAMBA_CHECK_PYTHON(conf, mandatory=True):
11     # enable tool to build python extensions
12     conf.find_program('python', var='PYTHON', mandatory=mandatory)
13     conf.check_tool('python')
14     path_python = conf.find_program('python')
15     conf.env.PYTHON_SPECIFIED = (conf.env.PYTHON != path_python)
16     conf.check_python_version((2,4,2))
17
18 @conf
19 def SAMBA_CHECK_PYTHON_HEADERS(conf, mandatory=True):
20     if conf.env["python_headers_checked"] == []:
21         conf.check_python_headers(mandatory)
22         conf.env["python_headers_checked"] = "yes"
23     else:
24         conf.msg("python headers", "using cache")
25
26
27 def SAMBA_PYTHON(bld, name,
28                  source='',
29                  deps='',
30                  public_deps='',
31                  realname=None,
32                  cflags='',
33                  includes='',
34                  init_function_sentinel=None,
35                  local_include=True,
36                  vars=None,
37                  enabled=True):
38     '''build a python extension for Samba'''
39
40     # when we support static python modules we'll need to gather
41     # the list from all the SAMBA_PYTHON() targets
42     if init_function_sentinel is not None:
43         cflags += '-DSTATIC_LIBPYTHON_MODULES=%s' % init_function_sentinel
44
45     source = bld.EXPAND_VARIABLES(source, vars=vars)
46
47     if realname is not None:
48         link_name = 'python_modules/%s' % realname
49     else:
50         link_name = None
51
52     bld.SAMBA_LIBRARY(name,
53                       source=source,
54                       deps=deps,
55                       public_deps=public_deps,
56                       includes=includes,
57                       cflags=cflags,
58                       local_include=local_include,
59                       vars=vars,
60                       realname=realname,
61                       link_name=link_name,
62                       pyext=True,
63                       target_type='PYTHON',
64                       install_path='${PYTHONARCHDIR}',
65                       allow_undefined_symbols=True,
66                       enabled=enabled)
67
68 Build.BuildContext.SAMBA_PYTHON = SAMBA_PYTHON