# SPDX-License-Identifier: GPL-2.0 # # Copyright (C) 2015-2019 Jason A. Donenfeld . All Rights Reserved. kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src)) ccflags-y += -include $(kbuild-dir)/compat/compat.h asflags-y += -include $(kbuild-dir)/compat/compat-asm.h ifeq ($(wildcard $(srctree)/include/linux/ptr_ring.h),) ccflags-y += -I$(src)/compat/ptr_ring/include endif ifeq ($(wildcard $(srctree)/include/linux/siphash.h),) ccflags-y += -I$(src)/compat/siphash/include wireguard-y += compat/siphash/siphash.o endif ifeq ($(wildcard $(srctree)/include/net/dst_cache.h),) ccflags-y += -I$(src)/compat/dst_cache/include wireguard-y += compat/dst_cache/dst_cache.o endif ifeq ($(wildcard $(srctree)/arch/x86/include/asm/intel-family.h)$(CONFIG_X86),y) ccflags-y += -I$(src)/compat/intel-family-x86/include endif ifeq ($(wildcard $(srctree)/arch/x86/include/asm/fpu/api.h)$(CONFIG_X86),y) ccflags-y += -I$(src)/compat/fpu-x86/include endif ifeq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/simd.h)$(shell grep -s -F "generic-y += simd.h" "$(srctree)/arch/$(SRCARCH)/Kbuild" "$(srctree)/arch/$(SRCARCH)/Makefile"),) ccflags-y += -I$(src)/compat/simd-asm/include endif ifeq ($(wildcard $(srctree)/include/linux/simd.h),) ccflags-y += -I$(src)/compat/simd/include endif ifeq ($(wildcard $(srctree)/include/net/udp_tunnel.h),) ccflags-y += -I$(src)/compat/udp_tunnel/include wireguard-y += compat/udp_tunnel/udp_tunnel.o endif ifeq ($(shell grep -s -F "int crypto_memneq" "$(srctree)/include/crypto/algapi.h"),) ccflags-y += -include $(kbuild-dir)/compat/memneq/include.h wireguard-y += compat/memneq/memneq.o endif ifeq ($(wildcard $(srctree)/arch/arm/include/asm/neon.h)$(CONFIG_ARM),y) ccflags-y += -I$(src)/compat/neon-arm/include endif ifeq ($(wildcard $(srctree)/arch/arm64/include/asm/neon.h)$(CONFIG_ARM64),y) ccflags-y += -I$(src)/compat/neon-arm/include endif ifeq ($(CONFIG_X86_64),y) ifeq ($(ssse3_instr),) ssse3_instr := $(call as-instr,pshufb %xmm0$(comma)%xmm0,-DCONFIG_AS_SSSE3=1) ccflags-y += $(ssse3_instr) asflags-y += $(ssse3_instr) endif ifeq ($(avx_instr),) avx_instr := $(call as-instr,vxorps %ymm0$(comma)%ymm1$(comma)%ymm2,-DCONFIG_AS_AVX=1) ccflags-y += $(avx_instr) asflags-y += $(avx_instr) endif ifeq ($(avx2_instr),) avx2_instr := $(call as-instr,vpbroadcastb %xmm0$(comma)%ymm1,-DCONFIG_AS_AVX2=1) ccflags-y += $(avx2_instr) asflags-y += $(avx2_instr) endif ifeq ($(avx512_instr),) avx512_instr := $(call as-instr,vpmovm2b %k1$(comma)%zmm5,-DCONFIG_AS_AVX512=1) ccflags-y += $(avx512_instr) asflags-y += $(avx512_instr) endif endif