#!/usr/bin/make -f

# See debhelper(7) (uncomment to enable).
# Output every command that modifies files on the build system.
#export DH_VERBOSE = 1


# See FEATURE AREAS in dpkg-buildflags(1).
export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# See ENVIRONMENT in dpkg-buildflags(1).
# Package maintainers to append CFLAGS.
#export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
# Package maintainers to append LDFLAGS.
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed

DEB_OPT_CONF_FLAGS=" -Wa,--noexecstack  "

DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
DESTDIR = $(CURDIR)/debian/tmp

ifeq ($(DEB_HOST_ARCH_CPU), amd64)
	ASMTYPE=x8664
#else ifeq ($(DEB_HOST_ARCH_CPU), arm64)
#	ASMTYPE=armv8
else ifeq ($(DEB_HOST_ARCH_CPU), riscv64)
	ASMTYPE=riscv64
else
	ASMTYPE=no_asm
endif

TESTDIR=$(CURDIR)/testcode/demo/
TESTBUILD=$(CURDIR)/testcode/demo/build/

%:
	dh $@


# dh_make generated override targets.
override_dh_auto_configure:
	if [ "${ASMTYPE}" = "no_asm" ]; then \
		echo "no set asm type"; \
		python3 configure.py --enable hitls_bsl hitls_crypto hitls_tls hitls_pki hitls_auth --lib_type shared --bits=64 --system=linux --no-auto-deps  --executes hitls --add_options=${DEB_OPT_CONF_FLAGS} ; \
	else  \
	        echo "set asm type "${ASMTYPE}; \
		python3 configure.py --enable hitls_bsl hitls_crypto hitls_tls hitls_pki hitls_auth --lib_type shared --bits=64 --system=linux --no-auto-deps  --asm_type ${ASMTYPE}  --executes hitls --add_options=${DEB_OPT_CONF_FLAGS} ; \
	fi
	cmake -B build -S . -DCMAKE_INSTALL_PREFIX=/usr

override_dh_auto_build:
	#cd build && make -j$(nproc)
	cd build && make VERBOSE=1

override_dh_auto_clean:
	if [ -d "build" ] ; \
	then \
		rm -rf build ; \
	fi
	if [ -d "testcode/demo/build" ]; then \
		rm -rf testcode/demo/build/; \
	fi
	dh_auto_clean


override_dh_auto_test:
	cd testcode/demo
	mkdir -p ${TESTDIR}/build
	cd ${TESTDIR}/build && cmake ../
	cd ${TESTDIR}/build && make 
	#executales=$(shell $(cd  $(TESTBUILD)) && (find ./ -maxdepth 1 -type f -perm -a=x) ) ;
	#for e in $$executales;  \
	#do \
	#	if [[ ! "$e" == *"client"* ]] && [[ ! "$e" == *"server"* ]]; then \
	#		echo "${e} start"; \
	#		eval "${e}"; \
	#	fi \
	#done
	# run server and client in order.
	cd ${TESTDIR}/build && ./server >/dev/null &
	sleep 1
	cd ${TESTDIR}/build && ./client

override_dh_auto_install:
	cd build && make install DESTDIR=${DESTDIR}
	mkdir -p debian/tmp/usr/bin/
	mv debian/tmp/usr/hitls debian/tmp/usr/bin/
	
	mkdir -p debian/tmp/usr/share/doc/openhitls/en/
	mkdir -p debian/tmp/usr/share/doc/openhitls/zh/	
	install -d debian/tmp/usr/share/doc/openhitls/
	install -m 644 README.md debian/tmp/usr/share/doc/openhitls/ || true
	install -m 644 README-zh.md debian/tmp/usr/share/doc/openhitls/ || true
	install -m 644 LICENSE debian/tmp/usr/share/doc/openhitls/ || true
	install -m 644 Third_Party_Open_Source_Software_Notice debian/tmp/usr/share/doc/openhitls/ || true
	install -m 644 docs/en/3_Quick\ Start.md  debian/tmp/usr/share/doc/openhitls/en/ || true
	install -m 644 docs/zh/3_快速入门.md   debian/tmp/usr/share/doc/openhitls/zh/  || true
	




