You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
916 B
Python
30 lines
916 B
Python
#! /usr/bin/env python
|
|
|
|
from waflib import Build
|
|
def build(bld):
|
|
|
|
# Call make for building, but keep waf for install/uninstall
|
|
# there is no 'clean' here
|
|
def make_all(tsk):
|
|
|
|
# create the output folder in advance
|
|
d = tsk.generator.path
|
|
d.get_bld().mkdir()
|
|
ret = tsk.generator.bld.exec_command('make all', cwd=d.abspath())
|
|
|
|
# install the files by waf - it might be more maintainable to do it through make though
|
|
tsk.set_outputs(d.get_bld().ant_glob('*.so'))
|
|
tsk.generator.bld.install_files('${LIBDIR}', tsk.outputs, postpone=False)
|
|
return ret
|
|
|
|
# the attribute 'always' is used to force the make execution, else
|
|
# the make command will be called only once
|
|
bld(rule=make_all, always=True, name='call make')
|
|
|
|
# for a hybrid build...
|
|
bld.post_mode = Build.POST_LAZY
|
|
bld.add_group()
|
|
bld.read_shlib('foo', paths=[bld.path.get_bld().abspath()])
|
|
bld.program(source='main.c', target='a', use='foo')
|
|
|