diff --git a/Makefile.rules b/Makefile.rules
index b7992fdde423c0f75bb4daa6dea9e51f22a3950a..948b88099f38dbfb24894096cf7367465613fc18 100644
--- a/Makefile.rules
+++ b/Makefile.rules
@@ -1358,6 +1358,10 @@ ifdef LLVMC_BUILD_AUTOGENERATED_INC
 TABLEGEN_INC_FILES_COMMON = 1
 endif
 
+ifdef CLANG_BUILD_DIAGNOSTICS_INC
+TABLEGEN_INC_FILES_COMMON = 1
+endif
+
 ifdef TABLEGEN_INC_FILES_COMMON
 
 INCFiles := $(filter %.inc,$(BUILT_SOURCES))
@@ -1472,6 +1476,14 @@ $(ObjDir)/AutoGenerated.inc.tmp: $(LLVMCPluginSrc) $(ObjDir)/.dir \
 
 endif # LLVMC_BUILD_AUTOGENERATED_INC
 
+ifdef CLANG_BUILD_DIAGNOSTICS_INC
+
+$(ObjDir)/Diagnostic%Kinds.inc.tmp : Diagnostic%Kinds.td Diagnostic.td $(TBLGEN)
+	$(Echo) "Building Clang $(<F) diagnostic tables with tblgen"
+	$(Verb) $(MKDIR) $(@D)
+	$(Verb) $(TableGen) -gen-clang-diags-defs -clang-component=$(patsubst Diagnostic%Kinds.td,%,$(<F)) -o $(call SYSPATH, $@) Diagnostic.td
+
+endif
 
 ###############################################################################
 # OTHER RULES: Other rules needed