#!/usr/bin/make -f

include /usr/share/dpkg/architecture.mk
include /usr/share/dpkg/pkg-info.mk

export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# -O3 is used by default with the meson build.  -O2 triggers cxx weak
# -symbols in libephysics1 that shouldn't be there.
export DEB_CFLAGS_MAINT_APPEND = -fvisibility=hidden -O3
export DEB_CXXFLAGS_MAINT_APPEND = -fvisibility=hidden -O3
export DEB_LDFLAGS_MAINT_APPEND = -Wl,-z,defs -Wl,--as-needed

ifneq (,$(filter $(DEB_HOST_ARCH), alpha arm64 hppa ia64 m68k powerpc riscv64 s390x sh4 sparc64 x32))
	lua_flags = -Dlua-interpreter=lua -Delua=false
	dhinstallflags += --exclude=elua
endif

ifneq (,$(filter $(DEB_HOST_ARCH), armhf armel))
	arch_flags += -Dnative-arch-optimization=false
endif
LETSBUILDINDEP := $(shell if dh_listpackages | grep -q efl-doc ; then \
	echo yes ;\
	else echo no ; fi)

ifeq (linux,$(DEB_HOST_ARCH_OS))
	fb_flags += -Dfb=true
endif

%:
	dh $@

override_dh_auto_configure:
# cross-builds need host eolian_gen, but ensure the versions match
ifneq (,$(filter cross,$(DEB_BUILD_PROFILES)))
	test "`dpkg-query -f '$${Version}' -W libedje-bin`" = "$(DEB_VERSION)"
	test "`dpkg-query -f '$${Version}' -W libeet-bin`" = "$(DEB_VERSION)"
	test "`dpkg-query -f '$${Version}' -W libelementary-bin`" = "$(DEB_VERSION)"
	test "`dpkg-query -f '$${Version}' -W libeolian-bin`" = "$(DEB_VERSION)"
endif

	dh_auto_configure --verbose -- \
		-Dcrypto=gnutls \
		-Dtslib=false \
		-Dembedded-lz4=false \
		-Devas-loaders-disabler=json \
		-Dbindings=luajit \
		-Decore-imf-loaders-disabler= \
		-Dnetwork-backend=none \
		-Dwl=true \
		-Ddrm=true \
		-Dbuild-tests=false \
		$(arch_flags) \
		$(fb_flags) \
		$(lua_flags)

override_dh_auto_build:
	# ensure shaders are rebuilt from sources
	find -name '*shader*.x' -exec rm {} \;
	cd src && lib/ector/gl/shader/gen_shaders.sh
	cd src && modules/evas/engines/gl_common/shader/gen_shaders.sh
	# the order of these fragments ensures the output matches upstream
	cd src && modules/evas/engines/gl_common/shader_3d/gen_shaders_3d.sh \
		modules/evas/engines/gl_common/shader_3d/vertex_color_vert.shd \
		modules/evas/engines/gl_common/shader_3d/vertex_color_frag.shd \
		modules/evas/engines/gl_common/shader_3d/diffuse_vert.shd \
		modules/evas/engines/gl_common/shader_3d/diffuse_frag.shd \
		modules/evas/engines/gl_common/shader_3d/flat_vert.shd \
		modules/evas/engines/gl_common/shader_3d/flat_frag.shd \
		modules/evas/engines/gl_common/shader_3d/phong_vert.shd \
		modules/evas/engines/gl_common/shader_3d/phong_frag.shd \
		modules/evas/engines/gl_common/shader_3d/normal_map_vert.shd \
		modules/evas/engines/gl_common/shader_3d/normal_map_frag.shd \
		modules/evas/engines/gl_common/shader_3d/shadow_map_vert.shd \
		modules/evas/engines/gl_common/shader_3d/shadow_map_frag.shd \
		modules/evas/engines/gl_common/shader_3d/color_pick_vert.shd \
		modules/evas/engines/gl_common/shader_3d/color_pick_frag.shd \
		modules/evas/engines/gl_common/shader_3d/parallax_occlusion_vert.shd \
		modules/evas/engines/gl_common/shader_3d/parallax_occlusion_frag.shd \
		modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_vert.shd \
		modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_frag.shd

	$(CURDIR)/debian/fake_home.sh env \
		dh_auto_build --verbose
ifeq ($(filter yes,$(LETSBUILDINDEP)),yes)
	$(CURDIR)/debian/fake_home.sh dh_auto_build -- doc
endif

override_dh_auto_build-indep:
	$(CURDIR)/debian/fake_home.sh dh_auto_build -- doc

override_dh_install:
	dh_install $(dhinstallflags)
ifeq ($(DEB_HOST_ARCH_OS),linux)
	dh_install -plibefl-all-dev $(dhinstallflags) \
		usr/lib/*/libecore_fb.so
endif
	# remove unused file, fail otherwise
	rm -f obj-$(DEB_HOST_GNU_TYPE)/html/jquery.js
	if grep -qr jquery.js obj-$(DEB_HOST_GNU_TYPE)/html/ ; \
		then echo jquery is used ; false ; fi
	# this is shipped under /usr/share/docs
	rm -f debian/libelementary-data/usr/share/icons/Enlightenment-X/README

override_dh_makeshlibs:
	dh_makeshlibs -Xmodule.so

override_dh_shlibdeps:
	dh_shlibdeps -Nlibefreet1a
	dh_shlibdeps -plibefreet1a -- -xlibefreet-bin

override_dh_clean:
	dh_clean
	find -name '*.luac' -exec rm {} \;

override_dh_installexamples:
	dh_installexamples -X.gitignore -XVera.ttf

override_dh_auto_test-indep:

override_dh_auto_test-arch:

override_dh_installman:
	dh_installman
	dh_installman -pefl-doc --sourcedir obj-$(DEB_HOST_GNU_TYPE)

override_dh_installdocs:
	dh_installdocs
	dh_installdocs -pefl-doc --doc-main-package=efl-doc obj-$(DEB_HOST_GNU_TYPE)/html
