#!/usr/bin/make -f

export DEB_BUILD_MAINT_OPTIONS = hardening=+all,-pie

DEB_CFLAGS_MAINT_APPEND = -Wall
DEB_CXXFLAGS_MAINT_APPEND = -Wall

DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_ARCH      ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_HOST_ARCH_CPU  ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

configure_flags += \
  --prefix=/usr \
  --enable-pic \
  --enable-shared \
  --disable-install-bins \
  --disable-install-srcs \
  --size-limit=16384x16384 \
  --enable-postproc \
  --enable-multi-res-encoding \
  --enable-temporal-denoising \
  --enable-vp9-temporal-denoising \
  --enable-vp9-postproc

ifeq ($(DEB_HOST_ARCH_CPU),arm)
configure_flags_neon := $(configure_flags) --target=armv7-linux-gcc
BUILD_NEON=Yes
endif

ifeq ($(DEB_HOST_ARCH), armel)
ifeq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes),yes)
configure_flags += --target=armv6-linux-gcc --enable-small
else
configure_flags += --target=generic-gnu
endif
else
ifeq ($(DEB_HOST_ARCH), armhf)
# now armhf is ARMv7, but ARMv7 in vpx means NEON, which is not mandatory on armhf
# thus we use ARMv6 and -marm (since no thumb2 on ARMv6) to ensure compatability
# with all ARMv7 cores we support.
DEB_CFLAGS_MAINT_APPEND += -marm
DEB_CXXFLAGS_MAINT_APPEND += -marm
configure_flags += --target=armv6-linux-gcc --enable-small
else
ifeq ($(DEB_HOST_ARCH), amd64)
configure_flags += --target=x86_64-linux-gcc
else
ifeq ($(DEB_HOST_ARCH), kfreebsd-amd64)
configure_flags += --target=x86_64-linux-gcc
else
ifeq ($(DEB_HOST_ARCH), i386)
configure_flags += --target=x86-linux-gcc
else
ifeq ($(DEB_HOST_ARCH), kfreebsd-i386)
configure_flags += --target=x86-linux-gcc
else
ifeq ($(DEB_HOST_ARCH), hurd-i386)
configure_flags += --target=x86-linux-gcc
else
ifeq ($(DEB_HOST_ARCH), mips)
configure_flags += --target=generic-gnu
# Disable MIPS assembly for now, it requires DSP R2
DEB_CFLAGS_MAINT_APPEND += -DLIBYUV_DISABLE_MIPS=1
DEB_CXXFLAGS_MAINT_APPEND += -DLIBYUV_DISABLE_MIPS=1
else
ifeq ($(DEB_HOST_ARCH), mipsel)
configure_flags += --target=generic-gnu
# Disable MIPS assembly for now, it requires DSP R2
DEB_CFLAGS_MAINT_APPEND += -DLIBYUV_DISABLE_MIPS=1
DEB_CXXFLAGS_MAINT_APPEND += -DLIBYUV_DISABLE_MIPS=1
else
configure_flags += --target=generic-gnu
endif
endif
endif
endif
endif
endif
endif
endif
endif

ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
CROSS=$(DEB_HOST_GNU_TYPE)-
export CROSS
endif

builddir := $(CURDIR)/builddir

export DEB_CFLAGS_MAINT_APPEND
export DEB_CXXFLAGS_MAINT_APPEND

%:
	dh $@ --parallel

override_dh_auto_clean:
	dh_auto_clean
	rm -rf $(builddir) $(builddir)-neon

override_dh_auto_configure:
	mkdir -p $(builddir) ; \
	cd $(builddir) ; \
	${CURDIR}/configure $(configure_flags)
ifeq ($(BUILD_NEON), Yes)
	mkdir -p $(builddir)-neon ; \
	cd $(builddir)-neon ; \
	${CURDIR}/configure $(configure_flags_neon)
endif

override_dh_auto_build:
	dh_auto_build --builddirectory=$(builddir) -- verbose=yes dist
ifeq ($(BUILD_NEON), Yes)
	dh_auto_build --builddirectory=$(builddir)-neon -- verbose=yes dist
endif
	# don't use stripped library...
	cp -v $(builddir)/libvpx_g.a \
		$(builddir)/vpx-vp8-*/lib/libvpx.a

override_dh_installdocs:
	dh_installdocs
	dh_installdocs -A README AUTHORS
