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

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

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

endif

mysql_config := /usr/bin/mariadb_config

export LDFLAGS += $(shell $(mysql_config) --libs)
#export CFLAGS += -I/opt/alt/sqlite/usr/include -fno-strict-aliasing -Wno-pointer-sign -fPIC
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/php-5.3.3-gnusrc.patch
	patch -p1 < debian/patches/php-5.3.0-install.patch
	patch -p1 < debian/patches/php-5.2.4-norpath.patch
	patch -p1 < debian/patches/php-5.3.0-phpize64.patch
	patch -p1 < debian/patches/php-5.2.0-includedir.patch
	patch -p1 < debian/patches/m4.php5.4.patch
	patch -p1 < debian/patches/headers-and-client-library-mismatch.patch
	if [[ "mariadb106" =~ mariadb10.* ]]; then \
		patch -p1 < debian/patches/mysql-ext-change-mariadb-inc-path.patch; \
		patch -p1 < debian/patches/php-5.6.31-mariadb102.patch; \
	fi
ifeq ($(shell [[ "$(OS_NAME)" == "ubuntu" && $$(expr $(OS_VER) \<= 20.04) == 1 ]] && echo 0), 0)
	if [[ "mariadb106" =~ mariadb10.* ]]; then \
		patch -p1 < debian/patches/php-5.6.34-mariadb10213.patch; \
		patch -p1 < debian/patches/php-5.6.34-mariadb103.patch; \
		patch -p1 < debian/patches/php-5.6.36-mariadb10215.patch; \
	fi
else
	if [[ "mariadb106" =~ mariadb10.* ]]; then \
		patch -p1 < debian/patches/php-5.6.37-mysql80.patch; \
		sed -i '/<my_list.h>/d' ext/mysqli/php_mysqli_structs.h; \
	fi
endif
	if [ "mariadb106" == "mysql80" ]; then \
		patch -p1 < debian/patches/php-5.6.37-mysql80.patch; \
	fi
	if [[ "mariadb106" =~ mariadb.* ]]; then \
		sed -ie 's@mysqlclient@mariadb@' ext/mysql/config.m4; \
		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
	# 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 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-mysql=$(_prefix); \
	make ${NJOBS}; \
	popd; \
	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$(_includedir)/$(sqltype)/server/ -I$(_includedir)/$(sqltype)/server/private/ -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/mysql/modules/mysql.so $(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)-mariadb106 \
		.$(extension_dir)/*

override_dh_missing:
	dh_missing --fail-missing

override_dh_clean:
