X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FMakefile.tests;h=953ae80fd1d29fef61bf5428f29c258e32fbd03f;hb=b310196abc3b750d655a8bd0e31693e04945fdba;hp=d523bc9ad3cee55d993df120f25d05510705b681;hpb=5047688ee5b38cd2266a66d1ad1f6095a8bff8de;p=oota-llvm.git diff --git a/test/Makefile.tests b/test/Makefile.tests index d523bc9ad3c..953ae80fd1d 100644 --- a/test/Makefile.tests +++ b/test/Makefile.tests @@ -1,6 +1,8 @@ ##----------------------------------------------------------*- 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 @@ -30,28 +32,20 @@ endif .PRECIOUS: Output/%.llvm.bc .PRECIOUS: Output/%.llvm -ifdef ENABLE_OPTIMIZED -TOOLS = $(BUILD_ROOT_TOP)/tools/Release -else -TOOLS = $(BUILD_ROOT_TOP)/tools/Debug -endif +TOOLS = $(LLVMTOOLCURRENT) # LLVM Tool Definitions... # -ifdef LLVMGCCARCH # FIXME: Remove when new CFE is used on sparc as well! LCC = $(LLVMGCCDIR)/bin/gcc LCC1 = $(LLVMGCCDIR)/lib/gcc-lib/$(LLVMGCCARCH)/cc1 -LGCCLD = $(TOOLS)/gccld -L$(LLVMGCCDIR)/lib/gcc-lib/$(LLVMGCCARCH) -L$(LLVMGCCDIR)/lib -else -LCC = $(LLVMGCCDIR)/bin/llvm-gcc -LCC1 = $(LLVMGCCDIR)/lib/gcc-lib/llvm/3.1/cc1 -LGCCLD = $(TOOLS)/gccld -L$(LLVMGCCDIR)/llvm/lib -endif - +LCXX = $(LLVMGCCDIR)/bin/g++ +LCC1XX = $(LLVMGCCDIR)/lib/gcc-lib/$(LLVMGCCARCH)/cc1plus LLI = $(TOOLS)/lli LLC = $(TOOLS)/llc LAS = $(TOOLS)/as LGCCAS = $(TOOLS)/gccas +LGCCLD = $(TOOLS)/gccld -L$(LLVMGCCDIR)/lib/gcc-lib/$(LLVMGCCARCH) -L$(LLVMGCCDIR)/lib +LGCCLDPROG = $(TOOLS)/gccld LDIS = $(TOOLS)/dis LOPT = $(TOOLS)/opt LLINK = $(TOOLS)/link @@ -59,33 +53,47 @@ LANALYZE = $(TOOLS)/analyze LBUGPOINT= $(TOOLS)/bugpoint LCCFLAGS += -O2 -Wall +LCXXFLAGS += -O2 -Wall LLCFLAGS = FAILURE = $(LEVEL)/test/Failure.sh -TESTRUNR = $(LEVEL)/test/TestRunner.sh +TESTRUNR = @echo Running test: $<; \ + PATH=$(LLVMTOOLCURRENT):$(LEVEL)/test/Scripts:$(PATH) \ + $(LEVEL)/test/TestRunner.sh # Native Tool Definitions -NATGCC = /usr/dcs/software/supported/bin/gcc +NATGCC = $(CC) CP = /bin/cp -f +## If TRACE or TRACEM is "yes", set the appropriate llc flag (-trace or -tracem) +## mark that tracing on, and set the TRACELIBS variable. +TRACEFLAGS = ifeq ($(TRACE), yes) - LLCFLAGS += -trace basicblock - LLCLIBS := -L$(LEVEL)/test/Libraries/Output -linstr64 -else - ifeq ($(TRACEM), yes) - LLCFLAGS += -trace function - LLCLIBS := -L$(LEVEL)/test/Libraries/Output -linstr64 - endif + TRACEFLAGS = -trace + TRACELIBS := -L$(LEVEL)/test/Libraries/Output -linstr.$(ARCH) +endif + +ifeq ($(TRACEM), yes) + TRACEFLAGS = -tracem + TRACELIBS := -L$(LEVEL)/test/Libraries/Output -linstr.$(ARCH) endif LLCLIBS := $(LLCLIBS) -lm clean:: - $(RM) a.out core + $(RM) -f a.out core $(RM) -rf Output/ # Compile from X.c to Output/X.ll -Output/%.ll: %.c $(LCC1) Output/.dir $(INCLUDES) - $(LCC) $(LCCFLAGS) -S $< -o $@ +Output/%.ll: $(SourceDir)%.c $(LCC1) Output/.dir $(INCLUDES) + $(LCC) $(CPPFLAGS) $(LCCFLAGS) -S $< -o $@ + +# Compile from X.cpp to Output/X.ll +Output/%.ll: $(SourceDir)%.cpp $(LCC1XX) Output/.dir $(INCLUDES) + $(LCXX) $(CPPFLAGS) $(LCXXFLAGS) -S $< -o $@ + +# Compile from X.cc to Output/X.ll +Output/%.ll: $(SourceDir)%.cc $(LCC1XX) Output/.dir $(INCLUDES) + $(LCXX) $(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. @@ -104,7 +112,12 @@ Output/%.bc: %.ll $(LAS) Output/.dir # Output/%.tll: %.c $(LCC1) Output/.dir $(INCLUDES) @echo "======== Compiling $<" - $(LCC) $(LCCFLAGS) -S $< -o $@ || \ + $(LCC) $(CPPFLAGS) $(LCCFLAGS) -S $< -o $@ || \ + ( rm -f $@; $(FAILURE) $@ ) + +Output/%.tll: %.cpp $(LCC1XX) Output/.dir $(INCLUDES) + @echo "======== Compiling $<" + $(LCXX) $(CPPFLAGS) $(LCXXFLAGS) -S $< -o $@ || \ ( rm -f $@; $(FAILURE) $@ ) Output/%.tbc: Output/%.tll $(LAS)