blob: 18b16b026c7304a9547cce678ace7f8d13fc0f77 [file] [log] [blame]
shockjiange9c1ab92014-07-21 12:02:52 -07001# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
2VERSION='0.1'
Alexander Afanasyev6e3d1ac2014-07-21 12:47:49 -07003APPNAME="ndns"
shockjiange9c1ab92014-07-21 12:02:52 -07004
5def options(opt):
Alexander Afanasyev6e3d1ac2014-07-21 12:47:49 -07006 opt.load(['compiler_cxx', 'gnu_dirs'])
7 opt.load(['boost', 'default-compiler-flags', 'doxygen', 'sphinx_build',
8 'sqlite3', 'pch', 'coverage'], tooldir=['.waf-tools'])
9
10 ropt = opt.add_option_group('NDNS Options')
11
12 ropt.add_option('--with-tests', action='store_true', default=False, dest='with_tests',
13 help='''build unit tests''')
shockjiange9c1ab92014-07-21 12:02:52 -070014
15def configure(conf):
Alexander Afanasyev6e3d1ac2014-07-21 12:47:49 -070016 conf.load(['compiler_cxx', 'gnu_dirs',
17 'boost', 'default-compiler-flags', 'doxygen',
18 'sqlite3', 'pch', 'coverage'])
shockjiang99ad3892014-08-03 14:56:13 -070019
20 conf.check_cfg(package='liblog4cxx', args=['--cflags', '--libs'],
21 uselib_store='LOG4CXX', mandatory=True)
22
shockjiange9c1ab92014-07-21 12:02:52 -070023 conf.check_cfg(package='libndn-cxx', args=['--cflags', '--libs'],
24 uselib_store='NDN_CXX', mandatory=True)
25
Alexander Afanasyev6e3d1ac2014-07-21 12:47:49 -070026 conf.check_sqlite3(mandatory=True)
27
28 if conf.options.with_tests:
29 conf.env['WITH_TESTS'] = True
30
31 USED_BOOST_LIBS = ['system']
32 if conf.env['WITH_TESTS']:
33 USED_BOOST_LIBS += ['unit_test_framework']
34 conf.check_boost(lib=USED_BOOST_LIBS, mandatory=True)
35
Alexander Afanasyev6e3d1ac2014-07-21 12:47:49 -070036 if not conf.options.with_sqlite_locking:
37 conf.define('DISABLE_SQLITE3_FS_LOCKING', 1)
38
39 conf.write_config_header('src/config.hpp')
40
shockjiange9c1ab92014-07-21 12:02:52 -070041def build (bld):
Alexander Afanasyev6e3d1ac2014-07-21 12:47:49 -070042 bld(
43 features='cxx',
44 name='ndns-objects',
shockjiang99ad3892014-08-03 14:56:13 -070045 source=bld.path.ant_glob(['src/**/*.cpp'], excl=['src/main.cpp']),
46# source=bld.path.ant_glob(['src/rr.cpp', 'src/query.cpp',
47# 'src/response.cpp', 'src/zone.cpp', 'src/iterative-query.cpp',
48# 'src/db/db-mgr.cpp','src/db/zone-mgr.cpp', 'src/db/rr-mgr.cpp',
49# 'src/app/ndn-app.cpp', 'src/app/name-server.cpp',
50# 'src/app/name-caching-resolver.cpp', 'src/app/name-dig.cpp',
51# 'src/iterative-query-with-forwarding-hint.cpp'
52# ],
53# excl=['src/main.cpp']),
Alexander Afanasyev6e3d1ac2014-07-21 12:47:49 -070054 use='NDN_CXX BOOST',
55 includes='src',
56 export_includes='src',
57 )
shockjianga5ae48c2014-07-27 23:21:41 -070058
59 bld(
60 features='cxx cxxprogram',
61 source = "tools/name-server-daemon.cpp",
62 target = "name-server-daemon",
63 use = "ndns-objects"
64 )
65
66 bld(
67 features='cxx cxxprogram',
68 source = "tools/caching-resolver-daemon.cpp",
69 target = "caching-resolver-daemon",
70 use = "ndns-objects"
71 )
72
73 bld(
74 features='cxx cxxprogram',
75 source = "tools/dig.cpp",
76 target = "dig",
77 use = "ndns-objects"
78 )
79
80
81
82
83
Alexander Afanasyev6e3d1ac2014-07-21 12:47:49 -070084 bld.recurse('tests')
85
86 # bld.install_files('${SYSCONFDIR}/ndn', 'ndns.conf.sample')