summaryrefslogtreecommitdiff
path: root/test/Makefile.tests
diff options
context:
space:
mode:
authorVikram S. Adve <vadve@cs.uiuc.edu>2001-11-05 00:18:30 +0000
committerVikram S. Adve <vadve@cs.uiuc.edu>2001-11-05 00:18:30 +0000
commit4cceffe0a90fb80b0a447d7e5b65e97076cab282 (patch)
tree15738d977b8dcef75468081e8a78e86aaaee33ad /test/Makefile.tests
parent901216d527ca4f73f603963c0f779a72e0fd93f4 (diff)
downloadllvm-4cceffe0a90fb80b0a447d7e5b65e97076cab282.tar.gz
llvm-4cceffe0a90fb80b0a447d7e5b65e97076cab282.tar.bz2
llvm-4cceffe0a90fb80b0a447d7e5b65e97076cab282.tar.xz
Put common rules for compiling programs into Makefile.target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1130 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Makefile.tests')
-rw-r--r--test/Makefile.tests97
1 files changed, 97 insertions, 0 deletions
diff --git a/test/Makefile.tests b/test/Makefile.tests
new file mode 100644
index 0000000000..7eb189e541
--- /dev/null
+++ b/test/Makefile.tests
@@ -0,0 +1,97 @@
+.PHONY: clean default
+
+## Special targets to build a program from multiple source files
+##
+ifdef PROG
+ default: $(PROG)
+ .SECONDARY: $(PROG).clean.bc ## keep %.clean.bc from being deleted
+
+ $(PROG).bc: $(OBJS)
+ $(LLINK) -f $(OBJS) -o $@
+endif
+
+TOOLS = $(LEVEL)/tools/Debug
+
+LLC = $(TOOLS)/llc
+LAS = $(TOOLS)/as
+LDIS = $(TOOLS)/dis
+LOPT = $(TOOLS)/opt
+LLINK = $(TOOLS)/link
+LLCFLAGS =
+
+LCC = /home/vadve/lattner/cvs/gcc_install/bin/gcc
+LCFLAGS = -DTORONTO -O2 $(LOCAL_CFLAGS) -Wall
+
+LLCLIB = $(LEVEL)/test/runtime.o
+LIBS = $(LLCLIB) $(LOCAL_LIBS)
+
+ifeq ($(TRACE), yes)
+ LLCFLAGS := $(LLCFLAGS) -trace
+endif
+
+CC = /opt/SUNWspro/bin/cc
+AS = /opt/SUNWspro/bin/cc
+DIS = /usr/ccs/bin/dis
+CFLAGS = -g -xarch=v9
+CCFLAGS = $(CFLAGS)
+LDFLAGS = $(CFLAGS)
+ASFLAGS = -c $(CFLAGS)
+
+
+## Special target to force target-dependent library to be compiled
+## directly to native code.
+##
+$(LLCLIB):
+ cd $(LEVEL)/test; $(MAKE) $(@F)
+
+runtime.o: runtime.c
+ $(CC) -c $(CCFLAGS) $<
+
+clean :
+ rm -f *.[123] *.bc *.mc *.s *.o a.out core $(PROG)
+
+%.mc: %.bc $(LLC) $(AS)
+ @echo "Generating machine instructions for $<"
+ $(LLC) -f -dsched y $(LLCFLAGS) $< > $@
+
+%.trace.bc: %.bc $(LLC)
+ $(LLC) -f -trace $(LLCFLAGS) $<
+
+%.o: %.c
+ $(LCC) $(LCFLAGS) -c $<
+
+%.bc: %.ll
+ $(LAS) -f $<
+
+%.ll: %.bc
+ $(LDIS) -f $<
+
+%.clean.bc: %.bc
+ $(LOPT) -cleangcc -raise -constprop -dce < $< > $@
+
+%.s: %.bc
+ $(LLC) -f $(LLCOPTS) $<
+
+%: %.o $(LIBS)
+ $(CC) -o $@ $(LDFLAGS) $< $(LIBS)
+
+##
+## Use a single rule to go from %.bc to % to avoid ambiguity in
+## llvm bytecode files and native object code files, both named %.o
+##
+%: %.clean.bc $(LIBS)
+ $(LLC) -f $(LLCFLAGS) -o $*.s $<
+ $(AS) $(ASFLAGS) $*.s
+ $(CC) -o $@ $(LDFLAGS) $*.o $(LIBS)
+
+## Cancel built-in implicit rule that overrides the above rule
+%: %.s
+
+## The next two rules are for disassembling an executable or an object file
+%.dis: %
+ $(DIS) $< > $@
+
+%.dis: %.o
+ $(DIS) $< > $@
+
+