Fix build breakage (again) when srcdir != objdir, other small fixes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56998 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/llvmc2/Makefile b/tools/llvmc2/Makefile
index 0c36d5b..63f933d 100644
--- a/tools/llvmc2/Makefile
+++ b/tools/llvmc2/Makefile
@@ -7,39 +7,14 @@
 #
 ##===----------------------------------------------------------------------===##
 
-# Compiled-in plugins
-##### FIXME: This breaks the build.
-#####BUILTIN_PLUGINS = Base
-
 LEVEL = ../..
-TOOLNAME = llvmc2
-LINK_COMPONENTS = support system
-REQUIRES_EH := 1
 
-ifneq ($(BUILTIN_PLUGINS),)
+BUILTIN_PLUGINS = Base
+DRIVER_NAME = llvmc2
+DIRS = $(patsubst %,plugins/%,$(BUILTIN_PLUGINS)) src
 
+export BUILTIN_PLUGINS
+export DRIVER_NAME
 export BUILTIN_LLVMC_PLUGIN=1
-USEDLIBS = $(patsubst %,LLVMC%,$(BUILTIN_PLUGINS))
-
-endif
 
 include $(LEVEL)/Makefile.common
-
-TD_COMMON = $(wildcard $(LLVM_SRC_ROOT)/include/llvm/CompilerDriver/*.td)
-
-# There is probably a better way to do this: currently we enter the
-# subdirectory 2 times - the second time is not needed.
-# This probably also needs to be integrated into Makefile.rules.
-define PLUGIN_template
-PLUGIN_$(1)_SOURCES=$$(wildcard plugins/$(1)/*.cpp)
-PLUGIN_$(1)_TD_SOURCES=$$(wildcard plugins/$(1)/*.cpp)
-
-$$(LibDir)/LLVMC$(1).o: $$(PLUGIN_$(1)_SOURCES) $$(PLUGIN_$(1)_TD_SOURCES) \
-			$$(TD_COMMON)
-	@$$(MAKE) -C plugins/$(1)
-
-$$(RecursiveTargets) ::
-	@$$(MAKE) -C plugins/$(1) $$@
-endef
-
-$(foreach plugin,$(BUILTIN_PLUGINS),$(eval $(call PLUGIN_template,$(plugin))))
diff --git a/tools/llvmc2/examples/Simple.td b/tools/llvmc2/examples/Simple.td
index 88d4f0e..4885301 100644
--- a/tools/llvmc2/examples/Simple.td
+++ b/tools/llvmc2/examples/Simple.td
@@ -1,6 +1,6 @@
 // A simple wrapper for gcc.
 // To compile, use this command:
-//    make TOOLNAME=llvmc_simple GRAPH=examples/Simple.td
+//      TOFIX
 
 include "Common.td"
 
diff --git a/tools/llvmc2/plugins/Base/Base.td b/tools/llvmc2/plugins/Base/Base.td
index bc40dd5..0a43d0f 100644
--- a/tools/llvmc2/plugins/Base/Base.td
+++ b/tools/llvmc2/plugins/Base/Base.td
@@ -1,4 +1,4 @@
-//===- Graph.td - LLVMC2 toolchain descriptions ------------*- tablegen -*-===//
+//===- Base.td - LLVMC2 toolchain descriptions -------------*- tablegen -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
diff --git a/tools/llvmc2/plugins/Clang/Clang.td b/tools/llvmc2/plugins/Clang/Clang.td
index 9985d70..d30bc97 100644
--- a/tools/llvmc2/plugins/Clang/Clang.td
+++ b/tools/llvmc2/plugins/Clang/Clang.td
@@ -1,7 +1,7 @@
 // A (first stab at a) replacement for the Clang's ccc script.
 // To compile, use this command:
 //    cd $LLVMC2_DIR
-//    make TOOLNAME=ccc2 BUILTIN_PLUGINS=Clang
+//    make DRIVER_NAME=ccc2 BUILTIN_PLUGINS=Clang
 
 include "llvm/CompilerDriver/Common.td"
 
diff --git a/tools/llvmc2/plugins/Makefile.plugins b/tools/llvmc2/plugins/Makefile.plugins
index 4b5d19a..51e297d 100644
--- a/tools/llvmc2/plugins/Makefile.plugins
+++ b/tools/llvmc2/plugins/Makefile.plugins
@@ -1,4 +1,4 @@
-##===- tools/llvmc2/plugins/Makefile.common ----------------*- Makefile -*-===##
+##===- tools/llvmc2/plugins/Makefile.plugins ----------------*- Makefile -*-===##
 #
 #                     The LLVM Compiler Infrastructure
 #
@@ -28,6 +28,8 @@
 
 include $(LEVEL)/Makefile.common
 
+# TOFIX: This should go into Makefile.rules
+
 ifdef BUILD_AUTOGENERATED_INC
 TD_COMMON = $(wildcard $(LLVM_SRC_ROOT)/include/llvm/CompilerDriver/*.td)
 
diff --git a/tools/llvmc2/Action.cpp b/tools/llvmc2/src/Action.cpp
similarity index 100%
rename from tools/llvmc2/Action.cpp
rename to tools/llvmc2/src/Action.cpp
diff --git a/tools/llvmc2/CompilationGraph.cpp b/tools/llvmc2/src/CompilationGraph.cpp
similarity index 100%
rename from tools/llvmc2/CompilationGraph.cpp
rename to tools/llvmc2/src/CompilationGraph.cpp
diff --git a/tools/llvmc2/Error.h b/tools/llvmc2/src/Error.h
similarity index 100%
rename from tools/llvmc2/Error.h
rename to tools/llvmc2/src/Error.h
diff --git a/tools/llvmc2/src/Makefile b/tools/llvmc2/src/Makefile
new file mode 100644
index 0000000..7c04fe4
--- /dev/null
+++ b/tools/llvmc2/src/Makefile
@@ -0,0 +1,19 @@
+##===- tools/llvmc2/src/Makefile ---------------------------*- Makefile -*-===##
+#
+#                     The LLVM Compiler Infrastructure
+#
+# This file is distributed under the University of Illinois Open
+# Source License. See LICENSE.TXT for details.
+#
+##===----------------------------------------------------------------------===##
+
+LEVEL = ../../..
+TOOLNAME = $(DRIVER_NAME)
+LINK_COMPONENTS = support system
+REQUIRES_EH := 1
+
+ifneq ($(BUILTIN_PLUGINS),)
+USEDLIBS = $(patsubst %,LLVMC%,$(BUILTIN_PLUGINS))
+endif
+
+include $(LEVEL)/Makefile.common
diff --git a/tools/llvmc2/Plugin.cpp b/tools/llvmc2/src/Plugin.cpp
similarity index 100%
rename from tools/llvmc2/Plugin.cpp
rename to tools/llvmc2/src/Plugin.cpp
diff --git a/tools/llvmc2/llvmc.cpp b/tools/llvmc2/src/llvmc.cpp
similarity index 100%
rename from tools/llvmc2/llvmc.cpp
rename to tools/llvmc2/src/llvmc.cpp