# -*- mode: python -*-
Import('env')

env.Tar(env['TARBALL'], ['SConscript', 'config', 'lib'])

for d in ('filtergen', 'fg-parse.dg', 'fg-scan.dg', 'fg-emit.dg', 'ipts-parse.dg', 'ipts-scan.dg'):
    # Exclude log and sum which are generated files when running the suite.
    env.Tar(env['TARBALL'], [f for f in env.Glob(d + '/*')
                             if not f.path.endswith('.log') and not f.path.endswith('.sum')])

f = env.DejaGnu('filtergen')
env.Depends(f, '#filtergen')
env.Depends(f, env.Glob('filtergen/*.filter'))
env.Depends(f, 'lib/filtergen-dg.exp')
fgp = env.DejaGnu('fg-parse')
env.Depends(fgp, '#input/filtergen/t/parse')
env.Depends(fgp, env.Glob('fg-parse.dg/*in'))
env.Depends(fgp, 'lib/fg-parse-dg.exp')
fgs = env.DejaGnu('fg-scan')
env.Depends(fgs, '#input/filtergen/t/scan')
env.Depends(fgs, env.Glob('fg-scan.dg/*.in'))
env.Depends(fgs, 'lib/fg-scan-dg.exp')
fge = env.DejaGnu('fg-emit')
env.Depends(fge, '#input/filtergen/t/emit')
env.Depends(fge, env.Glob('fg-emit.dg/*.in'))
env.Depends(fge, 'lib/fg-emit-dg.exp')
fgc = env.DejaGnu('fg-convert')
env.Depends(fgc, '#input/filtergen/t/convert')
env.Depends(fgc, env.Glob('fg-convert.dg/*.in'))
env.Depends(fgc, 'lib/fg-convert-dg.exp')
iptsp = env.DejaGnu('ipts-parse')
env.Depends(iptsp, '#input/iptables-save/t/parse')
env.Depends(iptsp, env.Glob('ipts-parse.dg/*.in'))
env.Depends(fge, 'lib/ipts-parse-dg.exp')
iptss = env.DejaGnu('ipts-scan')
env.Depends(iptss, '#input/iptables-save/t/scan')
env.Depends(iptss, env.Glob('ipts-scan.dg/*.in'))
env.Depends(iptss, 'lib/ipts-scan-dg.exp')

suites = [f, fgp, fgs, fge, fgc, iptsp, iptss]

env.Depends(suites, '#site.exp')
env.Depends(suites, env.Glob('config/*.exp'))

env.Alias('check', suites)

if ARGUMENTS.get('coverage'):
    lcov = env.LCov('#coverage.info',
                    'filtergen.sum', # dummy
                    LCOVDIR='#',
                    LCOVBASEDIR='#')
    env.Depends(lcov, suites)
    cov_html = env.Command(Dir('#coverage_html'), lcov,
                'genhtml --output-dir ${TARGET} ${SOURCES}')
    env.Alias('coverage_html', cov_html)
