#!/usr/bin/make -f

include /usr/share/dpkg/architecture.mk

devi := $(shell lsb_release -r -s | cut -d '.'  -f1)
ifeq ($(shell if [ $(devi) -gt 7 ] ; then echo gt ; else echo lt ; fi),gt)
   DEBVE2=yes
else
   DEBVE2=no
endif

OLDER=$(shell lsb_release -c -s | cut -d '.'  -f1)

LCFLAGSB=$(shell dpkg-buildflags --get CFLAGS)
LCPFLAGSB=$(shell dpkg-buildflags --get CPPFLAGS)

DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH)
OPTI_FLAGS_LIBONLY := -fomit-frame-pointer 
### PICCORO optimizer flags for i386 x86 machines
ifeq ($(DEB_HOST_ARCH),i386)
 ifeq ($(OLDER),wheezy)
    OPTI_FLAGS_LIBONLY += -march=i586 -mtune=generic -mmmx
 else
    OPTI_FLAGS_LIBONLY += -march=i686 -mtune=generic -mmmx -msse
 endif
else
ifeq ($(DEB_HOST_ARCH),i486)
 ifeq ($(OLDER),wheezy)
    OPTI_FLAGS_LIBONLY += -march=i586 -mtune=generic -mmmx
 else
    OPTI_FLAGS_LIBONLY += -march=i686 -mtune=generic -mmmx -msse
 endif
endif
endif

ifeq ($(DEB_HOST_ARCH),amd64)
    OPTI_FLAGS_LIBONLY += -mmmx -msse -msse2
endif

ifeq ($(OLDER),wheezy)
 ifeq ($(DEB_HOST_ARCH),amd64)
  export DEB_BUILD_MAINT_OPTIONS = hardening=-pie,+format,+fortify,+stackprotector,+bindnow,+relro
 else
  export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 endif
else
 ifeq ($(OLDER),jessie)
 ifeq ($(DEB_HOST_ARCH),amd64)
export DEB_BUILD_MAINT_OPTIONS = hardening=-pie,+format,+fortify,+stackprotector,+bindnow,+relro
 else
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 endif
 else
  export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 endif
endif

UPSTREAM_DATE = $(shell awk '/^= .* [0-9-]*$$/ { print $$NF; exit }' ChangeLog)

CONFIG_H = include/mbedtls/config.h
define CONFIG_ENABLE
	@echo Enabling config.h option $(1)
	@! grep -q '^\#define $(1)$$' $(CONFIG_H) || \
		(echo ' Already enabled' && false)
	@[ $$(grep -c '^//\#define $(1)$$' $(CONFIG_H)) -eq 1 ] || \
		(echo " Can't find exactly one option to enable" && false)
	@sed -i 's|^//\#define $(1)$$|\#define $(1)|' $(CONFIG_H)
endef

%:
	dh $@ --buildsystem=cmake

override_dh_auto_clean:
	dh_auto_clean
	[ ! -e $(CONFIG_H).bak ] || mv $(CONFIG_H).bak $(CONFIG_H)

override_dh_auto_configure:
	cp $(CONFIG_H) $(CONFIG_H).bak
	$(call CONFIG_ENABLE,MBEDTLS_DEPRECATED_WARNING)
	$(call CONFIG_ENABLE,MBEDTLS_HAVEGE_C)
	$(call CONFIG_ENABLE,MBEDTLS_MD2_C)
	$(call CONFIG_ENABLE,MBEDTLS_MD4_C)
	$(call CONFIG_ENABLE,MBEDTLS_THREADING_C)
	$(call CONFIG_ENABLE,MBEDTLS_THREADING_PTHREAD)
	dh_auto_configure -- \
	 -DLIB_INSTALL_DIR=lib/$(DEB_HOST_MULTIARCH) \
	 -DUSE_STATIC_MBEDTLS_LIBRARY=ON \
	 -DUSE_SHARED_MBEDTLS_LIBRARY=ON

override_dh_auto_build-indep:
	dh_auto_build -- apidoc

# Use faketime to prevent testsuite timebombing in the future
override_dh_auto_test-arch:
	faketime '$(UPSTREAM_DATE)' dh_auto_test

override_dh_auto_test-indep:
override_dh_auto_install-indep:

override_dh_installdocs:
	dh_installdocs -X.md5
