diff --git a/tools/llvmc2/Makefile b/tools/llvmc2/Makefile index 0c36d5b960e..63f933deb2e 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 88d4f0e66bf..48853010425 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 bc40dd56ed8..0a43d0fd533 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 9985d70cda5..d30bc978aa8 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 4b5d19abf69..51e297d3758 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 @@ endif 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 00000000000..7c04fe4aca4 --- /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