#!/usr/bin/make -f

export DEB_LDFLAGS_MAINT_APPEND=-Wl,--as-needed

SOURCE_DATE := $(shell dpkg-parsechangelog --show-field=Date)

# shared library versions, option 1
upstream_version=1.8.4
version=1.8.4
major=1.8
repackv=1
scripts_svn_rev=5339

devi := $(shell lsb_release -r -s | cut -d '.'  -f1)
ifeq ($(shell if [ $(devi) -gt 7 ] ; then echo gt ; else echo lt ; fi),gt)
   DEBVE=yes
else
   DEBVE=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 noopt,$(DEB_BUILD_OPTIONS)))
    CFLAGS += -O0
else

OPTI_FLAGS_LIBONLY := -funswitch-loops -fpredictive-commoning -fomit-frame-pointer -fexpensive-optimizations -fpermissive -Wall
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= -O3 $(OPTI_FLAGS_LIBONLY)
export CFLAGS= -O3 $(OPTI_FLAGS_LIBONLY)
CXXFLAGS= -O3 $(OPTI_FLAGS_LIBONLY)
export CXXFLAGS= -O3 $(OPTI_FLAGS_LIBONLY)

CPPFLAGS= -O3 $(OPTI_FLAGS_LIBONLY)
export CPPFLAGS= -O3 $(OPTI_FLAGS_LIBONLY)

export DEB_CPPFLAGS_MAINT_APPEND= -O3 $(OPTI_FLAGS_LIBONLY)
export DEB_CFLAGS_MAINT_APPEND= -O3 $(OPTI_FLAGS_LIBONLY)
export DEB_CXXFLAGS_MAINT_APPEND= -O3 $(OPTI_FLAGS_LIBONLY)

endif



%:
	dh $@ --sourcedirectory=source/Irrlicht --parallel

override_dh_clean:
	# clean documentation
	rm -rf doctemp
	rm -rf doc/html
	rm -rf doc/latex
	
	# clean everything else
	$(MAKE) -C source/Irrlicht clean
	
	dh_clean

override_dh_auto_build:
	mkdir -p lib/Linux
	
	# build irrlicht shared and static lib
	NDEBUG="true" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
	CXXFLAGS="$(CXXFLAGS)" dh_auto_build -- sharedlib staticlib
	
	# build documentation
	# based off of scripts/doc/irrlicht/makedocumentation.sh
	set -e ; cd scripts/doc/irrlicht && rm -f tut.txt && \
	for i in ../../../examples/[012]*/main.cpp; do \
	  sed -f tutorials.sed "$${i}" >>tut.txt; \
	done && \
	doxygen doxygen.cfg && \
	cp irrlicht.png logobig.png ../../../doctemp/html
	mv doctemp/* doc/

override_dh_installdirs:
	dh_installdirs -plibirrlicht-dev -Pdebian/tmp usr/include/irrlicht \
	usr/lib/$(DEB_HOST_MULTIARCH)

override_dh_auto_install:
	dh_auto_install -- \
	INSTALL_DIR=$(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)

override_dh_installchangelogs:
	dh_installchangelogs changes.txt

override_dh_link:
	dh_link -plibirrlicht$(major) \
	usr/lib/$(DEB_HOST_MULTIARCH)/libIrrlicht.so.$(version) \
	usr/lib/$(DEB_HOST_MULTIARCH)/libIrrlicht.so.$(major)

override_dh_strip:
	dh_strip --dbg-package=libirrlicht$(major)-dbg

get-orig-source:
	# Note: scripts/ directory seems to be missing from upstream zip, so download from:
	# https://irrlicht.svn.sourceforge.net/svnroot/irrlicht/branches/releases/1.8/scripts/
	mkdir -p ../repack
	uscan --force-download --destdir ../repack --download-current-version
	( \
		cd ../repack ;\
		unzip -q irrlicht-$(upstream_version).zip ;\
		cd irrlicht-$(upstream_version) ;\
		rm -rf source/Irrlicht/jpeglib ;\
		rm -rf source/Irrlicht/zlib ;\
		rm -rf source/Irrlicht/libpng ;\
		rm -rf source/Irrlicht/lzma ;\
		rm -rf source/Irrlicht/bzip2 ;\
		rm -rf source/Irrlicht/MacOSX ;\
		rm -f source/Irrlicht/glext.h ;\
		rm -f source/Irrlicht/glxext.h ;\
		rm -f source/Irrlicht/wglext.h ;\
		rm -rf bin ;\
		rm -rf media ;\
		rm -rf lib ;\
		rm -rf doc/html ;\
		svn co -r $(scripts_svn_rev) https://svn.code.sf.net/p/irrlicht/code/branches/releases/1.8/scripts/ scripts ;\
		find . -name .svn -exec rm -rf {} \; ;\
		find . \( -name \*.exe -o -name \*.dll \) -exec rm -f {} \; ;\
		cd .. ;\
		GZIP="--best" tar --mtime="$(SOURCE_DATE)" -czf irrlicht_$(upstream_version)+dfsg$(repackv).orig.tar.gz irrlicht-$(upstream_version) ;\
		mv irrlicht_$(upstream_version)+dfsg$(repackv).orig.tar.gz .. ;\
	)
	rm -rf ../repack
