Commit | Line | Data |
---|---|---|
cc4589eb DW |
1 | # |
2 | # This is a simple Makefile to test some of the RAID-6 code | |
3 | # from userspace. | |
4 | # | |
5 | ||
6 | CC = gcc | |
7 | OPTFLAGS = -O2 # Adjust as desired | |
8 | CFLAGS = -I.. -I ../../../include -g $(OPTFLAGS) | |
9 | LD = ld | |
10 | AWK = awk -f | |
11 | AR = ar | |
12 | RANLIB = ranlib | |
4f8c55c5 | 13 | OBJS = int1.o int2.o int4.o int8.o int16.o int32.o recov.o algos.o tables.o |
cc4589eb | 14 | |
2c935842 YL |
15 | ARCH := $(shell uname -m 2>/dev/null | sed -e /s/i.86/i386/) |
16 | ifeq ($(ARCH),i386) | |
17 | CFLAGS += -DCONFIG_X86_32 | |
4f8c55c5 | 18 | IS_X86 = yes |
2c935842 YL |
19 | endif |
20 | ifeq ($(ARCH),x86_64) | |
21 | CFLAGS += -DCONFIG_X86_64 | |
4f8c55c5 YL |
22 | IS_X86 = yes |
23 | endif | |
24 | ||
7d11965d AB |
25 | ifeq ($(ARCH),arm) |
26 | CFLAGS += -I../../../arch/arm/include -mfpu=neon | |
27 | HAS_NEON = yes | |
28 | endif | |
29 | ifeq ($(ARCH),arm64) | |
30 | CFLAGS += -I../../../arch/arm64/include | |
31 | HAS_NEON = yes | |
32 | endif | |
33 | ||
4f8c55c5 YL |
34 | ifeq ($(IS_X86),yes) |
35 | OBJS += mmx.o sse1.o sse2.o avx2.o recov_ssse3.o recov_avx2.o | |
36 | CFLAGS += $(shell echo "vpbroadcastb %xmm0, %ymm1" | \ | |
37 | gcc -c -x assembler - >&/dev/null && \ | |
38 | rm ./-.o && echo -DCONFIG_AS_AVX2=1) | |
7d11965d AB |
39 | else ifeq ($(HAS_NEON),yes) |
40 | OBJS += neon.o neon1.o neon2.o neon4.o neon8.o | |
41 | CFLAGS += -DCONFIG_KERNEL_MODE_NEON=1 | |
4f8c55c5 YL |
42 | else |
43 | HAS_ALTIVEC := $(shell echo -e '\#include <altivec.h>\nvector int a;' |\ | |
44 | gcc -c -x c - >&/dev/null && \ | |
45 | rm ./-.o && echo yes) | |
46 | ifeq ($(HAS_ALTIVEC),yes) | |
47 | OBJS += altivec1.o altivec2.o altivec4.o altivec8.o | |
48 | endif | |
2c935842 | 49 | endif |
2c935842 | 50 | |
cc4589eb DW |
51 | .c.o: |
52 | $(CC) $(CFLAGS) -c -o $@ $< | |
53 | ||
54 | %.c: ../%.c | |
55 | cp -f $< $@ | |
56 | ||
57 | %.uc: ../%.uc | |
58 | cp -f $< $@ | |
59 | ||
60 | all: raid6.a raid6test | |
61 | ||
4f8c55c5 | 62 | raid6.a: $(OBJS) |
cc4589eb DW |
63 | rm -f $@ |
64 | $(AR) cq $@ $^ | |
65 | $(RANLIB) $@ | |
66 | ||
67 | raid6test: test.c raid6.a | |
68 | $(CC) $(CFLAGS) -o raid6test $^ | |
69 | ||
7d11965d AB |
70 | neon1.c: neon.uc ../unroll.awk |
71 | $(AWK) ../unroll.awk -vN=1 < neon.uc > $@ | |
72 | ||
73 | neon2.c: neon.uc ../unroll.awk | |
74 | $(AWK) ../unroll.awk -vN=2 < neon.uc > $@ | |
75 | ||
76 | neon4.c: neon.uc ../unroll.awk | |
77 | $(AWK) ../unroll.awk -vN=4 < neon.uc > $@ | |
78 | ||
79 | neon8.c: neon.uc ../unroll.awk | |
80 | $(AWK) ../unroll.awk -vN=8 < neon.uc > $@ | |
81 | ||
cc4589eb DW |
82 | altivec1.c: altivec.uc ../unroll.awk |
83 | $(AWK) ../unroll.awk -vN=1 < altivec.uc > $@ | |
84 | ||
85 | altivec2.c: altivec.uc ../unroll.awk | |
86 | $(AWK) ../unroll.awk -vN=2 < altivec.uc > $@ | |
87 | ||
88 | altivec4.c: altivec.uc ../unroll.awk | |
89 | $(AWK) ../unroll.awk -vN=4 < altivec.uc > $@ | |
90 | ||
91 | altivec8.c: altivec.uc ../unroll.awk | |
92 | $(AWK) ../unroll.awk -vN=8 < altivec.uc > $@ | |
93 | ||
94 | int1.c: int.uc ../unroll.awk | |
95 | $(AWK) ../unroll.awk -vN=1 < int.uc > $@ | |
96 | ||
97 | int2.c: int.uc ../unroll.awk | |
98 | $(AWK) ../unroll.awk -vN=2 < int.uc > $@ | |
99 | ||
100 | int4.c: int.uc ../unroll.awk | |
101 | $(AWK) ../unroll.awk -vN=4 < int.uc > $@ | |
102 | ||
103 | int8.c: int.uc ../unroll.awk | |
104 | $(AWK) ../unroll.awk -vN=8 < int.uc > $@ | |
105 | ||
106 | int16.c: int.uc ../unroll.awk | |
107 | $(AWK) ../unroll.awk -vN=16 < int.uc > $@ | |
108 | ||
109 | int32.c: int.uc ../unroll.awk | |
110 | $(AWK) ../unroll.awk -vN=32 < int.uc > $@ | |
111 | ||
112 | tables.c: mktables | |
113 | ./mktables > tables.c | |
114 | ||
115 | clean: | |
7d11965d | 116 | rm -f *.o *.a mktables mktables.c *.uc int*.c altivec*.c neon*.c tables.c raid6test |
cc4589eb DW |
117 | |
118 | spotless: clean | |
119 | rm -f *~ |