2 # This is a simple Makefile to test some of the RAID-6 code
7 OPTFLAGS
= -O2
# Adjust as desired
8 CFLAGS
= -I..
-I ..
/..
/..
/include -g
$(OPTFLAGS
)
13 OBJS
= int1.o int2.o int4.o int8.o int16.o int32.o recov.o algos.o tables.o
15 ARCH
:= $(shell uname
-m
2>/dev
/null | sed
-e
/s
/i
.86/i386
/)
17 CFLAGS
+= -DCONFIG_X86_32
21 CFLAGS
+= -DCONFIG_X86_64
26 CFLAGS
+= -I..
/..
/..
/arch
/arm
/include -mfpu
=neon
30 CFLAGS
+= -I..
/..
/..
/arch
/arm64
/include
35 OBJS
+= mmx.o sse1.o sse2.o avx2.o recov_ssse3.o recov_avx2.o avx512.o recov_avx512.o
36 CFLAGS
+= $(shell echo
"vpbroadcastb %xmm0, %ymm1" | \
37 gcc
-c
-x assembler
- >&/dev
/null
&& \
38 rm .
/-.o
&& echo
-DCONFIG_AS_AVX2
=1)
39 CFLAGS
+= $(shell echo
"vpmovm2b %k1, %zmm5" | \
40 gcc
-c
-x assembler
- >&/dev
/null
&& \
41 rm .
/-.o
&& echo
-DCONFIG_AS_AVX512
=1)
42 else ifeq ($(HAS_NEON
),yes
)
43 OBJS
+= neon.o neon1.o neon2.o neon4.o neon8.o
44 CFLAGS
+= -DCONFIG_KERNEL_MODE_NEON
=1
46 HAS_ALTIVEC
:= $(shell printf
'\#include <altivec.h>\nvector int a;\n' |\
47 gcc
-c
-x c
- >&/dev
/null
&& \
49 ifeq ($(HAS_ALTIVEC
),yes
)
50 OBJS
+= altivec1.o altivec2.o altivec4.o altivec8.o
58 $(CC
) $(CFLAGS
) -c
-o
$@
$<
66 all: raid6.a raid6test
73 raid6test
: test.c raid6.a
74 $(CC
) $(CFLAGS
) -o raid6test
$^
76 neon1.c
: neon.uc ..
/unroll.awk
77 $(AWK
) ..
/unroll.awk
-vN
=1 < neon.uc
> $@
79 neon2.c
: neon.uc ..
/unroll.awk
80 $(AWK
) ..
/unroll.awk
-vN
=2 < neon.uc
> $@
82 neon4.c
: neon.uc ..
/unroll.awk
83 $(AWK
) ..
/unroll.awk
-vN
=4 < neon.uc
> $@
85 neon8.c
: neon.uc ..
/unroll.awk
86 $(AWK
) ..
/unroll.awk
-vN
=8 < neon.uc
> $@
88 altivec1.c
: altivec.uc ..
/unroll.awk
89 $(AWK
) ..
/unroll.awk
-vN
=1 < altivec.uc
> $@
91 altivec2.c
: altivec.uc ..
/unroll.awk
92 $(AWK
) ..
/unroll.awk
-vN
=2 < altivec.uc
> $@
94 altivec4.c
: altivec.uc ..
/unroll.awk
95 $(AWK
) ..
/unroll.awk
-vN
=4 < altivec.uc
> $@
97 altivec8.c
: altivec.uc ..
/unroll.awk
98 $(AWK
) ..
/unroll.awk
-vN
=8 < altivec.uc
> $@
100 int1.c
: int.uc ..
/unroll.awk
101 $(AWK
) ..
/unroll.awk
-vN
=1 < int.uc
> $@
103 int2.c
: int.uc ..
/unroll.awk
104 $(AWK
) ..
/unroll.awk
-vN
=2 < int.uc
> $@
106 int4.c
: int.uc ..
/unroll.awk
107 $(AWK
) ..
/unroll.awk
-vN
=4 < int.uc
> $@
109 int8.c
: int.uc ..
/unroll.awk
110 $(AWK
) ..
/unroll.awk
-vN
=8 < int.uc
> $@
112 int16.c
: int.uc ..
/unroll.awk
113 $(AWK
) ..
/unroll.awk
-vN
=16 < int.uc
> $@
115 int32.c
: int.uc ..
/unroll.awk
116 $(AWK
) ..
/unroll.awk
-vN
=32 < int.uc
> $@
118 tilegx8.c
: tilegx.uc ..
/unroll.awk
119 $(AWK
) ..
/unroll.awk
-vN
=8 < tilegx.uc
> $@
122 .
/mktables
> tables.c
125 rm -f
*.o
*.a mktables mktables.c
*.uc int
*.c altivec
*.c neon
*.c tables.c raid6test