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