import libtbx.load_env import os Import("env_base","env_etc") env_etc.cbflib_dist = libtbx.env.dist_path("cbflib") env_etc.cbflib_include = [env_etc.norm_join(env_etc.cbflib_dist,"examples"), env_etc.norm_join(env_etc.cbflib_dist,"include"), ] env_etc.cbflib_adaptbx_dist = libtbx.env.dist_path("cbflib_adaptbx") env_etc.cbflib_common_includes = [ env_etc.libtbx_include, env_etc.scitbx_include, env_etc.boost_adaptbx_include, env_etc.boost_include, env_etc.cbflib_dist, # for the adaptor cpp files env_etc.cbflib_include[0], # for the cbflib c-files env_etc.cbflib_include[1], # for the cbflib c-files ] env = env_base.Clone( SHLINKFLAGS=env_etc.shlinkflags) if (env_etc.compiler == "win32_cl"): env.Append(CCFLAGS=[ "/DCBF_NO_REGEX", "/Dmalloc=malloc", # work around problem in bison-generated cbf_stx.c "/Dfree=free"]) elif (env_etc.compiler.endswith("_mingw")): env.Append(CCFLAGS=["-DCBF_NO_REGEX"]) prefix = "#"+os.path.basename(env_etc.cbflib_dist) cbflib_092_forward = [] if os.path.isfile( os.path.join(env_etc.cbflib_dist,"src","cbf_ws.c") ): cbflib_092_forward.append("src/cbf_ws.c") env.StaticLibrary(target='#lib/cbf', source = [prefix+"/"+s for s in [ "examples/img.c", "src/cbf.c", "src/cbf_alloc.c", "src/cbf_ascii.c", "src/cbf_binary.c", "src/cbf_byte_offset.c", "src/cbf_canonical.c", "src/cbf_codes.c", "src/cbf_compress.c", "src/cbf_context.c", "src/cbf_file.c", "src/cbf_lex.c", "src/cbf_packed.c", "src/cbf_predictor.c", "src/cbf_read_binary.c", "src/cbf_read_mime.c", "src/cbf_simple.c", "src/cbf_string.c", "src/cbf_stx.c", "src/cbf_tree.c", "src/cbf_uncompressed.c", "src/cbf_write.c", "src/cbf_write_binary.c", "src/md5c.c", ] + cbflib_092_forward ] + [ "detectors/mar_adaptor.cpp", "detectors/cbf_adaptor.cpp", "detectors/cbf_byte_offset_optimized.cpp", "detectors/buffer_based_service.cpp", ], CPPPATH=env_etc.cbflib_common_includes ) if (not env_etc.no_boost_python): Import("env_no_includes_boost_python_ext") env_cbflib_boost_python_ext = env_no_includes_boost_python_ext.Clone() env_etc.include_registry.append( env=env_cbflib_boost_python_ext, paths=env_etc.cbflib_common_includes + [env_etc.python_include]) env_cbflib_boost_python_ext.SharedLibrary( target='#lib/_pycbf', source=[prefix+"/pycbf/pycbf_wrap.c"], LIBS=["cbf"]+env_etc.libs_python+env_etc.libm) Export("env_cbflib_boost_python_ext") SConscript("detectors/boost_python/SConscript") env_standalone = env.Clone( LIBS = [env_etc.libm,],CPPPATH=env_etc.cbflib_common_includes ) env_standalone.Prepend(LIBS=["cbf",]) for source in ["detectors/tst_memory",]: target = "cbflib."+os.path.basename(source) exe = env_standalone.Program( target="#exe_dev/"+env["PROGPREFIX"]+target+env["PROGSUFFIX"], source=source+".cpp") libtbx.env.write_dispatcher_in_bin( source_file=exe[0].get_abspath(), target_file=target)