diff --git a/scripts/llvm.py b/scripts/llvm.py
index 27b8cb7..2489171 100644
--- a/scripts/llvm.py
+++ b/scripts/llvm.py
@@ -4,11 +4,15 @@
 from sys import argv
 from sys import exit
 
+from modules.llvm import LLVMBuildConfig
 from modules.llvm import LLVMSubproject
 from modules.llvm import LLVMSourceConfig
 from modules.llvm import get_remote_branch
 from modules.llvm import push_branch
+from modules.utils import CommandPrinter
+from modules.utils import CommandRunner
 
+from linaropy.cd import cd
 from linaropy.git.clone import Clone
 from linaropy.proj import Proj
 
@@ -91,6 +95,32 @@
         die("Failed to push branch because: " + str(exc) + str(exc.__cause__))
 
 
+def configure_build(args):
+    """Configure a given build directory."""
+
+    proj = Proj()
+
+    llvm_worktree_root = get_worktree_root(args.env)
+    sourceConfig = LLVMSourceConfig(proj, llvm_worktree_root)
+
+    buildConfig = LLVMBuildConfig(sourceConfig, args.build)
+
+    if args.defs:
+        args.defs = ["-D{}".format(v) for v in args.defs]
+
+    if args.dry:
+        consumer = CommandPrinter()
+    else:
+        if not os.path.exists(args.build):
+            os.makedirs(args.build)
+        consumer = CommandRunner()
+
+    try:
+        buildConfig.cmake(consumer, args.defs, args.generator)
+    except RuntimeError as exc:
+        die("Failed to configure {} because:\n{}".format(args.build, str(exc)))
+
+
 ##########################################################################
 # Command line parsing                                                   #
 ##########################################################################
@@ -147,6 +177,38 @@
          "for all enabled subprojects.")
 push.set_defaults(run_command=push_current_branch)
 
+# Subcommand for configuring a build directory
+configure = subcommands.add_parser(
+    'configure',
+    help="Run CMake in the given build directory.")
+configure.add_argument(
+    '--build-dir',
+    dest='build',
+    required=True,
+    help="Path to the build directory. It will be created if it does not exist")
+configure.add_argument(
+    '--cmake-generator',
+    dest='generator',
+    default='Ninja',
+    help="CMake generator to use (default is Ninja).")
+configure.add_argument(
+    '--cmake-def',
+    dest='defs',
+    metavar='VAR=VALUE',
+    default=[],
+    action='append',
+    # We add the -D in front of the variable ourselves because the argument
+    # parsing gets confused otherwise (and quoting doesn't help).
+    help="Additional CMake definitions, e.g. CMAKE_BUILD_TYPE=Release."
+    "May be passed several times. The -D is added automatically.")
+configure.add_argument(
+    '-n', '--dry-run',
+    dest='dry',
+    action='store_true',
+    default=False,
+    help="Print the CMake command instead of executing it.")
+configure.set_defaults(run_command=configure_build)
+
 args = options.parse_args()
 if args.subcommand == "projects" and args.add and not args.repos:
     projs.error(
