xref: /linux/lib/raid/xor/Makefile (revision 12d5fc96ebbb3b948861805b32a4c3a96105ccd9)
1# SPDX-License-Identifier: GPL-2.0
2
3CONTEXT_ANALYSIS := y
4
5ccflags-y			+= -I $(src)
6
7obj-$(CONFIG_XOR_BLOCKS)	+= xor.o
8
9xor-y				+= xor-core.o
10xor-y				+= xor-8regs.o
11xor-y				+= xor-32regs.o
12xor-y				+= xor-8regs-prefetch.o
13xor-y				+= xor-32regs-prefetch.o
14
15ifeq ($(CONFIG_XOR_BLOCKS_ARCH),y)
16CFLAGS_xor-core.o		+= -I$(src)/$(SRCARCH)
17endif
18
19xor-$(CONFIG_ALPHA)		+= alpha/xor.o
20xor-$(CONFIG_ARM)		+= arm/xor.o
21ifeq ($(CONFIG_ARM),y)
22xor-$(CONFIG_KERNEL_MODE_NEON)	+= xor-neon.o arm/xor-neon-glue.o
23endif
24xor-$(CONFIG_ARM64)		+= xor-neon.o arm64/xor-eor3.o \
25				   arm64/xor-neon-glue.o
26xor-$(CONFIG_CPU_HAS_LSX)	+= loongarch/xor_simd.o
27xor-$(CONFIG_CPU_HAS_LSX)	+= loongarch/xor_simd_glue.o
28xor-$(CONFIG_ALTIVEC)		+= powerpc/xor_vmx.o powerpc/xor_vmx_glue.o
29xor-$(CONFIG_RISCV_ISA_V)	+= riscv/xor.o riscv/xor-glue.o
30xor-$(CONFIG_SPARC32)		+= sparc/xor-sparc32.o
31xor-$(CONFIG_SPARC64)		+= sparc/xor-sparc64.o sparc/xor-sparc64-glue.o
32xor-$(CONFIG_S390)		+= s390/xor.o
33xor-$(CONFIG_X86_32)		+= x86/xor-avx.o x86/xor-sse.o x86/xor-mmx.o
34xor-$(CONFIG_X86_64)		+= x86/xor-avx.o x86/xor-sse.o x86/xor-avx512.o
35obj-y				+= tests/
36
37CFLAGS_xor-neon.o		+= $(CC_FLAGS_FPU) -I$(src)/$(SRCARCH)
38CFLAGS_REMOVE_xor-neon.o	+= $(CC_FLAGS_NO_FPU)
39
40CFLAGS_arm64/xor-eor3.o		+= $(CC_FLAGS_FPU)
41CFLAGS_REMOVE_arm64/xor-eor3.o	+= $(CC_FLAGS_NO_FPU)
42
43CFLAGS_powerpc/xor_vmx.o	+= -mhard-float -maltivec \
44				   $(call cc-option,-mabi=altivec) \
45				   -isystem $(shell $(CC) -print-file-name=include)
46