# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-

top = '..'

def configure(conf):
    conf.find_program('sh')

def build(bld):
    for app in bld.path.ant_glob('*.cpp'):
        bld(features=['cxx', 'cxxprogram'],
            target = '%s' % (str(app.change_ext('','.cpp'))),
            source = app,
            use = 'ndn-cxx',
            )

    bld (features = "subst",
         source = bld.path.ant_glob(['wrapper/*.sh']),
         target = ['%s' % node.change_ext('', '.sh')
                   for node in bld.path.ant_glob(['wrapper/*.sh'])],
         install_path = "${BINDIR}",
         chmod = 0755,
        )
