diff --git a/AUTHORS b/AUTHORS
index a5c45a2..88b38ae 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -11,3 +11,4 @@
 Mike Hommey <mhommey@mozilla.com>
 Martin Olsson <mnemo@minimum.se>
 Kent Williams <chaircrusher@gmail.com>
+Elan Ruusamäe <glen@delfi.ee>
diff --git a/Changelog b/Changelog
index 7125a70..6ee539e 100644
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,6 @@
+2013-12-23:
+  Improved SConstruct file. Thanks to Milan Bouchet-Valat and Elan Ruusamäe.
+
 2013-11-09:
   Tagged v2.0.0.
   String-to-Double|Float: ALLOW_LEADING_SPACES and similar flags now include
diff --git a/SConstruct b/SConstruct
index 3c51288..72e688e 100644
--- a/SConstruct
+++ b/SConstruct
@@ -1,14 +1,46 @@
+# vim:ft=python
+import os
+
 double_conversion_sources = ['src/' + x for x in SConscript('src/SConscript')]
 double_conversion_test_sources = ['test/cctest/' + x for x in SConscript('test/cctest/SConscript')]
-test = double_conversion_sources + double_conversion_test_sources
-print(test)
-env = Environment(CPPPATH='#/src', LIBS=['m', 'stdc++'])
+
+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='#/src', 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'] = '0.0.0'
+
+CCFLAGS = []
 if int(debug):
-  env.Append(CCFLAGS = '-g -Wall -Werror')
+  CCFLAGS.append(ARGUMENTS.get('CXXFLAGS', '-g -Wall -Werror'))
 if int(optimize):
-  env.Append(CCFLAGS = '-O3')
-print double_conversion_sources
-print double_conversion_test_sources
-env.Program('run_tests', double_conversion_sources + double_conversion_test_sources)
+  CCFLAGS.append(ARGUMENTS.get('CXXFLAGS', '-O3'))
+
+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)
