diff --git a/SConstruct b/SConstruct
index bb2bb858e51ecf84db7588ba1c212bdf164e2e5d..f9aef938632ca5faa87680b0e18d7bda5ab295b4 100644
--- a/SConstruct
+++ b/SConstruct
@@ -4,7 +4,6 @@ import os.path
 import platform
 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))
@@ -49,15 +48,6 @@ env['backendsincpath'] = calcInstallPath("$prefix", "include", "hammer", "backen
 env['pkgconfigpath'] = calcInstallPath("$prefix", "lib", "pkgconfig")
 env.ScanReplace('libhammer.pc.in')
 
-env.MergeFlags("-std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable")
-
-if env['PLATFORM'] == 'darwin':
-    env.Append(SHLINKFLAGS = '-install_name ' + env["libpath"] + '/${TARGET.file}')
-elif os.uname()[0] == "OpenBSD":
-    pass
-else:
-    env.MergeFlags("-lrt")
-
 AddOption("--variant",
           dest="variant",
           nargs=1, type="choice",
@@ -78,20 +68,23 @@ AddOption("--in-place",
           action="store_true",
           help="Build in-place, rather than in the build/<variant> tree")
 
+env["CC"] = os.getenv("CC") or env["CC"]
+env["CXX"] = os.getenv("CXX") or env["CXX"]
 
-dbg = env.Clone(VARIANT='debug')
-dbg.Append(CCFLAGS=['-g'])
+if os.getenv("CC") == "clang" or env['PLATFORM'] == 'darwin':
+    env.Replace(CC="clang",
+                CXX="clang++")
 
-opt = env.Clone(VARIANT='opt')
-opt.Append(CCFLAGS=["-O3"])
+# Language standard and warnings
+env.MergeFlags("-std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable")
 
-if GetOption("variant") == 'debug':
-    env = dbg
+# Linker options
+if env['PLATFORM'] == 'darwin':
+    env.Append(SHLINKFLAGS = '-install_name ' + env["libpath"] + '/${TARGET.file}')
+elif platform.system() == "OpenBSD":
+    pass
 else:
-    env = opt
-
-env["CC"] = os.getenv("CC") or env["CC"]
-env["CXX"] = os.getenv("CXX") or env["CXX"]
+    env.MergeFlags("-lrt")
 
 if GetOption("coverage"):
     env.Append(CFLAGS=["--coverage"],
@@ -102,9 +95,16 @@ if GetOption("coverage"):
     else:
         env.ParseConfig('llvm-config --ldflags')
 
-if os.getenv("CC") == "clang" or env['PLATFORM'] == 'darwin':
-    env.Replace(CC="clang",
-                CXX="clang++")
+dbg = env.Clone(VARIANT='debug')
+dbg.Append(CCFLAGS=['-g'])
+
+opt = env.Clone(VARIANT='opt')
+opt.Append(CCFLAGS=["-O3"])
+
+if GetOption("variant") == 'debug':
+    env = dbg
+else:
+    env = opt
 
 env["ENV"].update(x for x in os.environ.items() if x[0].startswith("CCC_"))