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
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
+= $(shell echo
"vpbroadcastb %xmm0, %ymm1" | \
38 gcc
-c
-x assembler
- >&/dev
/null
&& \
39 rm .
/-.o
&& echo
-DCONFIG_AS_AVX2
=1)
40 CFLAGS
+= $(shell echo
"vpmovm2b %k1, %zmm5" | \
41 gcc
-c
-x assembler
- >&/dev
/null
&& \
42 rm .
/-.o
&& echo
-DCONFIG_AS_AVX512
=1)
43 else ifeq ($(HAS_NEON
),yes
)
44 OBJS
+= neon.o neon1.o neon2.o neon4.o neon8.o
45 CFLAGS
+= -DCONFIG_KERNEL_MODE_NEON
=1
47 HAS_ALTIVEC
:= $(shell printf
'\#include <altivec.h>\nvector int a;\n' |\
48 gcc
-c
-x c
- >&/dev
/null
&& \
50 ifeq ($(HAS_ALTIVEC
),yes
)
51 OBJS
+= altivec1.o altivec2.o altivec4.o altivec8.o
59 $(CC
) $(CFLAGS
) -c
-o
$@
$<
67 all: raid6.a raid6test
74 raid6test
: test.c raid6.a
75 $(CC
) $(CFLAGS
) -o raid6test
$^
77 neon1.c
: neon.uc ..
/unroll.awk
78 $(AWK
) ..
/unroll.awk
-vN
=1 < neon.uc
> $@
80 neon2.c
: neon.uc ..
/unroll.awk
81 $(AWK
) ..
/unroll.awk
-vN
=2 < neon.uc
> $@
83 neon4.c
: neon.uc ..
/unroll.awk
84 $(AWK
) ..
/unroll.awk
-vN
=4 < neon.uc
> $@
86 neon8.c
: neon.uc ..
/unroll.awk
87 $(AWK
) ..
/unroll.awk
-vN
=8 < neon.uc
> $@
89 altivec1.c
: altivec.uc ..
/unroll.awk
90 $(AWK
) ..
/unroll.awk
-vN
=1 < altivec.uc
> $@
92 altivec2.c
: altivec.uc ..
/unroll.awk
93 $(AWK
) ..
/unroll.awk
-vN
=2 < altivec.uc
> $@
95 altivec4.c
: altivec.uc ..
/unroll.awk
96 $(AWK
) ..
/unroll.awk
-vN
=4 < altivec.uc
> $@
98 altivec8.c
: altivec.uc ..
/unroll.awk
99 $(AWK
) ..
/unroll.awk
-vN
=8 < altivec.uc
> $@
101 int1.c
: int.uc ..
/unroll.awk
102 $(AWK
) ..
/unroll.awk
-vN
=1 < int.uc
> $@
104 int2.c
: int.uc ..
/unroll.awk
105 $(AWK
) ..
/unroll.awk
-vN
=2 < int.uc
> $@
107 int4.c
: int.uc ..
/unroll.awk
108 $(AWK
) ..
/unroll.awk
-vN
=4 < int.uc
> $@
110 int8.c
: int.uc ..
/unroll.awk
111 $(AWK
) ..
/unroll.awk
-vN
=8 < int.uc
> $@
113 int16.c
: int.uc ..
/unroll.awk
114 $(AWK
) ..
/unroll.awk
-vN
=16 < int.uc
> $@
116 int32.c
: int.uc ..
/unroll.awk
117 $(AWK
) ..
/unroll.awk
-vN
=32 < int.uc
> $@
119 tilegx8.c
: tilegx.uc ..
/unroll.awk
120 $(AWK
) ..
/unroll.awk
-vN
=8 < tilegx.uc
> $@
123 .
/mktables
> tables.c
126 rm -f
*.o
*.a mktables mktables.c
*.uc int
*.c altivec
*.c neon
*.c tables.c raid6test