aboutsummaryrefslogtreecommitdiffstats
path: root/tools/llvmc/Makefile
diff options
context:
space:
mode:
authorMikhail Glushenkov <foldr@codedgers.com>2009-03-02 09:03:36 +0000
committerMikhail Glushenkov <foldr@codedgers.com>2009-03-02 09:03:36 +0000
commitb14f5b5e9d6a8cc9337a99ff3a31ff2bc1ba2fa0 (patch)
tree716964a2dcfb6b3c0e3a708cc242733be19ce70d /tools/llvmc/Makefile
parent95e2aa8967ed7c983b093c1b119afad848962068 (diff)
downloadexternal_llvm-b14f5b5e9d6a8cc9337a99ff3a31ff2bc1ba2fa0.zip
external_llvm-b14f5b5e9d6a8cc9337a99ff3a31ff2bc1ba2fa0.tar.gz
external_llvm-b14f5b5e9d6a8cc9337a99ff3a31ff2bc1ba2fa0.tar.bz2
Fix build with objdir != srcdir.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65826 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvmc/Makefile')
-rw-r--r--tools/llvmc/Makefile42
1 files changed, 42 insertions, 0 deletions
diff --git a/tools/llvmc/Makefile b/tools/llvmc/Makefile
index 6096176..f70c4b5 100644
--- a/tools/llvmc/Makefile
+++ b/tools/llvmc/Makefile
@@ -9,6 +9,8 @@
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).
@@ -18,3 +20,43 @@ export LLVMC_BUILTIN_PLUGINS = Base Clang
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