xref: /linux/lib/raid6/test/Makefile (revision 2c935842bdb46f5f557426feb4d2bdfdad1aa5f9)
1cc4589ebSDavid Woodhouse#
2cc4589ebSDavid Woodhouse# This is a simple Makefile to test some of the RAID-6 code
3cc4589ebSDavid Woodhouse# from userspace.
4cc4589ebSDavid Woodhouse#
5cc4589ebSDavid Woodhouse
6cc4589ebSDavid WoodhouseCC	 = gcc
7cc4589ebSDavid WoodhouseOPTFLAGS = -O2			# Adjust as desired
8cc4589ebSDavid WoodhouseCFLAGS	 = -I.. -I ../../../include -g $(OPTFLAGS)
9cc4589ebSDavid WoodhouseLD	 = ld
10cc4589ebSDavid WoodhouseAWK	 = awk -f
11cc4589ebSDavid WoodhouseAR	 = ar
12cc4589ebSDavid WoodhouseRANLIB	 = ranlib
13cc4589ebSDavid Woodhouse
14*2c935842SYuanhan LiuARCH := $(shell uname -m 2>/dev/null | sed -e /s/i.86/i386/)
15*2c935842SYuanhan Liuifeq ($(ARCH),i386)
16*2c935842SYuanhan Liu        CFLAGS += -DCONFIG_X86_32
17*2c935842SYuanhan Liuendif
18*2c935842SYuanhan Liuifeq ($(ARCH),x86_64)
19*2c935842SYuanhan Liu        CFLAGS += -DCONFIG_X86_64
20*2c935842SYuanhan Liuendif
21*2c935842SYuanhan LiuCFLAGS += $(shell echo "vpbroadcastb %xmm0, %ymm1"| gcc -c -x assembler - &&\
22*2c935842SYuanhan Liu	     rm ./-.o && echo -DCONFIG_AS_AVX2=1)
23*2c935842SYuanhan Liu
24cc4589ebSDavid Woodhouse.c.o:
25cc4589ebSDavid Woodhouse	$(CC) $(CFLAGS) -c -o $@ $<
26cc4589ebSDavid Woodhouse
27cc4589ebSDavid Woodhouse%.c: ../%.c
28cc4589ebSDavid Woodhouse	cp -f $< $@
29cc4589ebSDavid Woodhouse
30cc4589ebSDavid Woodhouse%.uc: ../%.uc
31cc4589ebSDavid Woodhouse	cp -f $< $@
32cc4589ebSDavid Woodhouse
33cc4589ebSDavid Woodhouseall:	raid6.a raid6test
34cc4589ebSDavid Woodhouse
35*2c935842SYuanhan Liuraid6.a: int1.o int2.o int4.o int8.o int16.o int32.o mmx.o sse1.o sse2.o avx2.o \
367056741fSJim Kukunas	 altivec1.o altivec2.o altivec4.o altivec8.o recov.o recov_ssse3.o recov_avx2.o algos.o \
37cc4589ebSDavid Woodhouse	 tables.o
38cc4589ebSDavid Woodhouse	 rm -f $@
39cc4589ebSDavid Woodhouse	 $(AR) cq $@ $^
40cc4589ebSDavid Woodhouse	 $(RANLIB) $@
41cc4589ebSDavid Woodhouse
42cc4589ebSDavid Woodhouseraid6test: test.c raid6.a
43cc4589ebSDavid Woodhouse	$(CC) $(CFLAGS) -o raid6test $^
44cc4589ebSDavid Woodhouse
45cc4589ebSDavid Woodhousealtivec1.c: altivec.uc ../unroll.awk
46cc4589ebSDavid Woodhouse	$(AWK) ../unroll.awk -vN=1 < altivec.uc > $@
47cc4589ebSDavid Woodhouse
48cc4589ebSDavid Woodhousealtivec2.c: altivec.uc ../unroll.awk
49cc4589ebSDavid Woodhouse	$(AWK) ../unroll.awk -vN=2 < altivec.uc > $@
50cc4589ebSDavid Woodhouse
51cc4589ebSDavid Woodhousealtivec4.c: altivec.uc ../unroll.awk
52cc4589ebSDavid Woodhouse	$(AWK) ../unroll.awk -vN=4 < altivec.uc > $@
53cc4589ebSDavid Woodhouse
54cc4589ebSDavid Woodhousealtivec8.c: altivec.uc ../unroll.awk
55cc4589ebSDavid Woodhouse	$(AWK) ../unroll.awk -vN=8 < altivec.uc > $@
56cc4589ebSDavid Woodhouse
57cc4589ebSDavid Woodhouseint1.c: int.uc ../unroll.awk
58cc4589ebSDavid Woodhouse	$(AWK) ../unroll.awk -vN=1 < int.uc > $@
59cc4589ebSDavid Woodhouse
60cc4589ebSDavid Woodhouseint2.c: int.uc ../unroll.awk
61cc4589ebSDavid Woodhouse	$(AWK) ../unroll.awk -vN=2 < int.uc > $@
62cc4589ebSDavid Woodhouse
63cc4589ebSDavid Woodhouseint4.c: int.uc ../unroll.awk
64cc4589ebSDavid Woodhouse	$(AWK) ../unroll.awk -vN=4 < int.uc > $@
65cc4589ebSDavid Woodhouse
66cc4589ebSDavid Woodhouseint8.c: int.uc ../unroll.awk
67cc4589ebSDavid Woodhouse	$(AWK) ../unroll.awk -vN=8 < int.uc > $@
68cc4589ebSDavid Woodhouse
69cc4589ebSDavid Woodhouseint16.c: int.uc ../unroll.awk
70cc4589ebSDavid Woodhouse	$(AWK) ../unroll.awk -vN=16 < int.uc > $@
71cc4589ebSDavid Woodhouse
72cc4589ebSDavid Woodhouseint32.c: int.uc ../unroll.awk
73cc4589ebSDavid Woodhouse	$(AWK) ../unroll.awk -vN=32 < int.uc > $@
74cc4589ebSDavid Woodhouse
75cc4589ebSDavid Woodhousetables.c: mktables
76cc4589ebSDavid Woodhouse	./mktables > tables.c
77cc4589ebSDavid Woodhouse
78cc4589ebSDavid Woodhouseclean:
79cc4589ebSDavid Woodhouse	rm -f *.o *.a mktables mktables.c *.uc int*.c altivec*.c tables.c raid6test
80cc4589ebSDavid Woodhouse
81cc4589ebSDavid Woodhousespotless: clean
82cc4589ebSDavid Woodhouse	rm -f *~
83