Replace $(findstring) by $(filter)

Previously, unnecessary build targets were created because
$(findstring) matched with unintended names. For example,
$(findstring AttrImpl) returns non-empty even for
AttrParsedAttrImpl.inc.

Also add Options.inc explicitly to TBLGEN_TABLES. This won't
be pulled by CC1Options.inc anymore.

Change-Id: I344400e49570a1eb61e6125f775dff9530cfecc0
diff --git a/clang-tblgen-rules.mk b/clang-tblgen-rules.mk
index 32d0d40..ba28e10 100644
--- a/clang-tblgen-rules.mk
+++ b/clang-tblgen-rules.mk
@@ -27,127 +27,127 @@
 
 generated_sources := $(call local-generated-sources-dir)
 
-ifneq ($(findstring AttrDump,$(TBLGEN_TABLES)),)
+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 ($(findstring AttrImpl,$(TBLGEN_TABLES)),)
+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 ($(findstring AttrHasAttributeImpl,$(TBLGEN_TABLES)),)
+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 ($(findstring AttrList,$(TBLGEN_TABLES)),)
+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 ($(findstring AttrSpellingListIndex,$(TBLGEN_TABLES)),)
+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 ($(findstring AttrPCHRead,$(TBLGEN_TABLES)),)
+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 ($(findstring AttrPCHWrite,$(TBLGEN_TABLES)),)
+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 ($(findstring Attrs,$(TBLGEN_TABLES)),)
+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 ($(findstring AttrParserStringSwitches,$(TBLGEN_TABLES)),)
+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 ($(findstring AttrVisitor,$(TBLGEN_TABLES)),)
+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 ($(findstring AttrParsedAttrKinds,$(TBLGEN_TABLES)),)
+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 ($(findstring AttrParsedAttrImpl,$(TBLGEN_TABLES)),)
+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 ($(findstring AttrParsedAttrList,$(TBLGEN_TABLES)),)
+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 ($(findstring AttrTemplateInstantiate,$(TBLGEN_TABLES)),)
+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 ($(findstring Checkers.inc,$(TBLGEN_TABLES)),)
+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 ($(findstring CommentCommandInfo,$(TBLGEN_TABLES)),)
+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 ($(findstring CommentCommandList,$(TBLGEN_TABLES)),)
+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 ($(findstring CommentHTMLNamedCharacterReferences,$(TBLGEN_TABLES)),)
+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 ($(findstring CommentHTMLTagsProperties,$(TBLGEN_TABLES)),)
+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 ($(findstring CommentHTMLTags,$(TBLGEN_TABLES)),)
+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 ($(findstring CommentNodes,$(TBLGEN_TABLES)),)
+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))
@@ -159,37 +159,37 @@
         $(CLANG_ROOT_PATH)/include/clang/Basic/Diagnostic.td,clang-diags-defs \
         -clang-component=$(patsubst Diagnostic%Kinds.inc,%,$(genfile)))))
 
-ifneq ($(findstring DiagnosticGroups,$(TBLGEN_TABLES)),)
+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 ($(findstring DiagnosticIndexName,$(TBLGEN_TABLES)),)
+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 ($(findstring DeclNodes,$(TBLGEN_TABLES)),)
+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 ($(findstring StmtNodes,$(TBLGEN_TABLES)),)
+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 ($(findstring arm_neon,$(TBLGEN_TABLES)),)
+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 ($(findstring Options.inc,$(TBLGEN_TABLES)),)
+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,
@@ -202,7 +202,7 @@
     $(generated_sources)/include/clang/Driver/Options.inc)
 endif
 
-ifneq ($(findstring arm_neon.h,$(TBLGEN_TABLES)),)
+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))
diff --git a/lib/Frontend/Android.mk b/lib/Frontend/Android.mk
index 9536a8e..aae042d 100644
--- a/lib/Frontend/Android.mk
+++ b/lib/Frontend/Android.mk
@@ -17,6 +17,7 @@
   DiagnosticLexKinds.inc \
   DiagnosticSemaKinds.inc \
   DeclNodes.inc \
+  Options.inc \
   StmtNodes.inc
 
 clang_frontend_SRC_FILES := \
diff --git a/lib/FrontendTool/Android.mk b/lib/FrontendTool/Android.mk
index 60bc981..37830db 100644
--- a/lib/FrontendTool/Android.mk
+++ b/lib/FrontendTool/Android.mk
@@ -15,6 +15,7 @@
   DiagnosticFrontendKinds.inc \
   CC1Options.inc \
   CommentCommandList.inc \
+  Options.inc \
   StmtNodes.inc
 
 clang_frontend_tool_SRC_FILES := \
diff --git a/tools/driver/Android.mk b/tools/driver/Android.mk
index 9e3d0d7..bd051ac 100644
--- a/tools/driver/Android.mk
+++ b/tools/driver/Android.mk
@@ -14,7 +14,8 @@
   DiagnosticDriverKinds.inc \
   DiagnosticFrontendKinds.inc \
   CC1Options.inc \
-  CC1AsOptions.inc
+  CC1AsOptions.inc \
+  Options.inc
 
 clang_SRC_FILES := \
   cc1_main.cpp \