aboutsummaryrefslogtreecommitdiff
path: root/SConstruct
diff options
context:
space:
mode:
Diffstat (limited to 'SConstruct')
-rw-r--r--SConstruct46
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)