xref: /linux/lib/raid/xor/Makefile (revision 440d6635b20037bc9ad46b20817d7b61cef0fc1b)
19e229025SChristoph Hellwig# SPDX-License-Identifier: GPL-2.0
29e229025SChristoph Hellwig
3e20043b4SChristoph Hellwigccflags-y			+= -I $(src)
4e20043b4SChristoph Hellwig
59e229025SChristoph Hellwigobj-$(CONFIG_XOR_BLOCKS)	+= xor.o
69e229025SChristoph Hellwig
79e229025SChristoph Hellwigxor-y				+= xor-core.o
8c46928fdSChristoph Hellwigxor-y				+= xor-8regs.o
9c46928fdSChristoph Hellwigxor-y				+= xor-32regs.o
10c46928fdSChristoph Hellwigxor-y				+= xor-8regs-prefetch.o
11c46928fdSChristoph Hellwigxor-y				+= xor-32regs-prefetch.o
12503793b1SChristoph Hellwig
13e20043b4SChristoph Hellwigifeq ($(CONFIG_XOR_BLOCKS_ARCH),y)
14e20043b4SChristoph HellwigCFLAGS_xor-core.o		+= -I$(src)/$(SRCARCH)
15e20043b4SChristoph Hellwigendif
16e20043b4SChristoph Hellwig
17503793b1SChristoph Hellwigxor-$(CONFIG_ALPHA)		+= alpha/xor.o
180d64a24eSChristoph Hellwigxor-$(CONFIG_ARM)		+= arm/xor.o
190d64a24eSChristoph Hellwigifeq ($(CONFIG_ARM),y)
200d64a24eSChristoph Hellwigxor-$(CONFIG_KERNEL_MODE_NEON)	+= arm/xor-neon.o arm/xor-neon-glue.o
210d64a24eSChristoph Hellwigendif
223786f2adSChristoph Hellwigxor-$(CONFIG_ARM64)		+= arm64/xor-neon.o arm64/xor-neon-glue.o
23033bee3eSChristoph Hellwigxor-$(CONFIG_CPU_HAS_LSX)	+= loongarch/xor_simd.o
24033bee3eSChristoph Hellwigxor-$(CONFIG_CPU_HAS_LSX)	+= loongarch/xor_simd_glue.o
253f276cecSChristoph Hellwigxor-$(CONFIG_ALTIVEC)		+= powerpc/xor_vmx.o powerpc/xor_vmx_glue.o
265265d55bSChristoph Hellwigxor-$(CONFIG_RISCV_ISA_V)	+= riscv/xor.o riscv/xor-glue.o
277f963623SChristoph Hellwigxor-$(CONFIG_SPARC32)		+= sparc/xor-sparc32.o
287f963623SChristoph Hellwigxor-$(CONFIG_SPARC64)		+= sparc/xor-sparc64.o sparc/xor-sparc64-glue.o
2995c104ccSChristoph Hellwigxor-$(CONFIG_S390)		+= s390/xor.o
3077fd47e5SChristoph Hellwigxor-$(CONFIG_X86_32)		+= x86/xor-avx.o x86/xor-sse.o x86/xor-mmx.o
3177fd47e5SChristoph Hellwigxor-$(CONFIG_X86_64)		+= x86/xor-avx.o x86/xor-sse.o
32*af53e85eSChristoph Hellwigobj-y				+= tests/
330d64a24eSChristoph Hellwig
340d64a24eSChristoph HellwigCFLAGS_arm/xor-neon.o		+= $(CC_FLAGS_FPU)
350d64a24eSChristoph HellwigCFLAGS_REMOVE_arm/xor-neon.o	+= $(CC_FLAGS_NO_FPU)
363786f2adSChristoph Hellwig
373786f2adSChristoph HellwigCFLAGS_arm64/xor-neon.o		+= $(CC_FLAGS_FPU)
383786f2adSChristoph HellwigCFLAGS_REMOVE_arm64/xor-neon.o	+= $(CC_FLAGS_NO_FPU)
393f276cecSChristoph Hellwig
403f276cecSChristoph HellwigCFLAGS_powerpc/xor_vmx.o	+= -mhard-float -maltivec \
413f276cecSChristoph Hellwig				   $(call cc-option,-mabi=altivec) \
423f276cecSChristoph Hellwig				   -isystem $(shell $(CC) -print-file-name=include)
43