###################################4########################
## TableGen: Compile .td files to .inc.
###########################################################
ifeq ($(LOCAL_MODULE_CLASS),)
    LOCAL_MODULE_CLASS := STATIC_LIBRARIES
endif

ifneq ($(strip $(TBLGEN_TABLES)),)

define transform-clang-td-to-out
$(if $(LOCAL_IS_HOST_MODULE),	\
	$(call transform-host-clang-td-to-out,$(1)),	\
	$(call transform-device-clang-td-to-out,$(1)))
endef

# $(1): an output file
# $(2): an input .td file
# $(3): a parameter passed to transform-td-to-out
# You must call this with $(eval).
define define-clang-tblgen-rule
LOCAL_GENERATED_SOURCES += $(1)
$(1): TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(1): $(2) $(CLANG_TBLGEN)
	$$(call transform-clang-td-to-out,$(3))
$$(call include-depfile, $(1).d, $(1))
endef

generated_sources := $(call local-generated-sources-dir)

ifneq ($(filter AttrDump.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/AST/AttrDump.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td,clang-attr-dump))
endif

ifneq ($(filter AttrImpl.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/AST/AttrImpl.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td,clang-attr-impl))
endif

ifneq ($(filter AttrHasAttributeImpl.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/Basic/AttrHasAttributeImpl.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td,clang-attr-has-attribute-impl))
endif

ifneq ($(filter AttrList.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/Basic/AttrList.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td,clang-attr-list))
endif

ifneq ($(filter AttrSpellingListIndex.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/Sema/AttrSpellingListIndex.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td,clang-attr-spelling-index))
endif

ifneq ($(filter AttrPCHRead.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/Serialization/AttrPCHRead.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td,clang-attr-pch-read))
endif

ifneq ($(filter AttrPCHWrite.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/Serialization/AttrPCHWrite.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td,clang-attr-pch-write))
endif

ifneq ($(filter Attrs.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/AST/Attrs.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td,clang-attr-classes))
endif

ifneq ($(filter AttrParserStringSwitches.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/Parse/AttrParserStringSwitches.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td,clang-attr-parser-string-switches))
endif

ifneq ($(filter AttrVisitor.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/AST/AttrVisitor.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td,clang-attr-ast-visitor))
endif

ifneq ($(filter AttrParsedAttrKinds.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/Sema/AttrParsedAttrKinds.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td,clang-attr-parsed-attr-kinds))
endif

ifneq ($(filter AttrParsedAttrImpl.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/Sema/AttrParsedAttrImpl.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td,clang-attr-parsed-attr-impl))
endif

ifneq ($(filter AttrParsedAttrList.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/Sema/AttrParsedAttrList.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td,clang-attr-parsed-attr-list))
endif

ifneq ($(filter AttrTemplateInstantiate.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/Sema/AttrTemplateInstantiate.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td,clang-attr-template-instantiate))
endif

ifneq ($(filter Checkers.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/Checkers.inc, \
    $(CLANG_ROOT_PATH)/lib/StaticAnalyzer/Checkers/Checkers.td,clang-sa-checkers))
endif

ifneq ($(filter CommentCommandInfo.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/AST/CommentCommandInfo.inc, \
    $(CLANG_ROOT_PATH)/include/clang/AST/CommentCommands.td,clang-comment-command-info))
endif

ifneq ($(filter CommentCommandList.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/AST/CommentCommandList.inc, \
    $(CLANG_ROOT_PATH)/include/clang/AST/CommentCommands.td,clang-comment-command-list))
endif

ifneq ($(filter CommentHTMLNamedCharacterReferences.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/AST/CommentHTMLNamedCharacterReferences.inc, \
    $(CLANG_ROOT_PATH)/include/clang/AST/CommentHTMLNamedCharacterReferences.td,clang-comment-html-named-character-references))
endif

ifneq ($(filter CommentHTMLTagsProperties.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/AST/CommentHTMLTagsProperties.inc, \
    $(CLANG_ROOT_PATH)/include/clang/AST/CommentHTMLTags.td,clang-comment-html-tags-properties))
endif

ifneq ($(filter CommentHTMLTags.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/AST/CommentHTMLTags.inc, \
    $(CLANG_ROOT_PATH)/include/clang/AST/CommentHTMLTags.td,clang-comment-html-tags))
endif

ifneq ($(filter CommentNodes.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/AST/CommentNodes.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/CommentNodes.td,clang-comment-nodes))
endif

$(foreach genfile,$(filter Diagnostic%Kinds.inc,$(TBLGEN_TABLES)), \
    $(eval $(call define-clang-tblgen-rule, \
        $(generated_sources)/include/clang/Basic/$(genfile), \
        $(CLANG_ROOT_PATH)/include/clang/Basic/Diagnostic.td,clang-diags-defs \
        -clang-component=$(patsubst Diagnostic%Kinds.inc,%,$(genfile)))))

ifneq ($(filter DiagnosticGroups.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/Basic/DiagnosticGroups.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/Diagnostic.td,clang-diag-groups))
endif

ifneq ($(filter DiagnosticIndexName.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/Basic/DiagnosticIndexName.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/Diagnostic.td,clang-diag-groups))
endif

ifneq ($(filter DeclNodes.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/AST/DeclNodes.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/DeclNodes.td,clang-decl-nodes))
endif

ifneq ($(filter StmtNodes.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/AST/StmtNodes.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/StmtNodes.td,clang-stmt-nodes))
endif

ifneq ($(filter arm_neon.inc,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/Basic/arm_neon.inc, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/arm_neon.td,arm-neon-sema))
endif

ifneq ($(filter Options.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(generated_sources)/include/clang/Driver/Options.inc
# We cannot use define-tblgen-rule in external/llvm/llvm-tblgen-rules.mk
# as define-tblgen-rule may be not yet. We use transform-td-to-out,
# which is evaluated at recipe-evaluation-time and is always available.
$(generated_sources)/include/clang/Driver/Options.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(generated_sources)/include/clang/Driver/Options.inc: $(CLANG_ROOT_PATH)/include/clang/Driver/Options.td $(CLANG_TBLGEN) $(LLVM_TBLGEN)
	$(call transform-td-to-out,opt-parser-defs)
$(call include-depfile, \
    $(generated_sources)/include/clang/Driver/Options.inc.d, \
    $(generated_sources)/include/clang/Driver/Options.inc)
endif

ifneq ($(filter arm_neon.h,$(TBLGEN_TABLES)),)
$(eval $(call define-clang-tblgen-rule, \
    $(generated_sources)/include/clang/Basic/arm_neon.h, \
    $(CLANG_ROOT_PATH)/include/clang/Basic/arm_neon.td,arm-neon))
endif

LOCAL_C_INCLUDES += $(generated_sources)/include

endif
