1# vim:ft=python 2import os 3 4double_conversion_sources = ['double-conversion/' + x for x in SConscript('double-conversion/SConscript')] 5double_conversion_test_sources = ['test/cctest/' + x for x in SConscript('test/cctest/SConscript')] 6 7DESTDIR = ARGUMENTS.get('DESTDIR', '') 8prefix = ARGUMENTS.get('prefix', '/usr/local') 9lib = ARGUMENTS.get('libsuffix', 'lib') 10libdir = os.path.join(DESTDIR + prefix, lib) 11 12env = Environment(CPPPATH='#', LIBS=['m', 'stdc++'], 13 CXXFLAGS=ARGUMENTS.get('CXXFLAGS', '')) 14debug = ARGUMENTS.get('debug', 0) 15optimize = ARGUMENTS.get('optimize', 0) 16env.Replace(CXX = ARGUMENTS.get('CXX', 'g++')) 17 18# for shared lib, requires scons 2.3.0 19env['SHLIBVERSION'] = '3.0.0' 20 21CCFLAGS = [] 22if int(debug): 23 CCFLAGS.append(ARGUMENTS.get('CXXFLAGS', '-g -Wall -Wshadow -Werror -UNDEBUG')) 24if int(optimize): 25 CCFLAGS.append(ARGUMENTS.get('CXXFLAGS', '-O3 -DNDEBUG=1')) 26 27env.Append(CCFLAGS = " ".join(CCFLAGS)) 28 29double_conversion_shared_objects = [ 30 env.SharedObject(src) for src in double_conversion_sources] 31double_conversion_static_objects = [ 32 env.StaticObject(src) for src in double_conversion_sources] 33 34library_name = 'double-conversion' 35 36static_lib = env.StaticLibrary(library_name, double_conversion_static_objects) 37static_lib_pic = env.StaticLibrary(library_name + '_pic', double_conversion_shared_objects) 38shared_lib = env.SharedLibrary(library_name, double_conversion_shared_objects) 39 40env.Program('run_tests', double_conversion_test_sources, LIBS=[static_lib]) 41 42env.InstallVersionedLib(libdir, shared_lib) 43env.Install(libdir, static_lib) 44env.Install(libdir, static_lib_pic) 45 46env.Alias('install', libdir) 47