diff --git a/SConstruct b/SConstruct
index 422efe6476878779a0d8a1bbb759403906c60f28..2d67046a8956dc695b6b294f9166f787636ee27c 100644
--- a/SConstruct
+++ b/SConstruct
@@ -7,6 +7,7 @@ import sys
 vars = Variables(None, ARGUMENTS)
 vars.Add(PathVariable('DESTDIR', "Root directory to install in (useful for packaging scripts)", None, PathVariable.PathIsDirCreate))
 vars.Add(PathVariable('prefix', "Where to install in the FHS", "/usr/local", PathVariable.PathAccept))
+vars.Add(ListVariable('BINDINGS', 'Language bindings to build', 0, ['php']))
 
 env = Environment(ENV = {'PATH' : os.environ['PATH']}, variables = vars, tools=['default', 'scanreplace'], toolpath=['tools'])
 
diff --git a/src/SConscript b/src/SConscript
index 1240fd0838fefa965238f05f022a6b1aace4d6c9..98ce6c4787bf2f922b05ab357f957cb248156890 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -1,8 +1,6 @@
 # -*- python -*-
 Import('env')
 
-bindings = ['php']
-
 dist_headers = [
     "hammer.h",
     "allocator.h",
@@ -73,5 +71,6 @@ testenv.Program('test_suite', tests + ['test_suite.c'])
 
 Export("libhammer_static libhammer_shared")
 
-for b in bindings:
-    env.SConscript(["bindings/%s/SConscript" % b])
+if 'BINDINGS' in env:
+    for b in env['BINDINGS']:
+        env.SConscript(["bindings/%s/SConscript" % b])