xref: /linux/lib/raid/xor/Makefile (revision 67f8bc848ee31831336bd478e57d2f993551902e)
19e229025SChristoph Hellwig# SPDX-License-Identifier: GPL-2.0
29e229025SChristoph Hellwig
3*b6a1359bSChristoph HellwigCONTEXT_ANALYSIS := y
4*b6a1359bSChristoph Hellwig
5e20043b4SChristoph Hellwigccflags-y			+= -I $(src)
6e20043b4SChristoph Hellwig
79e229025SChristoph Hellwigobj-$(CONFIG_XOR_BLOCKS)	+= xor.o
89e229025SChristoph Hellwig
99e229025SChristoph Hellwigxor-y				+= xor-core.o
10c46928fdSChristoph Hellwigxor-y				+= xor-8regs.o
11c46928fdSChristoph Hellwigxor-y				+= xor-32regs.o
12c46928fdSChristoph Hellwigxor-y				+= xor-8regs-prefetch.o
13c46928fdSChristoph Hellwigxor-y				+= xor-32regs-prefetch.o
14503793b1SChristoph Hellwig
15e20043b4SChristoph Hellwigifeq ($(CONFIG_XOR_BLOCKS_ARCH),y)
16e20043b4SChristoph HellwigCFLAGS_xor-core.o		+= -I$(src)/$(SRCARCH)
17e20043b4SChristoph Hellwigendif
18e20043b4SChristoph Hellwig
19503793b1SChristoph Hellwigxor-$(CONFIG_ALPHA)		+= alpha/xor.o
200d64a24eSChristoph Hellwigxor-$(CONFIG_ARM)		+= arm/xor.o
210d64a24eSChristoph Hellwigifeq ($(CONFIG_ARM),y)
22a967b1f5SArd Biesheuvelxor-$(CONFIG_KERNEL_MODE_NEON)	+= xor-neon.o arm/xor-neon-glue.o
230d64a24eSChristoph Hellwigendif
244d3c5cbfSArd Biesheuvelxor-$(CONFIG_ARM64)		+= xor-neon.o arm64/xor-eor3.o \
254d3c5cbfSArd Biesheuvel				   arm64/xor-neon-glue.o
26033bee3eSChristoph Hellwigxor-$(CONFIG_CPU_HAS_LSX)	+= loongarch/xor_simd.o
27033bee3eSChristoph Hellwigxor-$(CONFIG_CPU_HAS_LSX)	+= loongarch/xor_simd_glue.o
283f276cecSChristoph Hellwigxor-$(CONFIG_ALTIVEC)		+= powerpc/xor_vmx.o powerpc/xor_vmx_glue.o
295265d55bSChristoph Hellwigxor-$(CONFIG_RISCV_ISA_V)	+= riscv/xor.o riscv/xor-glue.o
307f963623SChristoph Hellwigxor-$(CONFIG_SPARC32)		+= sparc/xor-sparc32.o
317f963623SChristoph Hellwigxor-$(CONFIG_SPARC64)		+= sparc/xor-sparc64.o sparc/xor-sparc64-glue.o
3295c104ccSChristoph Hellwigxor-$(CONFIG_S390)		+= s390/xor.o
3377fd47e5SChristoph Hellwigxor-$(CONFIG_X86_32)		+= x86/xor-avx.o x86/xor-sse.o x86/xor-mmx.o
3477fd47e5SChristoph Hellwigxor-$(CONFIG_X86_64)		+= x86/xor-avx.o x86/xor-sse.o
35af53e85eSChristoph Hellwigobj-y				+= tests/
360d64a24eSChristoph Hellwig
37a967b1f5SArd BiesheuvelCFLAGS_xor-neon.o		+= $(CC_FLAGS_FPU) -I$(src)/$(SRCARCH)
38a967b1f5SArd BiesheuvelCFLAGS_REMOVE_xor-neon.o	+= $(CC_FLAGS_NO_FPU)
393786f2adSChristoph Hellwig
404d3c5cbfSArd BiesheuvelCFLAGS_arm64/xor-eor3.o		+= $(CC_FLAGS_FPU)
414d3c5cbfSArd BiesheuvelCFLAGS_REMOVE_arm64/xor-eor3.o	+= $(CC_FLAGS_NO_FPU)
423f276cecSChristoph Hellwig
433f276cecSChristoph HellwigCFLAGS_powerpc/xor_vmx.o	+= -mhard-float -maltivec \
443f276cecSChristoph Hellwig				   $(call cc-option,-mabi=altivec) \
453f276cecSChristoph Hellwig				   -isystem $(shell $(CC) -print-file-name=include)
46