#!/usr/bin/make -f
# -*- makefile -*-

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

# To enable all, uncomment following line
export DPKG_GENSYMBOLS_CHECK_LEVEL = 4

include /usr/share/dpkg/default.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

DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
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)

ifneq (,$(findstring amd64,$(DEB_BUILD_ARCH)))
export DEB_BUILD_MAINT_OPTIONS = hardening=+fortify,-stackprotector,+relro,+bindnow,-pie
else
export DEB_BUILD_MAINT_OPTIONS = hardening=+fortify,-stackprotector,+relro,+bindnow,+pie
endif

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
    CFLAGS += -O0
else

OPTI_FLAGS_LIBONLY := -funswitch-loops -fpredictive-commoning -fomit-frame-pointer
ifeq ($(DEB_HOST_ARCH),i386)
ifeq ($(DEBVE2),yes)
    OPTI_FLAGS_LIBONLY += -march=i686 -mtune=generic -mmmx -msse -mfpmath=sse -fexcess-precision=fast 
else
    OPTI_FLAGS_LIBONLY += -march=i586 -mtune=generic -mmmx -fexcess-precision=fast 
endif
else
ifeq ($(DEB_HOST_ARCH),i486)
ifeq ($(DEBVE2),yes)
    OPTI_FLAGS_LIBONLY += -march=i686 -mtune=generic -mmmx -msse -mfpmath=sse -fexcess-precision=fast 
else
    OPTI_FLAGS_LIBONLY += -march=i586 -mtune=generic -mmmx -fexcess-precision=fast 
endif
endif
endif

ifeq ($(DEB_HOST_ARCH),amd64)
    OPTI_FLAGS_LIBONLY += -mmmx -msse -msse2 -mfpmath=sse -fexcess-precision=fast 
endif

CFLAGS= $(shell dpkg-buildflags --get CFLAGS) -O3 $(OPTI_FLAGS_LIBONLY)
export CFLAGS= $(shell dpkg-buildflags --get CFLAGS) -O3 $(OPTI_FLAGS_LIBONLY)
CXXFLAGS= $(shell dpkg-buildflags --get CPPFLAGS) -O3 $(OPTI_FLAGS_LIBONLY)
export CXXFLAGS= $(shell dpkg-buildflags --get CPPFLAGS) -O3 $(OPTI_FLAGS_LIBONLY)
CPPFLAGS= $(shell dpkg-buildflags --get CPPFLAGS) -O3 $(OPTI_FLAGS_LIBONLY)
export CPPFLAGS= $(shell dpkg-buildflags --get CPPFLAGS) -O3 $(OPTI_FLAGS_LIBONLY)

LDFLAGS ?= $(shell dpkg-buildflags --get LDFLAGS)


endif

export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic -ffloat-store
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed


ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -Wall
endif

ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
CC = gcc
else
CC = $(DEB_HOST_GNU_TYPE)-gcc
endif

SIMD_BROKEN_ARCHS = x32

ifeq (,$(filter $(DEB_HOST_ARCH), $(SIMD_BROKEN_ARCHS)))
  DISABLE_SIMD=
else
  DISABLE_SIMD=--without-simd
endif

%:
	dh $@ --parallel --with autoreconf -O--dbgsym-migration='libjpeg-turbo-progs-dbg (<< 1.5.0-1~), libjpeg62-turbo-dbg (<< 1.5.0-1~), libturbojpeg0-dbg (<< 1.5.0-1~)'

override_dh_auto_configure:
	dh_auto_configure -- --with-build-date=$(DEB_VERSION) $(DISABLE_SIMD)

override_dh_auto_build:
	dh_auto_build -- V=1
	$(MAKE) -C debian/extra CC=$(CC) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CPPFLAGS="$(CPPFLAGS)" V=1

override_dh_auto_clean:
	$(MAKE) -C debian/extra clean
	if [ -e Makefile ]; then $(MAKE) testclean; fi
	dh_auto_clean
	rm -f simd/jsimdcfg.inc

override_dh_auto_install:
	dh_auto_install
	# Install extra utilities
	$(MAKE) -C debian/extra install prefix=/usr DESTDIR=$(CURDIR)/debian/tmp
	# Install manual page for tjbench.1
	install -m 644 debian/tjbench.1 $(CURDIR)/debian/tmp/usr/share/man/man1/
	# Fix jconfig.h for MultiArch
	rm -f debian/tmp/usr/include/jconfig.h
	mkdir -p debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)
	sed -e "s/#\(undef\|define\) HAVE_\(LOCALE\|\(STD\(DEF\|LIB\)\)\)_H 1//g" \
		jconfig.h > debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/jconfig.h

override_dh_install:
	dh_install -X.la -X/usr/share/doc --fail-missing

override_dh_installchangelogs:
	dh_installchangelogs -plibjpeg62-turbo-dev change.log
	dh_installchangelogs -Nlibjpeg62-turbo-dev
