]>
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 | 42 | else |
c28399b5 | 43 | HAS_ALTIVEC := $(shell printf '\#include <altivec.h>\nvector int a;\n' |\ |
4f8c55c5 YL |
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 |
ae77cbc1 KS |
50 | ifeq ($(ARCH),tilegx) |
51 | OBJS += tilegx8.o | |
52 | endif | |
2c935842 | 53 | |
cc4589eb DW |
54 | .c.o: |
55 | $(CC) $(CFLAGS) -c -o $@ $< | |
56 | ||
57 | %.c: ../%.c | |
58 | cp -f $< $@ | |
59 | ||
60 | %.uc: ../%.uc | |
61 | cp -f $< $@ | |
62 | ||
63 | all: raid6.a raid6test | |
64 | ||
4f8c55c5 | 65 | raid6.a: $(OBJS) |
cc4589eb DW |
66 | rm -f $@ |
67 | $(AR) cq $@ $^ | |
68 | $(RANLIB) $@ | |
69 | ||
70 | raid6test: test.c raid6.a | |
71 | $(CC) $(CFLAGS) -o raid6test $^ | |
72 | ||
7d11965d AB |
73 | neon1.c: neon.uc ../unroll.awk |
74 | $(AWK) ../unroll.awk -vN=1 < neon.uc > $@ | |
75 | ||
76 | neon2.c: neon.uc ../unroll.awk | |
77 | $(AWK) ../unroll.awk -vN=2 < neon.uc > $@ | |
78 | ||
79 | neon4.c: neon.uc ../unroll.awk | |
80 | $(AWK) ../unroll.awk -vN=4 < neon.uc > $@ | |
81 | ||
82 | neon8.c: neon.uc ../unroll.awk | |
83 | $(AWK) ../unroll.awk -vN=8 < neon.uc > $@ | |
84 | ||
cc4589eb DW |
85 | altivec1.c: altivec.uc ../unroll.awk |
86 | $(AWK) ../unroll.awk -vN=1 < altivec.uc > $@ | |
87 | ||
88 | altivec2.c: altivec.uc ../unroll.awk | |
89 | $(AWK) ../unroll.awk -vN=2 < altivec.uc > $@ | |
90 | ||
91 | altivec4.c: altivec.uc ../unroll.awk | |
92 | $(AWK) ../unroll.awk -vN=4 < altivec.uc > $@ | |
93 | ||
94 | altivec8.c: altivec.uc ../unroll.awk | |
95 | $(AWK) ../unroll.awk -vN=8 < altivec.uc > $@ | |
96 | ||
97 | int1.c: int.uc ../unroll.awk | |
98 | $(AWK) ../unroll.awk -vN=1 < int.uc > $@ | |
99 | ||
100 | int2.c: int.uc ../unroll.awk | |
101 | $(AWK) ../unroll.awk -vN=2 < int.uc > $@ | |
102 | ||
103 | int4.c: int.uc ../unroll.awk | |
104 | $(AWK) ../unroll.awk -vN=4 < int.uc > $@ | |
105 | ||
106 | int8.c: int.uc ../unroll.awk | |
107 | $(AWK) ../unroll.awk -vN=8 < int.uc > $@ | |
108 | ||
109 | int16.c: int.uc ../unroll.awk | |
110 | $(AWK) ../unroll.awk -vN=16 < int.uc > $@ | |
111 | ||
112 | int32.c: int.uc ../unroll.awk | |
113 | $(AWK) ../unroll.awk -vN=32 < int.uc > $@ | |
114 | ||
ae77cbc1 KS |
115 | tilegx8.c: tilegx.uc ../unroll.awk |
116 | $(AWK) ../unroll.awk -vN=8 < tilegx.uc > $@ | |
117 | ||
cc4589eb DW |
118 | tables.c: mktables |
119 | ./mktables > tables.c | |
120 | ||
121 | clean: | |
7d11965d | 122 | rm -f *.o *.a mktables mktables.c *.uc int*.c altivec*.c neon*.c tables.c raid6test |
ae77cbc1 | 123 | rm -f tilegx*.c |
cc4589eb DW |
124 | |
125 | spotless: clean | |
126 | rm -f *~ |