[llvm-commits] [llvm] r65827 - in /llvm/trunk: Makefile.rules tools/llvmc/Makefile tools/llvmc/plugins/Base/Makefile tools/llvmc/plugins/Clang/Makefile tools/llvmc/plugins/Hello/Makefile tools/llvmc/plugins/Simple/Makefile
Mikhail Glushenkov
foldr at codedgers.com
Mon Mar 2 01:04:14 PST 2009
Author: foldr
Date: Mon Mar 2 03:04:13 2009
New Revision: 65827
URL: http://llvm.org/viewvc/llvm-project?rev=65827&view=rev
Log:
Move the rules for building plugins to Makefile.rules.
Modified:
llvm/trunk/Makefile.rules
llvm/trunk/tools/llvmc/Makefile
llvm/trunk/tools/llvmc/plugins/Base/Makefile
llvm/trunk/tools/llvmc/plugins/Clang/Makefile
llvm/trunk/tools/llvmc/plugins/Hello/Makefile
llvm/trunk/tools/llvmc/plugins/Simple/Makefile
Modified: llvm/trunk/Makefile.rules
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/Makefile.rules?rev=65827&r1=65826&r2=65827&view=diff
==============================================================================
--- llvm/trunk/Makefile.rules (original)
+++ llvm/trunk/Makefile.rules Mon Mar 2 03:04:13 2009
@@ -192,6 +192,28 @@
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 @@
$(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 @@
# General debugging rule, use 'make print-XXX' to print the
# definition, value and origin of XXX.
-print-%:
+print-%:
$(error PRINT: $(value $*) = "$($*)" (from $(origin $*)))
Modified: llvm/trunk/tools/llvmc/Makefile
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvmc/Makefile?rev=65827&r1=65826&r2=65827&view=diff
==============================================================================
--- llvm/trunk/tools/llvmc/Makefile (original)
+++ llvm/trunk/tools/llvmc/Makefile Mon Mar 2 03:04:13 2009
@@ -9,8 +9,6 @@
LEVEL = ../..
-#ifndef LLVMC_PLUGIN
-
# The current plan is to make the user copy the skeleton project and change only
# this file (and plugins/UserPlugin, of course).
@@ -20,43 +18,3 @@
DIRS = plugins driver
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
Modified: llvm/trunk/tools/llvmc/plugins/Base/Makefile
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvmc/plugins/Base/Makefile?rev=65827&r1=65826&r2=65827&view=diff
==============================================================================
--- llvm/trunk/tools/llvmc/plugins/Base/Makefile (original)
+++ llvm/trunk/tools/llvmc/plugins/Base/Makefile Mon Mar 2 03:04:13 2009
@@ -7,9 +7,9 @@
#
##===----------------------------------------------------------------------===##
-LEVEL = ../..
+LEVEL = ../../../..
LLVMC_PLUGIN = Base
BUILT_SOURCES = AutoGenerated.inc
-include $(LEVEL)/Makefile
+include $(LEVEL)/Makefile.common
Modified: llvm/trunk/tools/llvmc/plugins/Clang/Makefile
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvmc/plugins/Clang/Makefile?rev=65827&r1=65826&r2=65827&view=diff
==============================================================================
--- llvm/trunk/tools/llvmc/plugins/Clang/Makefile (original)
+++ llvm/trunk/tools/llvmc/plugins/Clang/Makefile Mon Mar 2 03:04:13 2009
@@ -7,9 +7,9 @@
#
##===----------------------------------------------------------------------===##
-LEVEL = ../..
+LEVEL = ../../../..
LLVMC_PLUGIN = Clang
BUILT_SOURCES = AutoGenerated.inc
-include $(LEVEL)/Makefile
+include $(LEVEL)/Makefile.common
Modified: llvm/trunk/tools/llvmc/plugins/Hello/Makefile
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvmc/plugins/Hello/Makefile?rev=65827&r1=65826&r2=65827&view=diff
==============================================================================
--- llvm/trunk/tools/llvmc/plugins/Hello/Makefile (original)
+++ llvm/trunk/tools/llvmc/plugins/Hello/Makefile Mon Mar 2 03:04:13 2009
@@ -7,8 +7,8 @@
#
##===----------------------------------------------------------------------===##
-LEVEL = ../..
+LEVEL = ../../../..
LLVMC_PLUGIN = Hello
-include $(LEVEL)/Makefile
+include $(LEVEL)/Makefile.common
Modified: llvm/trunk/tools/llvmc/plugins/Simple/Makefile
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvmc/plugins/Simple/Makefile?rev=65827&r1=65826&r2=65827&view=diff
==============================================================================
--- llvm/trunk/tools/llvmc/plugins/Simple/Makefile (original)
+++ llvm/trunk/tools/llvmc/plugins/Simple/Makefile Mon Mar 2 03:04:13 2009
@@ -7,9 +7,9 @@
#
##===----------------------------------------------------------------------===##
-LEVEL = ../..
+LEVEL = ../../../..
LLVMC_PLUGIN = Simple
BUILT_SOURCES = AutoGenerated.inc
-include $(LEVEL)/Makefile
+include $(LEVEL)/Makefile.common
More information about the llvm-commits
mailing list