--- /dev/null
+Import('env')
+
+protobuf = Builder(
+ action = (
+ 'protoc --proto_path=${SOURCE.dir} --cpp_out=${TARGET.dir} $SOURCE'
+ ),
+ single_source = True,
+ )
+
+env["BUILDERS"]["Protobuf"] = protobuf
+
+env.ParseConfig("echo -I./protobufrpc")
+env.ParseConfig("echo -I/opt/local/include -L/opt/local/lib")
+
+if not env.has_key('LIBS'):
+ env['LIBS'] = []
+
+env['LIBS'] += ['protobuf',
+ 'pthread',
+ 'boost_thread-mt',
+ 'boost_regex-mt',
+ 'boost_system-mt',
+ 'boost_program_options-mt',
+ 'db']
+
+protobufrpc = SConscript(dirs=['./protobufrpc/'], exports='env')
+
+kvstore_proto_files = env.Protobuf(
+ target = [ 'kvstore.pb.cc', 'kvstore.pb.h' ],
+ source = 'kvstore.proto'
+ )
+
+kvservice_files = ['kvservice.cc', 'backend.cc']
+kvclient_files = ['kvclient.cc']
+
+kvservice = env.StaticLibrary('kvservice', kvservice_files)
+kvclient = env.StaticLibrary('kvclient', kvclient_files)
+kvstore_proto = env.StaticLibrary('kvstore', kvstore_proto_files)
+
+env.Program('kvstore', ['kvstore.cc']
+ + kvservice
+ + kvstore_proto
+ + protobufrpc)
+
+env.Program('kvtest',
+ ['kvtest.cc']
+ + kvservice
+ + kvclient
+ + kvstore_proto
+ + protobufrpc,
+ LIBS=env['LIBS']+['gtest'])
+
+env.Program('kvbench',
+ ['kvbench.cc']
+ + kvclient
+ + kvstore_proto
+ + protobufrpc)
+
+products = {
+ 'kvservice': kvservice,
+ 'kvclient': kvclient,
+ 'kvstore_proto': kvstore_proto,
+ }
+
+Return('products')