#!/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 = 72

DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
OS_NAME := $(shell cat /etc/os-release | grep '^ID=' | cut -d'=' -f2 | sed -e 's@"@@g')
OS_VER  := $(shell cat /etc/os-release | grep '^VERSION_ID=' | cut -d'=' -f2 | sed -e 's@"@@g')

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)/mariadb100

ifeq ($(shell [[ "mariadb100" =~ mariadb.* ]] && echo 0), 0)
sqltype := mariadb
else
sqltype := mysql
endif

mysql_config := /usr/bin/mysql_config

ifeq ($(shell [[ "$(OS_NAME)" == "ubuntu" && $$(expr $(OS_VER) \<= 18.04) == 1 ]] && echo 0), 0)
MYSQLI_CPPFLAGS := -I$(_includedir)/mysql -I$(_includedir)/mariadb -I$(_includedir)/mariadb/mysql
else
MYSQLI_CPPFLAGS := -I$(_includedir)/$(sqltype)/server -I$(_includedir)/$(sqltype)/server/private
endif

export LDFLAGS += $(shell $(mysql_config) --libs)
export CFLAGS := ${CFLAGS} -g -I../../ $(shell $(mysql_config) --include)

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 $@

override_dh_auto_configure:
	cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >>aclocal.m4
	# Force use of system libtool:
	libtoolize --force --copy
	cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >build/libtool.m4
	./buildconf --force
	patch -p1 < debian/patches/headers-and-client-library-mismatch.patch
	if [[ "mariadb100" =~ mariadb10.* ]]; then \
		patch -p1 < debian/patches/php-7.2.0RC2-mariadb102.patch; \
	fi
ifeq ($(shell [[ "$(OS_NAME)" == "ubuntu" && $$(expr $(OS_VER) \<= 20.04) == 1 ]] && echo 0), 0)
	if [[ "mariadb100" =~ mariadb103 ]]; then \
		patch -p1 < debian/patches/php-7.2.2-mariadb10213.patch; \
		patch -p1 < debian/patches/php-7.2.2-mariadb103.patch; \
		patch -p1 < debian/patches/php-7.2.7-mariadb10215.patch; \
	fi
else
	if [[ "mariadb100" =~ mariadb10.* ]]; then \
		patch -p1 < debian/patches/php-7.2.8-mysql80.patch; \
		sed -i '/<my_list.h>/d' ext/mysqli/php_mysqli_structs.h; \
	fi
endif
	if [ "mariadb100" == "mysql80" ]; then \
		patch -p1 < debian/patches/php-7.2.8-mysql80.patch; \
	fi
ifeq ($(shell [[ "$(OS_NAME)" == "ubuntu" && $$(expr $(OS_VER) \>= 18.04) == 1 ]] && echo 0), 0)
	if [[ "mariadb100" =~ mariadb.* ]]; then \
		sed -ie 's@mysqlclient@mariadb@' ext/mysqli/config.m4; \
		sed -ie 's@mysqlclient@mariadb@' ext/pdo_mysql/config.m4; \
		sed -ie 's@mysql_config@mariadb_config@' ext/pdo_mysql/config.m4; \
	fi
endif
	# 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_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 $(MYSQLI_CPPFLAGS) -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)-mariadb100 \
		.$(extension_dir)/*

override_dh_missing:
	dh_missing --fail-missing

override_dh_clean:
