mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +00:00
Move the rules for building plugins to Makefile.rules.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65827 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b14f5b5e9d
commit
540d73f0cb
@ -191,6 +191,28 @@ uninstall:: uninstall-local
|
|||||||
install-local:: all-local
|
install-local:: all-local
|
||||||
install-bytecode:: install-bytecode-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
|
# VARIABLES: Set up various variables based on configuration data
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@ -1281,6 +1303,37 @@ $(ObjDir)/%.bc: %.ll $(ObjDir)/.dir $(LLVMAS)
|
|||||||
$(Echo) "Compiling $*.ll for $(BuildMode) build"
|
$(Echo) "Compiling $*.ll for $(BuildMode) build"
|
||||||
$(Verb) $(LLVMAS) $< -f -o $@
|
$(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
|
# 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
|
# General debugging rule, use 'make print-XXX' to print the
|
||||||
# definition, value and origin of XXX.
|
# definition, value and origin of XXX.
|
||||||
print-%:
|
print-%:
|
||||||
$(error PRINT: $(value $*) = "$($*)" (from $(origin $*)))
|
$(error PRINT: $(value $*) = "$($*)" (from $(origin $*)))
|
||||||
|
@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
LEVEL = ../..
|
LEVEL = ../..
|
||||||
|
|
||||||
#ifndef LLVMC_PLUGIN
|
|
||||||
|
|
||||||
# The current plan is to make the user copy the skeleton project and change only
|
# The current plan is to make the user copy the skeleton project and change only
|
||||||
# this file (and plugins/UserPlugin, of course).
|
# this file (and plugins/UserPlugin, of course).
|
||||||
|
|
||||||
@ -20,43 +18,3 @@ export LLVMC_BUILTIN_PLUGINS = Base Clang
|
|||||||
DIRS = plugins driver
|
DIRS = plugins driver
|
||||||
|
|
||||||
include $(LEVEL)/Makefile.common
|
include $(LEVEL)/Makefile.common
|
||||||
|
|
||||||
else # LLVMC_PLUGIN
|
|
||||||
|
|
||||||
# We are included from plugins/PluginName/Makefile...
|
|
||||||
# TODO: This part must be merged into Makefile.rules.
|
|
||||||
|
|
||||||
LEVEL = ../../../..
|
|
||||||
|
|
||||||
LIBRARYNAME := $(patsubst %,plugin_llvmc_%,$(LLVMC_PLUGIN))
|
|
||||||
REQUIRES_EH := 1
|
|
||||||
|
|
||||||
# Build a dynamic library if the user runs `make` from plugins/PluginName
|
|
||||||
ifndef LLVMC_BUILTIN_PLUGIN
|
|
||||||
LOADABLE_MODULE = 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
# TableGen stuff...
|
|
||||||
ifneq ($(BUILT_SOURCES),)
|
|
||||||
BUILD_AUTOGENERATED_INC=1
|
|
||||||
endif
|
|
||||||
|
|
||||||
include $(LEVEL)/Makefile.common
|
|
||||||
|
|
||||||
ifdef BUILD_AUTOGENERATED_INC
|
|
||||||
|
|
||||||
TOOLS_SOURCE := $(strip $(wildcard $(PROJ_SRC_DIR)/*.td))
|
|
||||||
|
|
||||||
TD_COMMON :=$(strip $(wildcard \
|
|
||||||
$(LLVM_SRC_ROOT)/include/llvm/CompilerDriver/*.td))
|
|
||||||
|
|
||||||
$(ObjDir)/AutoGenerated.inc.tmp: $(TOOLS_SOURCE) $(ObjDir)/.dir \
|
|
||||||
$(TBLGEN) $(TD_COMMON)
|
|
||||||
$(Echo) "Building LLVMC configuration library with tblgen"
|
|
||||||
$(Verb) $(TableGen) -gen-llvmc -o $(call SYSPATH, $@) $<
|
|
||||||
|
|
||||||
AutoGenerated.inc : $(ObjDir)/AutoGenerated.inc.tmp
|
|
||||||
$(Verb) $(CMP) -s $@ $< || $(CP) $< $@
|
|
||||||
endif # BUILD_AUTOGENERATED_INC
|
|
||||||
|
|
||||||
endif # LLVMC_PLUGIN
|
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
#
|
#
|
||||||
##===----------------------------------------------------------------------===##
|
##===----------------------------------------------------------------------===##
|
||||||
|
|
||||||
LEVEL = ../..
|
LEVEL = ../../../..
|
||||||
|
|
||||||
LLVMC_PLUGIN = Base
|
LLVMC_PLUGIN = Base
|
||||||
BUILT_SOURCES = AutoGenerated.inc
|
BUILT_SOURCES = AutoGenerated.inc
|
||||||
|
|
||||||
include $(LEVEL)/Makefile
|
include $(LEVEL)/Makefile.common
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
#
|
#
|
||||||
##===----------------------------------------------------------------------===##
|
##===----------------------------------------------------------------------===##
|
||||||
|
|
||||||
LEVEL = ../..
|
LEVEL = ../../../..
|
||||||
|
|
||||||
LLVMC_PLUGIN = Clang
|
LLVMC_PLUGIN = Clang
|
||||||
BUILT_SOURCES = AutoGenerated.inc
|
BUILT_SOURCES = AutoGenerated.inc
|
||||||
|
|
||||||
include $(LEVEL)/Makefile
|
include $(LEVEL)/Makefile.common
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
#
|
#
|
||||||
##===----------------------------------------------------------------------===##
|
##===----------------------------------------------------------------------===##
|
||||||
|
|
||||||
LEVEL = ../..
|
LEVEL = ../../../..
|
||||||
|
|
||||||
LLVMC_PLUGIN = Hello
|
LLVMC_PLUGIN = Hello
|
||||||
|
|
||||||
include $(LEVEL)/Makefile
|
include $(LEVEL)/Makefile.common
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
#
|
#
|
||||||
##===----------------------------------------------------------------------===##
|
##===----------------------------------------------------------------------===##
|
||||||
|
|
||||||
LEVEL = ../..
|
LEVEL = ../../../..
|
||||||
|
|
||||||
LLVMC_PLUGIN = Simple
|
LLVMC_PLUGIN = Simple
|
||||||
BUILT_SOURCES = AutoGenerated.inc
|
BUILT_SOURCES = AutoGenerated.inc
|
||||||
|
|
||||||
include $(LEVEL)/Makefile
|
include $(LEVEL)/Makefile.common
|
||||||
|
Loading…
Reference in New Issue
Block a user