• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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