From a01ab7f381948934502eb5caabc25f239867933e Mon Sep 17 00:00:00 2001 From: Mikhail Glushenkov Date: Wed, 15 Oct 2008 09:28:50 +0000 Subject: [PATCH] llvmc2: Some Makefile fixes and renames. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57567 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/llvmc2/Makefile | 2 +- tools/llvmc2/examples/Simple.td | 17 ----------- .../{AutoGenerated.cpp => PluginMain.cpp} | 0 .../{AutoGenerated.cpp => PluginMain.cpp} | 0 tools/llvmc2/plugins/Makefile | 17 ++++++----- tools/llvmc2/plugins/Simple/Makefile | 12 ++++++++ tools/llvmc2/plugins/Simple/PluginMain.cpp | 1 + tools/llvmc2/plugins/Simple/Simple.td | 30 +++++++++++++++++++ 8 files changed, 54 insertions(+), 25 deletions(-) delete mode 100644 tools/llvmc2/examples/Simple.td rename tools/llvmc2/plugins/Base/{AutoGenerated.cpp => PluginMain.cpp} (100%) rename tools/llvmc2/plugins/Clang/{AutoGenerated.cpp => PluginMain.cpp} (100%) create mode 100644 tools/llvmc2/plugins/Simple/Makefile create mode 100644 tools/llvmc2/plugins/Simple/PluginMain.cpp create mode 100644 tools/llvmc2/plugins/Simple/Simple.td diff --git a/tools/llvmc2/Makefile b/tools/llvmc2/Makefile index 3012065e4ca..22ca29e2ed7 100644 --- a/tools/llvmc2/Makefile +++ b/tools/llvmc2/Makefile @@ -11,7 +11,7 @@ LEVEL = ../.. BUILTIN_PLUGINS = Base DRIVER_NAME = llvmc2 -DIRS = plugins driver +DIRS = plugins driver export BUILTIN_PLUGINS export DRIVER_NAME diff --git a/tools/llvmc2/examples/Simple.td b/tools/llvmc2/examples/Simple.td deleted file mode 100644 index 48853010425..00000000000 --- a/tools/llvmc2/examples/Simple.td +++ /dev/null @@ -1,17 +0,0 @@ -// A simple wrapper for gcc. -// To compile, use this command: -// TOFIX - -include "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]>; diff --git a/tools/llvmc2/plugins/Base/AutoGenerated.cpp b/tools/llvmc2/plugins/Base/PluginMain.cpp similarity index 100% rename from tools/llvmc2/plugins/Base/AutoGenerated.cpp rename to tools/llvmc2/plugins/Base/PluginMain.cpp diff --git a/tools/llvmc2/plugins/Clang/AutoGenerated.cpp b/tools/llvmc2/plugins/Clang/PluginMain.cpp similarity index 100% rename from tools/llvmc2/plugins/Clang/AutoGenerated.cpp rename to tools/llvmc2/plugins/Clang/PluginMain.cpp diff --git a/tools/llvmc2/plugins/Makefile b/tools/llvmc2/plugins/Makefile index 568752e5784..104e909d423 100644 --- a/tools/llvmc2/plugins/Makefile +++ b/tools/llvmc2/plugins/Makefile @@ -12,7 +12,7 @@ ifndef LLVMC_PLUGIN LEVEL = ../../.. DIRS = $(BUILTIN_PLUGINS) -# TOFIX: DSO versions of plugins are not built +# TOFIX: How to build DSO versions of plugins? export BUILTIN_LLVMC_PLUGIN=1 @@ -22,25 +22,28 @@ else # LLVMC_PLUGIN 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),"") -BUILD_AUTOGENERATED_INC=1 +# This probably breaks the build with $ObjDir != $SrcDir +TOOLS_SOURCE := $(strip $(wildcard *.td)) + +ifneq ($(TOOLS_SOURCE),) +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) +TD_COMMON :=$(strip $(wildcard \ + $(LLVM_SRC_ROOT)/include/llvm/CompilerDriver/*.td)) $(ObjDir)/AutoGenerated.inc.tmp: $(TOOLS_SOURCE) $(ObjDir)/.dir \ $(TBLGEN) $(TD_COMMON) diff --git a/tools/llvmc2/plugins/Simple/Makefile b/tools/llvmc2/plugins/Simple/Makefile new file mode 100644 index 00000000000..a69df23cbda --- /dev/null +++ b/tools/llvmc2/plugins/Simple/Makefile @@ -0,0 +1,12 @@ +##===- 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 + +include ../Makefile diff --git a/tools/llvmc2/plugins/Simple/PluginMain.cpp b/tools/llvmc2/plugins/Simple/PluginMain.cpp new file mode 100644 index 00000000000..add8acb4a57 --- /dev/null +++ b/tools/llvmc2/plugins/Simple/PluginMain.cpp @@ -0,0 +1 @@ +#include "AutoGenerated.inc" diff --git a/tools/llvmc2/plugins/Simple/Simple.td b/tools/llvmc2/plugins/Simple/Simple.td new file mode 100644 index 00000000000..2bc40119261 --- /dev/null +++ b/tools/llvmc2/plugins/Simple/Simple.td @@ -0,0 +1,30 @@ +// 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]>; -- 2.34.1