diff options
| author | Mikhail Glushenkov <foldr@codedgers.com> | 2009-03-02 09:04:13 +0000 |
|---|---|---|
| committer | Mikhail Glushenkov <foldr@codedgers.com> | 2009-03-02 09:04:13 +0000 |
| commit | 7cff81825ffde01c2085cebca463fd837c0b4775 (patch) | |
| tree | 440cdc64acac598f588467cda93687f1d332bb5a /llvm/Makefile.rules | |
| parent | 37b419cdeec2b925da4a09608f64e41841cb3ea8 (diff) | |
| download | bcm5719-llvm-7cff81825ffde01c2085cebca463fd837c0b4775.tar.gz bcm5719-llvm-7cff81825ffde01c2085cebca463fd837c0b4775.zip | |
Move the rules for building plugins to Makefile.rules.
llvm-svn: 65827
Diffstat (limited to 'llvm/Makefile.rules')
| -rw-r--r-- | llvm/Makefile.rules | 55 |
1 files changed, 54 insertions, 1 deletions
diff --git a/llvm/Makefile.rules b/llvm/Makefile.rules index 56d3a8739ed..fdad178ea25 100644 --- a/llvm/Makefile.rules +++ b/llvm/Makefile.rules @@ -192,6 +192,28 @@ install-local:: all-local install-bytecode:: install-bytecode-local ############################################################################### +# LLVMC: Provide rules for compiling llvmc plugins +############################################################################### + +ifdef LLVMC_PLUGIN + +LIBRARYNAME := $(patsubst %,plugin_llvmc_%,$(LLVMC_PLUGIN)) +REQUIRES_EH := 1 + +# Build a dynamic library if the user runs `make` directly from the plugin +# directory. +ifndef LLVMC_BUILTIN_PLUGIN +LOADABLE_MODULE = 1 +endif + +# TableGen stuff... +ifneq ($(BUILT_SOURCES),) +BUILD_AUTOGENERATED_INC=1 +endif + +endif # LLVMC_PLUGIN + +############################################################################### # VARIABLES: Set up various variables based on configuration data ############################################################################### @@ -1282,6 +1304,37 @@ $(ObjDir)/%.bc: %.ll $(ObjDir)/.dir $(LLVMAS) $(Verb) $(LLVMAS) $< -f -o $@ ############################################################################### +# LLVMC: Provide rules for compiling llvmc plugins, pt. 2 +############################################################################### + +ifdef BUILD_AUTOGENERATED_INC + +# This needs to be in a separate section, otherwise we get an infinite loop:) + +# This stuff is mostly copied from the TABLEGEN section below +# TODO: merge + +LLVMCPluginSrc := $(strip $(wildcard $(PROJ_SRC_DIR)/*.td)) +TDFiles := $(LLVMCPluginSrc) \ + $(strip $(wildcard $(LLVM_SRC_ROOT)/include/llvm/CompilerDriver/*.td)) +INCFiles := $(filter %.inc,$(BUILT_SOURCES)) +INCTMPFiles := $(INCFiles:%=$(ObjDir)/%.tmp) +.PRECIOUS: $(INCTMPFiles) $(INCFiles) + +# All of these files depend on tblgen and the .td files. +$(INCTMPFiles) : $(TBLGEN) $(TDFiles) + +$(INCFiles) : %.inc : $(ObjDir)/%.inc.tmp + $(Verb) $(CMP) -s $@ $< || $(CP) $< $@ + +$(ObjDir)/AutoGenerated.inc.tmp: $(LLVMCPluginSrc) $(ObjDir)/.dir \ + $(TBLGEN) $(TD_COMMON) + $(Echo) "Building LLVMC configuration library with tblgen" + $(Verb) $(TableGen) -gen-llvmc -o $(call SYSPATH, $@) $< + +endif # BUILD_AUTOGENERATED_INC + +############################################################################### # TABLEGEN: Provide rules for running tblgen to produce *.inc files ############################################################################### @@ -1784,5 +1837,5 @@ printvars:: # General debugging rule, use 'make print-XXX' to print the # definition, value and origin of XXX. -print-%: +print-%: $(error PRINT: $(value $*) = "$($*)" (from $(origin $*))) |

