1 # SPDX-License-Identifier: GPL-2.0
3 # This is a simple Makefile to test some of the RAID-6 code
8 OPTFLAGS
= -O2
# Adjust as desired
9 CFLAGS
= -I..
-I ..
/..
/..
/include -g
$(OPTFLAGS
)
14 OBJS
= int1.o int2.o int4.o int8.o int16.o int32.o recov.o algos.o tables.o
16 ARCH
:= $(shell uname
-m
2>/dev
/null | sed
-e
/s
/i
.86/i386
/)
18 CFLAGS
+= -DCONFIG_X86_32
22 CFLAGS
+= -DCONFIG_X86_64
27 CFLAGS
+= -I..
/..
/..
/arch
/arm
/include -mfpu
=neon
30 ifeq ($(ARCH
),aarch64
)
31 CFLAGS
+= -I..
/..
/..
/arch
/arm64
/include
36 OBJS
+= mmx.o sse1.o sse2.o avx2.o recov_ssse3.o recov_avx2.o avx512.o recov_avx512.o
37 CFLAGS
+= -DCONFIG_X86
38 CFLAGS
+= $(shell echo
"vpmovm2b %k1, %zmm5" | \
39 gcc
-c
-x assembler
- >/dev
/null
2>&1 && \
40 rm .
/-.o
&& echo
-DCONFIG_AS_AVX512
=1)
41 else ifeq ($(HAS_NEON
),yes
)
42 OBJS
+= neon.o neon1.o neon2.o neon4.o neon8.o recov_neon.o recov_neon_inner.o
43 CFLAGS
+= -DCONFIG_KERNEL_MODE_NEON
=1
45 HAS_ALTIVEC
:= $(shell printf
'\#include <altivec.h>\nvector int a;\n' |\
46 gcc
-c
-x c
- >/dev
/null
&& rm .
/-.o
&& echo yes
)
47 ifeq ($(HAS_ALTIVEC
),yes
)
48 CFLAGS
+= -I..
/..
/..
/arch
/powerpc
/include
49 CFLAGS
+= -DCONFIG_ALTIVEC
50 OBJS
+= altivec1.o altivec2.o altivec4.o altivec8.o \
51 vpermxor1.o vpermxor2.o vpermxor4.o vpermxor8.o
56 $(CC
) $(CFLAGS
) -c
-o
$@
$<
64 all: raid6.a raid6test
71 raid6test
: test.c raid6.a
72 $(CC
) $(CFLAGS
) -o raid6test
$^
74 neon1.c
: neon.uc ..
/unroll.awk
75 $(AWK
) ..
/unroll.awk
-vN
=1 < neon.uc
> $@
77 neon2.c
: neon.uc ..
/unroll.awk
78 $(AWK
) ..
/unroll.awk
-vN
=2 < neon.uc
> $@
80 neon4.c
: neon.uc ..
/unroll.awk
81 $(AWK
) ..
/unroll.awk
-vN
=4 < neon.uc
> $@
83 neon8.c
: neon.uc ..
/unroll.awk
84 $(AWK
) ..
/unroll.awk
-vN
=8 < neon.uc
> $@
86 altivec1.c
: altivec.uc ..
/unroll.awk
87 $(AWK
) ..
/unroll.awk
-vN
=1 < altivec.uc
> $@
89 altivec2.c
: altivec.uc ..
/unroll.awk
90 $(AWK
) ..
/unroll.awk
-vN
=2 < altivec.uc
> $@
92 altivec4.c
: altivec.uc ..
/unroll.awk
93 $(AWK
) ..
/unroll.awk
-vN
=4 < altivec.uc
> $@
95 altivec8.c
: altivec.uc ..
/unroll.awk
96 $(AWK
) ..
/unroll.awk
-vN
=8 < altivec.uc
> $@
98 vpermxor1.c
: vpermxor.uc ..
/unroll.awk
99 $(AWK
) ..
/unroll.awk
-vN
=1 < vpermxor.uc
> $@
101 vpermxor2.c
: vpermxor.uc ..
/unroll.awk
102 $(AWK
) ..
/unroll.awk
-vN
=2 < vpermxor.uc
> $@
104 vpermxor4.c
: vpermxor.uc ..
/unroll.awk
105 $(AWK
) ..
/unroll.awk
-vN
=4 < vpermxor.uc
> $@
107 vpermxor8.c
: vpermxor.uc ..
/unroll.awk
108 $(AWK
) ..
/unroll.awk
-vN
=8 < vpermxor.uc
> $@
110 int1.c
: int.uc ..
/unroll.awk
111 $(AWK
) ..
/unroll.awk
-vN
=1 < int.uc
> $@
113 int2.c
: int.uc ..
/unroll.awk
114 $(AWK
) ..
/unroll.awk
-vN
=2 < int.uc
> $@
116 int4.c
: int.uc ..
/unroll.awk
117 $(AWK
) ..
/unroll.awk
-vN
=4 < int.uc
> $@
119 int8.c
: int.uc ..
/unroll.awk
120 $(AWK
) ..
/unroll.awk
-vN
=8 < int.uc
> $@
122 int16.c
: int.uc ..
/unroll.awk
123 $(AWK
) ..
/unroll.awk
-vN
=16 < int.uc
> $@
125 int32.c
: int.uc ..
/unroll.awk
126 $(AWK
) ..
/unroll.awk
-vN
=32 < int.uc
> $@
129 .
/mktables
> tables.c
132 rm -f
*.o
*.a mktables mktables.c
*.uc int
*.c altivec
*.c vpermxor
*.c neon
*.c tables.c raid6test