43 lines
732 B
Makefile
43 lines
732 B
Makefile
.SUFFIXES:
|
|
|
|
|
|
|
|
|
|
|
|
LANG0C=$(CURDIR)/../2-lang0c/lang0c.exe
|
|
|
|
all: lang0ll.exe
|
|
|
|
%.exe: %.s
|
|
clang $^ -o $@
|
|
|
|
%.s: %.ll
|
|
llc --relocation-model=pic $^
|
|
|
|
lang0ll0.c: lang0ll.lang0 $(LANG0C)
|
|
cat $< | $(LANG0C) > $@
|
|
|
|
lang0ll0.o: lang0ll0.c
|
|
gcc -c $<
|
|
|
|
lang0ll0.exe: lang0ll0.o
|
|
gcc -o $@ $<
|
|
|
|
lang0ll1.ll: lang0ll.lang0 lang0ll0.exe
|
|
cat $< | ./lang0ll0.exe > $@
|
|
# Cannot diff on the first iteration - platform change
|
|
|
|
lang0ll2.ll: lang0ll.lang0 lang0ll1.exe
|
|
cat $< | ./lang0ll1.exe > $@
|
|
-diff lang0ll1.ll lang0ll2.ll
|
|
|
|
lang0ll.ll: lang0ll.lang0 lang0ll2.exe
|
|
cat $< | ./lang0ll2.exe > $@
|
|
-diff lang0ll2.ll lang0ll.ll
|
|
|
|
foo.ll: foo.c
|
|
clang -S -emit-llvm $^
|
|
|
|
clean:
|
|
rm -f lang0ll*.py lang0ll*.ll lang0ll*.o lang0ll*.exe foo.ll foo.o foo.exe
|