local compressed_flags = .. HAVE_ZLIB ; local compressed_deps = /top//z ; if [ test_library "bz2" ] && [ test_header "bzlib.h" ] { external-lib bz2 ; compressed_flags += HAVE_BZLIB ; compressed_deps += bz2 ; } if [ test_library "lzma" ] && [ test_header "lzma.h" ] { external-lib lzma ; compressed_flags += HAVE_XZLIB ; compressed_deps += lzma ; } #rt is needed for clock_gettime on linux. But it's already included with threading=multi lib rt ; obj read_compressed.o : read_compressed.cc : $(compressed_flags) ; alias read_compressed : read_compressed.o $(compressed_deps) ; obj read_compressed_test.o : read_compressed_test.cc /top//boost_unit_test_framework : $(compressed_flags) ; obj file_piece_test.o : file_piece_test.cc /top//boost_unit_test_framework : $(compressed_flags) ; fakelib parallel_read : parallel_read.cc : multi:/top//boost_thread multi:WITH_THREADS : : .. ; fakelib kenutil : [ glob *.cc : parallel_read.cc read_compressed.cc *_main.cc *_test.cc ] read_compressed parallel_read double-conversion//double-conversion : .. LINUX,single:rt : : .. ; exe cat_compressed : cat_compressed_main.cc kenutil ; #Does not install this exe probing_hash_table_benchmark : probing_hash_table_benchmark_main.cc kenutil ; alias programs : cat_compressed ; import testing ; run file_piece_test.o kenutil /top//boost_unit_test_framework : : file_piece.cc ; for local t in [ glob *_test.cc : file_piece_test.cc read_compressed_test.cc ] { local name = [ MATCH "(.*)\.cc" : $(t) ] ; unit-test $(name) : $(t) kenutil /top//boost_unit_test_framework /top//boost_filesystem /top//boost_system ; } build-project stream ;