#!/usr/bin/make -f
ABIM:=$(shell grep MAJVER Makefile|cut -d = -f 2|tr -d ' ')
ABIN:=$(shell grep MINVER Makefile|cut -d = -f 2|tr -d ' ')
ABIO:=$(shell grep RELVER Makefile|cut -d = -f 2|tr -d ' ')
ABI=$(ABIM).$(ABIN).$(ABIO)

export DPKG_GENSYMBOLS_CHECK_LEVEL=4

include /usr/share/dpkg/default.mk

export DH_VERBOSE = 1
DH_VERBOSE = 1
export VERBOSE = 1
VERBOSE = 1

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

# older bz comprension
export DEB_DH_BUILDDEB_ARGS = -- -Zbzip2
# avoid useless dependencies
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed

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

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

OPTI_FLAGS_LIBONLY := 
ifeq ($(DEB_HOST_ARCH),i386)
ifeq ($(DEBVE2),yes)
    OPTI_FLAGS_LIBONLY += -march=i686 -mtune=generic -mmmx -msse -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 -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

CUFLAGS= -O2 $(OPTI_FLAGS_LIBONLY)
CFLAGS= -O2 $(OPTI_FLAGS_LIBONLY)
CXXFLAGS= -O2 $(OPTI_FLAGS_LIBONLY)

endif

export CFLAGS=$(CUFLAGS)
export CXXFLAGS=$(CUFLAGS)
export DEB_CFLAGS_MAINT_APPEND = $(CUFLAGS)
export DEB_CXXFLAGS_MAINT_APPEND = $(CUFLAGS)


%:
	dh $@

override_dh_auto_clean:
ifeq (,$(filter $(DEB_HOST_ARCH),ppc64el s390x))
	dh_auto_clean
endif

override_dh_auto_configure:
ifneq (,$(filter $(DEB_HOST_ARCH),ppc64el s390x))
	# Binary packages for ppc64el and s390x are transitional dummy packages.
	-$(RM) debian/*.install debian/*.symbols
endif

override_dh_auto_build:
ifeq (,$(filter $(DEB_HOST_ARCH),ppc64el s390x))
ifeq ($(DEBVE2),yes)
	$(MAKE) amalg PREFIX=/usr MULTILIB=lib/$(DEB_HOST_MULTIARCH) CFLAGS="$(CUFLAGS)" CROSS=$(DEB_HOST_GNU_TYPE)- Q= E=@:
else
	make amalg PREFIX=/usr CC=gcc MULTILIB=lib/$(DEB_HOST_MULTIARCH) CFLAGS="$(CUFLAGS)"
endif
endif

override_dh_auto_install:
ifeq (,$(filter $(DEB_HOST_ARCH),ppc64el s390x))
	make install PREFIX=/usr DESTDIR=$(CURDIR)/debian/tmp/ MULTILIB=lib/$(DEB_HOST_MULTIARCH) LDCONFIG="/sbin/ldconfig -n"
	sed -i 's?^multilib=.*?multilib=lib/$(DEB_HOST_MULTIARCH)?' \
		debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/*.pc
	# debian doesn't allow multiple luajit versions, just rename the binary to luajit
	mv $(CURDIR)/debian/tmp/usr/bin/luajit-* $(CURDIR)/debian/tmp/usr/bin/luajit
endif

ifeq ($(DEBVE2),yes)
execute_after_dh_auto_test:
ifeq (,$(filter $(DEB_HOST_ARCH),ppc64el s390x))
	# fail early on architectures it does not support
	./src/luajit -e 'print(true)'
endif
endif

