-# NOTE: The tools are organized into five groups of four consisting of one
-# large and three small executables. This is done to minimize memory load
+
+include $(LEVEL)/Makefile.config
+
+# Build clang if present.
+
+ifneq ($(CLANG_SRC_ROOT),)
+ OPTIONAL_PARALLEL_DIRS := $(CLANG_SRC_ROOT)
+else
+ OPTIONAL_PARALLEL_DIRS := clang
+endif
+
+# Build LLD and LLDB if present. Note LLDB must be built last as it depends on
+# the wider LLVM infrastructure (including Clang).
+OPTIONAL_DIRS := lld lldb
+
+# NOTE: The tools are organized into five groups of four consisting of one
+# large and three small executables. This is done to minimize memory load