aboutsummaryrefslogtreecommitdiff
path: root/tools/llvmc/Makefile.llvmc
diff options
context:
space:
mode:
Diffstat (limited to 'tools/llvmc/Makefile.llvmc')
-rw-r--r--tools/llvmc/Makefile.llvmc49
1 files changed, 49 insertions, 0 deletions
diff --git a/tools/llvmc/Makefile.llvmc b/tools/llvmc/Makefile.llvmc
new file mode 100644
index 0000000000..79ec6426e8
--- /dev/null
+++ b/tools/llvmc/Makefile.llvmc
@@ -0,0 +1,49 @@
+##===- tools/llvmc/Makefile.llvmc --------------------------*- Makefile -*-===##
+#
+# The LLVM Compiler Infrastructure
+#
+# This file is distributed under the University of Illinois Open
+# Source License. See LICENSE.TXT for details.
+#
+##===----------------------------------------------------------------------===##
+
+# TODO: This must be eventually merged into Makefile.rules.
+
+ifdef LLVMC_PLUGIN
+
+# We are included from plugins/PluginName/Makefile...
+
+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