#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
export SHELL := /bin/bash
.SHELLFLAGS := -c
export DH_VERBOSE = 1
export DH_OPTIONS = -v

export PHP_VER = 81

DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
DIST_NAME := $(shell grep -Po '^ID=\K.*' /etc/os-release)
DIST_VER := $(shell grep -Po 'DISTRIB_RELEASE=\K.*' /etc/lsb-release)

altdir := /opt/alt/php$(PHP_VER)
_sourcedir := debian/source
_prefix := /usr
_bindir := $(_prefix)/bin
_sbindir := $(_prefix)/sbin
_libdir := $(_prefix)/lib/$(DEB_HOST_MULTIARCH)
_sysconfigdir := /etc
_includedir := $(_prefix)/include
_datadir := $(_prefix)/share
_localstatedir := /var
_mandir := $(_datadir)/man
buildroot := $(CURDIR)/debian/tmp
extension_dir := $(altdir)$(_sysconfigdir)/mariadb1011
mysql_config := /usr/bin/mariadb_config

export LDFLAGS += $(shell $(mysql_config) --libs)

NJOBS := -j$(shell getconf _NPROCESSORS_ONLN)

COMMON_CONFIG := \
	   --build=$(DEB_BUILD_GNU_TYPE) \
	   --host=$(DEB_HOST_GNU_TYPE) \
	   --target=$(DEB_BUILD_GNU_TYPE) \
	   --program-prefix= \
	   --prefix=$(altdir) \
	   --exec-prefix=$(altdir) \
	   --bindir=$(altdir)$(_bindir) \
	   --sbindir=$(altdir)$(_sbindir) \
	   --sysconfdir=$(altdir)$(_sysconfigdir) \
	   --datadir=$(altdir)$(_datadir) \
	   --includedir=$(altdir)$(_includedir) \
	   --libdir=$(altdir)$(_libdir) \
	   --with-libdir=lib/$(DEB_HOST_MULTIARCH) \
	   --libexecdir=$(altdir)$(_prefix)/libexec \
	   --localstatedir=/var \
	   --sharedstatedir=$(_prefix)/com \
	   --mandir=$(altdir)$(_mandir) \
       CPPFLAGS="${CPPFLAGS} -g -I../../ $(shell $(mysql_config) --include)"

%:
	dh $@

prep_build:
	patch -p1 debian/patches/php-8.0.1-pdo-mysql-std89.patch
	patch -p1 debian/patches/mysql50.patch
	patch -p1 debian/patches/php-8.1.2-mariadb.patch
	patch -p1 debian/patches/cmp_client-library-version.patch
	# Create postinst scripts
	for i in $(shell grep 'Package' debian/control | awk '{print $$2}'); do \
		if [ ! -f debian/$${i}.postinst ]; then \
			echo "#!/bin/bash" > debian/$${i}.postinst; \
			if [ "${PHP_VER}" == "-internal" ]; then \
				echo "chmod -Rc og-rwx /opt/alt/php-internal" >> debian/$${i}.postinst; \
			else \
				echo "[ -x /usr/bin/cl-linksafe-apply-group ] && /usr/bin/cl-linksafe-apply-group $${i} || :" >> debian/$${i}.postinst; \
			fi; \
		fi; \
	done

override_dh_auto_configure: prep_build
	./buildconf --force

override_dh_auto_build:
	pushd ext; \
	pushd mysqli; \
	$(altdir)/usr/bin/phpize; \
	./configure $(COMMON_CONFIG) --with-php-config=$(altdir)/usr/bin/php-config \
		--with-libdir=lib/$(DEB_HOST_MULTIARCH) \
		--with-zlib-dir=$(_prefix) \
		--with-mysqli=$(mysql_config) \
		CPPFLAGS="${CPPFLAGS} -g -I../../"; \
	make ${NJOBS}; \
	popd; \
	cp pdo/php_pdo_driver.h pdo_mysql; \
	pushd pdo_mysql; \
	$(altdir)/usr/bin/phpize; \
	./configure $(COMMON_CONFIG) --with-php-config=$(altdir)/usr/bin/php-config \
		--with-libdir=lib/$(DEB_HOST_MULTIARCH) \
		--with-zlib-dir=$(_prefix) \
		--with-pdo-mysql=$(_prefix); \
	make ${NJOBS}; \
	popd; \
	popd

override_dh_auto_install:
	install -m 755 -d $(buildroot)$(extension_dir)
	install -m 755  ext/mysqli/modules/mysqli.so $(buildroot)$(extension_dir)
	install -m 755  ext/pdo_mysql/modules/pdo_mysql.so $(buildroot)$(extension_dir)
	dh_movefiles -palt-php$(PHP_VER)-mariadb1011 \
		.$(extension_dir)/*

override_dh_missing:
	dh_missing --fail-missing

override_dh_clean:

.PHONY: prep_build
