Makefile 732 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
SRCS := \
	fizzbuzz.c

LLS := ${SRCS:.c=.ll}
LLS_0 := ${SRCS:%.c=%-0.ll}
LLS_1 := ${SRCS:%.c=%-1.ll}
LLS_2 := ${SRCS:%.c=%-2.ll}
BINS := ${LLS:.ll=} ${LLS_0:.ll=} ${LLS_1:.ll=} ${LLS_2:.ll=}

.PHONY: all test clean

all: ${BINS}

test: ${BINS}
	./fizzbuzz > fizzbuzz.txt
	./fizzbuzz-0 > fizzbuzz-0.txt
	./fizzbuzz-1 > fizzbuzz-1.txt
	./fizzbuzz-2 > fizzbuzz-2.txt

${BINS}: ${LLS} ${LLS_0} ${LLS_1} ${LLS_2}

%.ll: %.c
	clang -emit-llvm -S -O2 -o $@ $<

%-0.ll: %.ll
26
	opt -load ../../nykk.so -block-wm -watermark=0 -S -o $@ $<
27
%-1.ll: %.ll
28
	opt -load ../../nykk.so -block-wm -watermark=1 -S -o $@ $<
29
%-2.ll: %.ll
30
	opt -load ../../nykk.so -block-wm -watermark=2 -S -o $@ $<
31 32 33 34 35 36

%: %.ll
	clang -o $@ $<

clean:
	${RM} ${BINS} *.ll *.txt