]> granicus.if.org Git - clang/commitdiff
Clang-side build system infrastructure for multiple tblgens.
authorPeter Collingbourne <peter@pcc.me.uk>
Thu, 6 Oct 2011 01:52:10 +0000 (01:52 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Thu, 6 Oct 2011 01:52:10 +0000 (01:52 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141267 91177308-0d34-0410-b5e6-96231b3b80d8

CMakeLists.txt
Makefile
include/clang/AST/Makefile
include/clang/Basic/Makefile
include/clang/Driver/Makefile
include/clang/Lex/Makefile
include/clang/Parse/Makefile
include/clang/Serialization/Makefile
lib/Headers/Makefile
lib/StaticAnalyzer/Checkers/Makefile

index 1e5cf0c52cc9b41ace6ba6b8316585781c70c4b0..e12208f67df0c613514ff38db8eec9520968a0a1 100644 (file)
@@ -19,10 +19,10 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
     endif()
   endif()
 
-  if( NOT EXISTS "${CLANG_PATH_TO_LLVM_BUILD}/bin/tblgen${CMAKE_EXECUTABLE_SUFFIX}" )
-    # Looking for bin/Debug/tblgen is a complete hack. How can we get
+  if( NOT EXISTS "${CLANG_PATH_TO_LLVM_BUILD}/bin/llvm-tblgen${CMAKE_EXECUTABLE_SUFFIX}" )
+    # Looking for bin/Debug/llvm-tblgen is a complete hack. How can we get
     # around this?
-    if( NOT EXISTS "${CLANG_PATH_TO_LLVM_BUILD}/bin/Debug/tblgen${CMAKE_EXECUTABLE_SUFFIX}" )
+    if( NOT EXISTS "${CLANG_PATH_TO_LLVM_BUILD}/bin/Debug/llvm-tblgen${CMAKE_EXECUTABLE_SUFFIX}" )
       message(FATAL_ERROR "Please set CLANG_PATH_TO_LLVM_BUILD to a directory containing a LLVM build.")
     endif()
   endif()
@@ -46,11 +46,11 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
   include_directories("${PATH_TO_LLVM_BUILD}/include" "${LLVM_MAIN_INCLUDE_DIR}")
   link_directories("${PATH_TO_LLVM_BUILD}/lib")
 
-  if( EXISTS "${CLANG_PATH_TO_LLVM_BUILD}/bin/tblgen${CMAKE_EXECUTABLE_SUFFIX}" )
-    set(LLVM_TABLEGEN_EXE "${PATH_TO_LLVM_BUILD}/bin/tblgen${CMAKE_EXECUTABLE_SUFFIX}")
+  if( EXISTS "${CLANG_PATH_TO_LLVM_BUILD}/bin/llvm-tblgen${CMAKE_EXECUTABLE_SUFFIX}" )
+    set(LLVM_TABLEGEN_EXE "${PATH_TO_LLVM_BUILD}/bin/llvm-tblgen${CMAKE_EXECUTABLE_SUFFIX}")
   else()
     # FIXME: This is an utter hack.
-    set(LLVM_TABLEGEN_EXE "${PATH_TO_LLVM_BUILD}/bin/Debug/tblgen${CMAKE_EXECUTABLE_SUFFIX}")
+    set(LLVM_TABLEGEN_EXE "${PATH_TO_LLVM_BUILD}/bin/Debug/llvm-tblgen${CMAKE_EXECUTABLE_SUFFIX}")
   endif()
 
   set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
@@ -153,7 +153,7 @@ function(clang_tablegen)
   endif()
 
   set( LLVM_TARGET_DEFINITIONS ${CTG_SOURCE} )
-  tablegen( ${CTG_DEFAULT_ARGS} )
+  tablegen( LLVM ${CTG_DEFAULT_ARGS} )
 
   list( GET CTG_DEFAULT_ARGS 0 output_file )
   if( CTG_TARGET )
index 50dcf8c127d5c2bb86ca26c85fd03ddd1e6e7543..7a983882b5a13d6b348d901ba38524e82415a3e2 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -60,6 +60,16 @@ endif
 # We can revisit this when LLVM/Clang support it.
 CXX.Flags += -fno-strict-aliasing
 
+# Set up Clang's tblgen.
+ifndef CLANG_TBLGEN
+  ifeq ($(LLVM_CROSS_COMPILING),1)
+    CLANG_TBLGEN := $(BuildLLVMToolDir)/llvm-tblgen$(BUILD_EXEEXT)
+  else
+    CLANG_TBLGEN := $(LLVMToolDir)/llvm-tblgen$(EXEEXT)
+  endif
+endif
+ClangTableGen = $(CLANG_TBLGEN) $(TableGen.Flags)
+
 ###
 # Clang Top Level specific stuff.
 
index 6ba6e897d186d5726ef2a9d15582f42d3a9ae530..2854b7f406325842b33eee48a74806d09c7973dc 100644 (file)
@@ -6,24 +6,24 @@ TABLEGEN_INC_FILES_COMMON = 1
 
 include $(CLANG_LEVEL)/Makefile
 
-$(ObjDir)/Attrs.inc.tmp : $(TD_SRC_DIR)/Attr.td $(TBLGEN) \
+$(ObjDir)/Attrs.inc.tmp : $(TD_SRC_DIR)/Attr.td $(CLANG_TBLGEN) \
                               $(ObjDir)/.dir
        $(Echo) "Building Clang attribute classes with tblgen"
-       $(Verb) $(TableGen) -gen-clang-attr-classes -o $(call SYSPATH, $@) \
+       $(Verb) $(ClangTableGen) -gen-clang-attr-classes -o $(call SYSPATH, $@) \
                -I $(PROJ_SRC_DIR)/../../ $<
 
-$(ObjDir)/AttrImpl.inc.tmp : $(TD_SRC_DIR)/Attr.td $(TBLGEN) \
+$(ObjDir)/AttrImpl.inc.tmp : $(TD_SRC_DIR)/Attr.td $(CLANG_TBLGEN) \
                               $(ObjDir)/.dir
        $(Echo) "Building Clang attribute implementations with tblgen"
-       $(Verb) $(TableGen) -gen-clang-attr-impl -o $(call SYSPATH, $@) \
+       $(Verb) $(ClangTableGen) -gen-clang-attr-impl -o $(call SYSPATH, $@) \
                -I $(PROJ_SRC_DIR)/../../ $<
 
-$(ObjDir)/StmtNodes.inc.tmp : $(TD_SRC_DIR)/StmtNodes.td $(TBLGEN) \
+$(ObjDir)/StmtNodes.inc.tmp : $(TD_SRC_DIR)/StmtNodes.td $(CLANG_TBLGEN) \
                               $(ObjDir)/.dir
        $(Echo) "Building Clang statement node tables with tblgen"
-       $(Verb) $(TableGen) -gen-clang-stmt-nodes -o $(call SYSPATH, $@) $<
+       $(Verb) $(ClangTableGen) -gen-clang-stmt-nodes -o $(call SYSPATH, $@) $<
 
-$(ObjDir)/DeclNodes.inc.tmp : $(TD_SRC_DIR)/DeclNodes.td $(TBLGEN) \
+$(ObjDir)/DeclNodes.inc.tmp : $(TD_SRC_DIR)/DeclNodes.td $(CLANG_TBLGEN) \
                               $(ObjDir)/.dir
        $(Echo) "Building Clang declaration node tables with tblgen"
-       $(Verb) $(TableGen) -gen-clang-decl-nodes -o $(call SYSPATH, $@) $<
+       $(Verb) $(ClangTableGen) -gen-clang-decl-nodes -o $(call SYSPATH, $@) $<
index 1338464fd5d9274532644207d9bb682073e61eac..eeffe2dfb6cd2a5aaa3194379efa73f6225bb465 100644 (file)
@@ -29,26 +29,26 @@ else
 CLANG_HAS_VERSION_PATCHLEVEL := 1
 endif
 
-$(ObjDir)/Diagnostic%Kinds.inc.tmp : Diagnostic.td Diagnostic%Kinds.td $(TBLGEN) $(ObjDir)/.dir
+$(ObjDir)/Diagnostic%Kinds.inc.tmp : Diagnostic.td Diagnostic%Kinds.td $(CLANG_TBLGEN) $(ObjDir)/.dir
        $(Echo) "Building Clang $(patsubst Diagnostic%Kinds.inc.tmp,%,$(@F)) diagnostic tables with tblgen"
-       $(Verb) $(TableGen) -gen-clang-diags-defs -clang-component=$(patsubst Diagnostic%Kinds.inc.tmp,%,$(@F)) -o $(call SYSPATH, $@) $<
+       $(Verb) $(ClangTableGen) -gen-clang-diags-defs -clang-component=$(patsubst Diagnostic%Kinds.inc.tmp,%,$(@F)) -o $(call SYSPATH, $@) $<
 
-$(ObjDir)/DiagnosticIndexName.inc.tmp : Diagnostic.td $(INPUT_TDS) $(TBLGEN) $(ObjDir)/.dir
+$(ObjDir)/DiagnosticIndexName.inc.tmp : Diagnostic.td $(INPUT_TDS) $(CLANG_TBLGEN) $(ObjDir)/.dir
        $(Echo) "Building Clang diagnostic name index with tblgen"
-       $(Verb) $(TableGen) -gen-clang-diags-index-name -o $(call SYSPATH, $@) $<
+       $(Verb) $(ClangTableGen) -gen-clang-diags-index-name -o $(call SYSPATH, $@) $<
 
-$(ObjDir)/DiagnosticGroups.inc.tmp : Diagnostic.td DiagnosticGroups.td $(INPUT_TDS) $(TBLGEN) $(ObjDir)/.dir
+$(ObjDir)/DiagnosticGroups.inc.tmp : Diagnostic.td DiagnosticGroups.td $(INPUT_TDS) $(CLANG_TBLGEN) $(ObjDir)/.dir
        $(Echo) "Building Clang diagnostic groups with tblgen"
-       $(Verb) $(TableGen) -gen-clang-diag-groups -o $(call SYSPATH, $@) $<
+       $(Verb) $(ClangTableGen) -gen-clang-diag-groups -o $(call SYSPATH, $@) $<
 
-$(ObjDir)/AttrList.inc.tmp : Attr.td $(TBLGEN) $(ObjDir)/.dir
+$(ObjDir)/AttrList.inc.tmp : Attr.td $(CLANG_TBLGEN) $(ObjDir)/.dir
        $(Echo) "Building Clang attribute list with tblgen"
-       $(Verb) $(TableGen) -gen-clang-attr-list -o $(call SYSPATH, $@) \
+       $(Verb) $(ClangTableGen) -gen-clang-attr-list -o $(call SYSPATH, $@) \
          -I $(PROJ_SRC_DIR)/../.. $<
 
-$(ObjDir)/arm_neon.inc.tmp : arm_neon.td $(TBLGEN) $(ObjDir)/.dir
+$(ObjDir)/arm_neon.inc.tmp : arm_neon.td $(CLANG_TBLGEN) $(ObjDir)/.dir
        $(Echo) "Building Clang arm_neon.inc with tblgen"
-       $(Verb) $(TableGen) -gen-arm-neon-sema -o $(call SYSPATH, $@) $<
+       $(Verb) $(ClangTableGen) -gen-arm-neon-sema -o $(call SYSPATH, $@) $<
 
 $(ObjDir)/Version.inc.tmp : Version.inc.in Makefile $(LLVM_OBJ_ROOT)/Makefile.config $(ObjDir)/.dir
        $(Echo) "Updating Clang version info."
index d8291662a563bbe43007375996313602e39eceb6..45bc40f3b7151396632b4da8b0392b00785fe57b 100644 (file)
@@ -5,14 +5,14 @@ TABLEGEN_INC_FILES_COMMON = 1
 
 include $(CLANG_LEVEL)/Makefile
 
-$(ObjDir)/Options.inc.tmp : Options.td OptParser.td $(TBLGEN) $(ObjDir)/.dir
+$(ObjDir)/Options.inc.tmp : Options.td OptParser.td $(CLANG_TBLGEN) $(ObjDir)/.dir
        $(Echo) "Building Clang Driver Option tables with tblgen"
-       $(Verb) $(TableGen) -gen-opt-parser-defs -o $(call SYSPATH, $@) $<
+       $(Verb) $(ClangTableGen) -gen-opt-parser-defs -o $(call SYSPATH, $@) $<
 
-$(ObjDir)/CC1Options.inc.tmp : CC1Options.td OptParser.td $(TBLGEN) $(ObjDir)/.dir
+$(ObjDir)/CC1Options.inc.tmp : CC1Options.td OptParser.td $(CLANG_TBLGEN) $(ObjDir)/.dir
        $(Echo) "Building Clang CC1 Option tables with tblgen"
-       $(Verb) $(TableGen) -gen-opt-parser-defs -o $(call SYSPATH, $@) $<
+       $(Verb) $(ClangTableGen) -gen-opt-parser-defs -o $(call SYSPATH, $@) $<
 
-$(ObjDir)/CC1AsOptions.inc.tmp : CC1AsOptions.td OptParser.td $(TBLGEN) $(ObjDir)/.dir
+$(ObjDir)/CC1AsOptions.inc.tmp : CC1AsOptions.td OptParser.td $(CLANG_TBLGEN) $(ObjDir)/.dir
        $(Echo) "Building Clang CC1 Assembler Option tables with tblgen"
-       $(Verb) $(TableGen) -gen-opt-parser-defs -o $(call SYSPATH, $@) $<
+       $(Verb) $(ClangTableGen) -gen-opt-parser-defs -o $(call SYSPATH, $@) $<
index 9874bcffb3e1dc234526f5a44a28199ead99832a..762b9a2587582c0b3fda2a14cd9ad6804b393139 100644 (file)
@@ -6,8 +6,8 @@ TABLEGEN_INC_FILES_COMMON = 1
 
 include $(CLANG_LEVEL)/Makefile
 
-$(ObjDir)/AttrSpellings.inc.tmp : $(TD_SRC_DIR)/Attr.td $(TBLGEN) \
+$(ObjDir)/AttrSpellings.inc.tmp : $(TD_SRC_DIR)/Attr.td $(CLANG_TBLGEN) \
                                   $(ObjDir)/.dir
        $(Echo) "Building Clang attribute spellings with tblgen"
-       $(Verb) $(TableGen) -gen-clang-attr-spelling-list -o $(call SYSPATH, $@) \
+       $(Verb) $(ClangTableGen) -gen-clang-attr-spelling-list -o $(call SYSPATH, $@) \
                -I $(PROJ_SRC_DIR)/../../ $<
index b1c81dfe77aa08070a301b7ad8bf30bd9f42453b..296892c5b6edfd024ac44af841e544106d877667 100644 (file)
@@ -6,8 +6,8 @@ TABLEGEN_INC_FILES_COMMON = 1
 
 include $(CLANG_LEVEL)/Makefile
 
-$(ObjDir)/AttrLateParsed.inc.tmp : $(TD_SRC_DIR)/Attr.td $(TBLGEN) \
+$(ObjDir)/AttrLateParsed.inc.tmp : $(TD_SRC_DIR)/Attr.td $(CLANG_TBLGEN) \
                                    $(ObjDir)/.dir
        $(Echo) "Building Clang attribute late-parsed table with tblgen"
-       $(Verb) $(TableGen) -gen-clang-attr-late-parsed-list -o $(call SYSPATH, $@) \
+       $(Verb) $(ClangTableGen) -gen-clang-attr-late-parsed-list -o $(call SYSPATH, $@) \
                -I $(PROJ_SRC_DIR)/../../ $<
\ No newline at end of file
index 79486b11bc68f04ad371a98dc10d2ca06535219e..386f453761750aaf4362e7e7160aca4090b48e4b 100644 (file)
@@ -6,14 +6,14 @@ TABLEGEN_INC_FILES_COMMON = 1
 
 include $(CLANG_LEVEL)/Makefile
 
-$(ObjDir)/AttrPCHRead.inc.tmp : $(TD_SRC_DIR)/Attr.td $(TBLGEN) \
+$(ObjDir)/AttrPCHRead.inc.tmp : $(TD_SRC_DIR)/Attr.td $(CLANG_TBLGEN) \
                               $(ObjDir)/.dir
        $(Echo) "Building Clang PCH reader with tblgen"
-       $(Verb) $(TableGen) -gen-clang-attr-pch-read -o $(call SYSPATH, $@) \
+       $(Verb) $(ClangTableGen) -gen-clang-attr-pch-read -o $(call SYSPATH, $@) \
                -I $(PROJ_SRC_DIR)/../../ $<
 
-$(ObjDir)/AttrPCHWrite.inc.tmp : $(TD_SRC_DIR)/Attr.td $(TBLGEN) \
+$(ObjDir)/AttrPCHWrite.inc.tmp : $(TD_SRC_DIR)/Attr.td $(CLANG_TBLGEN) \
                               $(ObjDir)/.dir
        $(Echo) "Building Clang PCH writer with tblgen"
-       $(Verb) $(TableGen) -gen-clang-attr-pch-write -o $(call SYSPATH, $@) \
+       $(Verb) $(ClangTableGen) -gen-clang-attr-pch-write -o $(call SYSPATH, $@) \
                -I $(PROJ_SRC_DIR)/../../ $<
index d75b1a2e7cae67af6bff3778d293112d1895f628..91cc562bd355d1926f1ed18ba41081cb9f4de9e1 100644 (file)
@@ -49,6 +49,6 @@ $(INSTHEADERS): $(PROJ_headers)/%.h: $(HeaderDir)/%.h | $(PROJ_headers)
 
 install-local:: $(INSTHEADERS)
 
-$(ObjDir)/arm_neon.h.inc.tmp : $(CLANG_LEVEL)/include/clang/Basic/arm_neon.td $(TBLGEN) $(ObjDir)/.dir
+$(ObjDir)/arm_neon.h.inc.tmp : $(CLANG_LEVEL)/include/clang/Basic/arm_neon.td $(CLANG_TBLGEN) $(ObjDir)/.dir
        $(Echo) "Building Clang arm_neon.h.inc with tblgen"
-       $(Verb) $(TableGen) -gen-arm-neon -o $(call SYSPATH, $@) $<
+       $(Verb) $(ClangTableGen) -gen-arm-neon -o $(call SYSPATH, $@) $<
index 97f46424e4722220d2f5009e3cda22c592c36ab4..2582908b95d00507e58841f176da4c8a6ed13e50 100644 (file)
@@ -19,6 +19,6 @@ TABLEGEN_INC_FILES_COMMON = 1
 
 include $(CLANG_LEVEL)/Makefile
 
-$(ObjDir)/Checkers.inc.tmp : Checkers.td $(PROJ_SRC_DIR)/$(CLANG_LEVEL)/include/clang/StaticAnalyzer/Checkers/CheckerBase.td $(TBLGEN) $(ObjDir)/.dir
+$(ObjDir)/Checkers.inc.tmp : Checkers.td $(PROJ_SRC_DIR)/$(CLANG_LEVEL)/include/clang/StaticAnalyzer/Checkers/CheckerBase.td $(CLANG_TBLGEN) $(ObjDir)/.dir
        $(Echo) "Building Clang SA Checkers tables with tblgen"
-       $(Verb) $(TableGen) -gen-clang-sa-checkers -I $(PROJ_SRC_DIR)/$(CLANG_LEVEL)/include -o $(call SYSPATH, $@) $<
+       $(Verb) $(ClangTableGen) -gen-clang-sa-checkers -I $(PROJ_SRC_DIR)/$(CLANG_LEVEL)/include -o $(call SYSPATH, $@) $<