#!/usr/bin/make -f

export DEB_BUILD_MAINT_OPTIONS = hardening=+all
# upstream CI has numerous warnings, do not treat as errors.
export DEB_CFLAGS_MAINT_APPEND = -fPIC -Wno-incompatible-pointer-types
# C++ sources (e.g. src/reference/packing.cc) must also be built as PIC to
# link into the shared libXNNPACK.so; otherwise ld fails with
# R_X86_64_32S relocation errors against internal symbols.
export DEB_CXXFLAGS_MAINT_APPEND = -fPIC

include /usr/share/dpkg/buildflags.mk
include /usr/share/dpkg/pkg-info.mk

# KleidiAI（上游默认开启的可选 Arm 微内核加速后端）：openKylin 源中的
# libkleidiai-dev 只提供未使用 -fPIC 编译的静态库
# /usr/lib/aarch64-linux-gnu/libkleidiai.a，把它链接进共享库 libXNNPACK.so 时
# aarch64 链接器必然失败：
#   relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `stdout@@GLIBC_2.17'
#   which may bind externally can not be used when making a shared object;
#   recompile with -fPIC
# 因此 arm64 上不再启用 KleidiAI（XNNPACK 自带的 i8mm/dotprod 微内核仍启用，
# 仅少了 KleidiAI 提供的额外微内核）。其他架构（amd64/riscv64/...）原本就取
# OFF，行为完全不变。
USE_KLEIDIAI=OFF

%:
	dh $@ -Scmake+ninja

override_dh_auto_configure:
	dh_auto_configure -- \
        -DXNNPACK_LIBRARY_TYPE=shared \
        -DXNNPACK_USE_SYSTEM_LIBS=ON \
        -DXNNPACK_BUILD_TESTS=OFF \
        -DXNNPACK_BUILD_BENCHMARKS=OFF \
	-DXNNPACK_ENABLE_KLEIDIAI=$(USE_KLEIDIAI) \
        -DGOOGLETEST_SOURCE_DIR=/usr/src/googletest \
        -DPTHREADPOOL_SOURCE_DIR=/usr \
        -DCPUINFO_SOURCE_DIR=/usr

override_dh_auto_test:
	#dh_auto_test
