aboutsummaryrefslogtreecommitdiff
path: root/Makefile.tests
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-06-22 02:28:05 +0000
committerChris Lattner <sabre@nondot.org>2004-06-22 02:28:05 +0000
commitf4a38fa9831f7b317876306aa864ada7f4554e8d (patch)
tree73a7b089a836b55b42c221639be07537a4b2dd10 /Makefile.tests
parenteb03dd21804fe8995a7f143521ba9b8a27dddd42 (diff)
First baby step to getting test/Programs out of the main CVS tarball.
git-svn-id: https://llvm.org/svn/llvm-project/test-suite/trunk@14311 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Makefile.tests')
-rw-r--r--Makefile.tests96
1 files changed, 96 insertions, 0 deletions
diff --git a/Makefile.tests b/Makefile.tests
new file mode 100644
index 00000000..5c908c04
--- /dev/null
+++ b/Makefile.tests
@@ -0,0 +1,96 @@
+##----------------------------------------------------------*- Makefile -*-===##
+##
+## Common rules for generating, linking, and compiling via LLVM. This is
+## used to implement a robust testing framework for LLVM
+##
+##-------------------------------------------------------------------------===##
+
+# If the user specified a TEST= option on the command line, we do not want to do
+# the default testing type. Instead, we change the default target to be the
+# test:: target.
+#
+ifdef TEST
+test::
+endif
+
+# We do not want to make .d files for tests!
+DISABLE_AUTO_DEPENDENCIES=1
+
+include ${LEVEL}/Makefile.common
+
+# Specify ENABLE_STATS on the command line to enable -stats and -time-passes
+# output from gccas and gccld.
+ifdef ENABLE_STATS
+STATS = -stats -time-passes
+endif
+
+.PHONY: clean default
+
+# These files, which might be intermediate results, should not be deleted by
+# make
+.PRECIOUS: Output/%.bc Output/%.ll
+.PRECIOUS: Output/%.tbc Output/%.tll
+.PRECIOUS: Output/.dir
+.PRECIOUS: Output/%.llvm.bc
+.PRECIOUS: Output/%.llvm
+
+# Find the location of the platform specific LLVM GCC libraries
+LLVMGCCLIBDIR=$(dir $(shell $(LLVMGCC) -print-file-name=libgcc.a))
+
+# LLVM Tool Definitions (LLVMGCC, LLVMGXX, LLVMAS are provided by Makefile.rules)
+LLI = $(LLVMTOOLCURRENT)/lli$(EXEEXT)
+LLC = $(LLVMTOOLCURRENT)/llc$(EXEEXT)
+LGCCAS = $(LLVMTOOLCURRENT)/gccas$(EXEEXT)
+LGCCLD = $(LGCCLDPROG) -L$(LLVMGCCLIBDIR) -L$(LLVMGCCDIR)/lib
+LDIS = $(LLVMTOOLCURRENT)/llvm-dis$(EXEEXT)
+LOPT = $(LLVMTOOLCURRENT)/opt$(EXEEXT)
+LLINK = $(LLVMTOOLCURRENT)/llvm-link$(EXEEXT)
+LPROF = $(LLVMTOOLCURRENT)/llvm-prof$(EXEEXT)
+LANALYZE = $(LLVMTOOLCURRENT)/analyze$(EXEEXT)
+LBUGPOINT= $(LLVMTOOLCURRENT)/bugpoint$(EXEEXT)
+
+LCCFLAGS += -O2 -Wall
+LCXXFLAGS += -O2 -Wall
+LLCFLAGS =
+FAILURE = $(LLVM_SRC_ROOT)/test/Failure.sh
+TESTRUNR = @echo Running test: $<; \
+ PATH=$(LLVMTOOLCURRENT):$(LLVM_SRC_ROOT)/test/Scripts:$(PATH) \
+ $(LLVM_SRC_ROOT)/test/TestRunner.sh
+
+LLCLIBS := $(LLCLIBS) -lm
+
+clean::
+ $(RM) -f a.out core
+ $(RM) -rf Output/
+
+# Compile from X.c to Output/X.ll
+Output/%.ll: %.c $(LCC1) Output/.dir $(INCLUDES)
+ -$(LLVMGCC) $(CPPFLAGS) $(LCCFLAGS) -S $< -o $@
+
+# Compile from X.cpp to Output/X.ll
+Output/%.ll: %.cpp $(LCC1XX) Output/.dir $(INCLUDES)
+ -$(LLVMGXX) $(CPPFLAGS) $(LCXXFLAGS) -S $< -o $@
+
+# Compile from X.cc to Output/X.ll
+Output/%.ll: %.cc $(LCC1XX) Output/.dir $(INCLUDES)
+ -$(LLVMGXX) $(CPPFLAGS) $(LCXXFLAGS) -S $< -o $@
+
+# LLVM Assemble from Output/X.ll to Output/X.bc. Output/X.ll must have come
+# from GCC output, so use GCCAS.
+#
+Output/%.bc: Output/%.ll $(LGCCAS)
+ -$(LGCCAS) $(STATS) $< -o $@
+
+# LLVM Assemble from X.ll to Output/X.bc. Because we are coming directly from
+# LLVM source, use the non-transforming assembler.
+#
+Output/%.bc: %.ll $(LLVMAS) Output/.dir
+ -$(LLVMAS) -f $< -o $@
+
+## Cancel built-in implicit rules that override above rules
+%: %.s
+
+%: %.c
+
+%.o: %.c
+