## -*- python -*- import Action import Object import Params import Task def create_pyext_obj(bld, c_or_cpp_type): waf_version = [int (s) for s in Params.g_version.split('.')] if waf_version >= [1,4]: return bld.create_obj(c_or_cpp_type, 'shlib', 'pyext') else: return bld.create_obj(c_or_cpp_type, 'plugin', 'pyext') def build(bld): if not bld.env()['ENABLE_PYGCCXML']: print "gccxml not available; skipping the C hello demo" return bindgen = bld.create_obj('command-output') bindgen.stdout = 'hellomodule.c' bindgen.argv = [bindgen.input_file('hellomodulegen.py'), bindgen.input_file('hello.h')] bindgen.command = bindgen.env['PYTHON'] bindgen.command_is_external = True bindgen.prio = 55 # must run after the 'py' objects in ../../pybindgen obj = create_pyext_obj(bld, 'cc') obj.source = [ 'hello.c', 'hellomodule.c' ] obj.target = 'hello' obj.inst_var = 0 # do not install obj.includes = '.'