# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
top = '../..'

def build(bld):

    bld.objects(
        target='ndncatchunks-objects',
        source=bld.path.ant_glob('catchunks/*.cpp', excl='catchunks/ndncatchunks.cpp'),
        use='core-objects')

    bld.program(
        target='../../bin/ndncatchunks',
        name='ndncatchunks',
        source='catchunks/ndncatchunks.cpp',
        use='ndncatchunks-objects')

    bld.objects(
        target='ndnputchunks-objects',
        source=bld.path.ant_glob('putchunks/*.cpp', excl='putchunks/ndnputchunks.cpp'),
        use='core-objects')

    bld.program(
        target='../../bin/ndnputchunks',
        name='ndnputchunks',
        source='putchunks/ndnputchunks.cpp',
        use='ndnputchunks-objects')

    ## (for unit tests)

    bld(target='chunks-objects',
        use='ndncatchunks-objects ndnputchunks-objects')

