diff options
Diffstat (limited to 'SConstruct')
-rw-r--r-- | SConstruct | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/SConstruct b/SConstruct new file mode 100644 index 0000000..cebd7e0 --- /dev/null +++ b/SConstruct @@ -0,0 +1,46 @@ +# vim:ft=python +import os + +double_conversion_sources = ['double-conversion/' + x for x in SConscript('double-conversion/SConscript')] +double_conversion_test_sources = ['test/cctest/' + x for x in SConscript('test/cctest/SConscript')] + +DESTDIR = ARGUMENTS.get('DESTDIR', '') +prefix = ARGUMENTS.get('prefix', '/usr/local') +lib = ARGUMENTS.get('libsuffix', 'lib') +libdir = os.path.join(DESTDIR + prefix, lib) + +env = Environment(CPPPATH='#', LIBS=['m', 'stdc++'], + CXXFLAGS=ARGUMENTS.get('CXXFLAGS', '')) +debug = ARGUMENTS.get('debug', 0) +optimize = ARGUMENTS.get('optimize', 0) +env.Replace(CXX = ARGUMENTS.get('CXX', 'g++')) + +# for shared lib, requires scons 2.3.0 +env['SHLIBVERSION'] = '3.0.0' + +CCFLAGS = [] +if int(debug): + CCFLAGS.append(ARGUMENTS.get('CXXFLAGS', '-g -Wall -Wshadow -Werror -UNDEBUG')) +if int(optimize): + CCFLAGS.append(ARGUMENTS.get('CXXFLAGS', '-O3 -DNDEBUG=1')) + +env.Append(CCFLAGS = " ".join(CCFLAGS)) + +double_conversion_shared_objects = [ + env.SharedObject(src) for src in double_conversion_sources] +double_conversion_static_objects = [ + env.StaticObject(src) for src in double_conversion_sources] + +library_name = 'double-conversion' + +static_lib = env.StaticLibrary(library_name, double_conversion_static_objects) +static_lib_pic = env.StaticLibrary(library_name + '_pic', double_conversion_shared_objects) +shared_lib = env.SharedLibrary(library_name, double_conversion_shared_objects) + +env.Program('run_tests', double_conversion_test_sources, LIBS=[static_lib]) + +env.InstallVersionedLib(libdir, shared_lib) +env.Install(libdir, static_lib) +env.Install(libdir, static_lib_pic) + +env.Alias('install', libdir) |