LEVEL = ../..
-##### FIXME: Does not work when objdir != srcdir
-#####BUILTIN_PLUGINS = Base
-
+BUILTIN_PLUGINS = Base
DRIVER_NAME = llvmc2
-DIRS = plugins driver
+DIRS = plugins driver
export BUILTIN_PLUGINS
export DRIVER_NAME
$ mv Simple.td MyPlugin.td
-Note that the plugin source directory should be placed into
+Note that the plugin source directory should be placed under
``$LLVMC_DIR/plugins`` to make use of the existing build
infrastructure. To build a version of the LLVMC executable called
``mydriver`` with your plugin compiled in, use the following command::
##===----------------------------------------------------------------------===##
LLVMC_PLUGIN = Base
+BUILT_SOURCES = AutoGenerated.inc
include ../Makefile
--- /dev/null
+#include "AutoGenerated.inc"
##===----------------------------------------------------------------------===##
LLVMC_PLUGIN = Clang
+BUILT_SOURCES = AutoGenerated.inc
include ../Makefile
--- /dev/null
+#include "AutoGenerated.inc"
LEVEL = ../../..
DIRS = $(BUILTIN_PLUGINS)
-# TOFIX: DSO versions of plugins are not built
-
+# TOFIX: Should we also build DSO versions of plugins?
export BUILTIN_LLVMC_PLUGIN=1
include $(LEVEL)/Makefile.common
LEVEL = ../../../..
-LIBRARYNAME = $(patsubst %,LLVMC%,$(LLVMC_PLUGIN))
-TOOLS_SOURCE = $(wildcard $(PROJ_SRC_DIR)/*.td)
+LIBRARYNAME := $(patsubst %,LLVMC%,$(LLVMC_PLUGIN))
REQUIRES_EH = 1
ifndef BUILTIN_LLVMC_PLUGIN
LOADABLE_MODULE = 1
endif
-ifneq ($(TOOLS_SOURCE),"")
+ifneq ($(BUILT_SOURCES),)
BUILD_AUTOGENERATED_INC=1
-BUILT_SOURCES = AutoGenerated.inc
endif
include $(LEVEL)/Makefile.common
-# TOFIX: This should go into Makefile.rules
+# TOFIX: This probably should go into Makefile.rules
ifdef BUILD_AUTOGENERATED_INC
-TD_COMMON = $(wildcard $(LLVM_SRC_ROOT)/include/llvm/CompilerDriver/*.td)
+
+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)
--- /dev/null
+##===- tools/llvmc2/plugins/Simple/Makefile ------------------*- Makefile -*-===##
+#
+# The LLVM Compiler Infrastructure
+#
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
+#
+##===----------------------------------------------------------------------===##
+
+LLVMC_PLUGIN = Simple
+BUILT_SOURCES = AutoGenerated.inc
+
+include ../Makefile
--- /dev/null
+#include "AutoGenerated.inc"
--- /dev/null
+// A simple wrapper for gcc.
+// To compile, use this command:
+//
+// $ cd $LLVMC2_DIR
+// $ make DRIVER_NAME=mygcc BUILTIN_PLUGINS=Simple
+//
+// To build this plugin as a dynamic library:
+//
+// $ cd $LLVMC2_DIR
+// $ make BUILTIN_PLUGINS=""
+// $ cd plugins/Simple
+// $ make
+//
+// Run as:
+//
+// $ llvmc2 -load $LLVM_DIR/Release/lib/LLVMCSimple.so
+
+include "llvm/CompilerDriver/Common.td"
+
+def gcc : Tool<
+[(in_language "c"),
+ (out_language "executable"),
+ (output_suffix "out"),
+ (cmd_line "gcc $INFILE -o $OUTFILE"),
+ (sink)
+]>;
+
+def LanguageMap : LanguageMap<[LangToSuffixes<"c", ["c"]>]>;
+
+def CompilationGraph : CompilationGraph<[Edge<root, gcc>]>;