X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=SConstruct;h=a1632970ba88fe300bf74347d511e4c1e603d5ac;hb=b158c1d24bff0108188777475a3feb17fdf3a6ee;hp=de8c59e181239fe2cb55aa6ff596699c61e923ee;hpb=b968b48b53d4e847d3052b28850c8bd405bb3933;p=anna.git diff --git a/SConstruct b/SConstruct index de8c59e..a163297 100644 --- a/SConstruct +++ b/SConstruct @@ -64,6 +64,9 @@ env.Append (CPPPATH = [source_include, usr_local_include, usr_include ]) #env.Append (CCFLAGS = '-std=c++0x') # C++11 support: env.Append (CXXFLAGS = '-std=c++11') +# Shared libraries using static ones: +env.Append (CXXFLAGS = '-fPIC') +#env.Append (CXXFLAGS = '-export-dynamic') env.Append (LIBS = ['']) # scons -Q release=1 @@ -88,6 +91,29 @@ for source in sources: env.Default (libraries) +# +## Run 'scons dynamic' to compile dynamic libraries +# +dynamic_list = [] +dynamic = os.path.join (current_directory, "dynamic") +# Find SConstruct files: +dynamics=[os.path.join(r,f) for r,d,fs in os.walk(dynamic) for f in fs if f.endswith('SConstruct')] +for dynamic in dynamics: + ss = str (dynamic) + bn_ss = os.path.basename(ss) + if (bn_ss == "SConstruct"): + dynamic_program = SConscript (ss, exports='env') + if dynamic_program: + dynamic_list.extend (dynamic_program) + print dynamic_program [0] + +#Depends (dynamic_list, compile_library) + +# In order to remove dynamics objects with 'scons -c' we need to default them at built ('scons') procedure: +env.Default (dynamic_list) +#env.Alias ('dynamic', dynamic_list) + + # ## Run 'scons example' to compile examples # @@ -110,7 +136,6 @@ for example in examples: env.Default (example_list) #env.Alias ('example', example_list) - # # Run 'scons test' to compile unit-tests # @@ -159,6 +184,7 @@ env.Alias('doc', env.Command('doc.dummy', [], 'cd docs/doxygen; doxygen')) # See http://www.scons.org/wiki/InstallTargets and http://www.scons.org/doc/production/HTML/scons-user/c2938.html install_include = env.Install (target_usr_local_include, Glob("include/anna/*")) install_lib = env.Install (target_usr_local_lib, Glob("source/*/" + variant + "/*.a")) +install_dynlib = env.Install (target_usr_local_lib, Glob("dynamic/launcher/default/" + variant + "/*.so")) install_example = env.Install (target_opt_bin, Glob("example/*/*/" + variant + "/example_*")) postinstall_example = env.Command('./example/postinstall.out', None, './example/postinstall.sh') @@ -166,10 +192,12 @@ postinstall_example = env.Command('./example/postinstall.out', None, './example/ if test_unit_result: Depends (install_include, test_unit_result) Depends (install_lib, test_unit_result) + Depends (install_dynlib, test_unit_result) Depends (install_example, test_unit_result) ii = env.Alias('install-include', [target_usr_local_include]) il = env.Alias('install-lib', [target_usr_local_lib]) +idl = env.Alias('install-dynlib', [target_usr_local_lib]) iil = env.Alias('install-include-and-lib', [target_usr_local_include, target_usr_local_lib]) iex = env.Alias('install-example', [target_opt_bin, postinstall_example]) env.Alias('install', [iil, iex])