diff options
author | Vikram S. Adve <vadve@cs.uiuc.edu> | 2001-11-05 00:18:30 +0000 |
---|---|---|
committer | Vikram S. Adve <vadve@cs.uiuc.edu> | 2001-11-05 00:18:30 +0000 |
commit | 4cceffe0a90fb80b0a447d7e5b65e97076cab282 (patch) | |
tree | 15738d977b8dcef75468081e8a78e86aaaee33ad /test/Makefile.target | |
parent | 901216d527ca4f73f603963c0f779a72e0fd93f4 (diff) | |
download | external_llvm-4cceffe0a90fb80b0a447d7e5b65e97076cab282.zip external_llvm-4cceffe0a90fb80b0a447d7e5b65e97076cab282.tar.gz external_llvm-4cceffe0a90fb80b0a447d7e5b65e97076cab282.tar.bz2 |
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.target')
-rw-r--r-- | test/Makefile.target | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/test/Makefile.target b/test/Makefile.target new file mode 100644 index 0000000..7eb189e --- /dev/null +++ b/test/Makefile.target @@ -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) $< > $@ + + |