# Template build file for 'php'
pkgname=php
version=5.6.9
revision=2
short_desc="An HTML-embedded scripting language"
license="PHP"
homepage="http://www.php.net"
# XXX freetds and mssql modules.
hostmakedepends="pkg-config bison"
makedepends="postgresql-libs-devel libldap-devel libvpx-devel sqlite-devel
 unixodbc-devel net-snmp-devel libzip-devel enchant-devel libmcrypt-devel
 libltdl-devel libpng-devel libjpeg-turbo-devel icu-devel
 libcurl-devel libxslt-devel libressl-devel bzip2-devel zlib-devel db-devel
 gmp-devel gdbm-devel freetype-devel apache-devel tidy-devel
 readline-devel libmysqlclient-devel"
conf_files="/etc/php/php.ini"
distfiles="http://www.php.net/distributions/php-${version}.tar.gz"
checksum=49527ba66357fe65bcd463dfb8dcff1b8879419f88b3c334f50696a2aceacb87

# Package build options
nocross=yes
lib32disabled=yes

do_build() {
	local _phpconfig="--srcdir=.. \
		--config-cache \
		--prefix=/usr \
		--sbindir=/usr/bin \
		--sysconfdir=/etc/php \
		--localstatedir=/var \
		--with-layout=GNU \
		--with-config-file-path=/etc/php \
		--with-config-file-scan-dir=/etc/php/conf.d \
		--disable-rpath \
		--mandir=/usr/share/man \
		--without-pear \
		"

	local _phpextensions="--enable-bcmath=shared \
		--enable-calendar=shared \
		--enable-exif=shared \
		--enable-ftp=shared \
		--enable-gd-native-ttf \
		--enable-intl=shared \
		--enable-mbstring \
		--enable-opcache \
		--enable-phar=shared \
		--enable-posix=shared \
		--enable-shmop=shared \
		--enable-soap=shared \
		--enable-sockets=shared \
		--enable-sysvmsg=shared \
		--enable-sysvsem=shared \
		--enable-sysvshm=shared \
		--enable-zip=shared \
		--with-bz2=shared \
		--with-curl=shared \
		--with-db4=/usr \
		--with-enchant=shared,/usr \
		--with-freetype-dir=/usr \
		--with-gd=shared \
		--with-gdbm \
		--with-gettext=shared \
		--with-gmp=shared \
		--with-iconv=shared \
		--with-icu-dir=/usr \
		--with-jpeg-dir=/usr \
		--with-vpx-dir=/usr \
		--with-ldap=shared \
		--with-ldap-sasl \
		--with-mcrypt=shared \
		--with-mhash \
		--with-mysql-sock=/run/mysqld/mysqld.sock \
		--with-mysql=shared,mysqlnd \
		--with-mysqli=shared,mysqlnd \
		--with-openssl=shared \
		--with-pcre-regex=/usr \
		--with-pdo-mysql=shared,mysqlnd \
		--with-pdo-odbc=shared,unixODBC,/usr \
		--with-pdo-pgsql=shared \
		--with-pdo-sqlite=shared,/usr \
		--with-pgsql=shared \
		--with-png-dir=/usr \
		--with-snmp=shared \
		--with-sqlite3=shared,/usr \
		--with-unixODBC=shared,/usr \
		--with-xmlrpc=shared \
		--with-xsl=shared \
		--with-tidy=shared \
		--with-zlib \
		${configure_args} \
		"

	EXTENSION_DIR=/usr/lib/php/modules
	export EXTENSION_DIR
	PEAR_INSTALLDIR=/usr/share/pear
	export PEAR_INSTALLDIR

	# php
	mkdir -p build-php
	cd build-php
	ln -s ${wrksrc}/configure
	./configure ${_phpconfig} \
		--disable-cgi \
		--with-readline \
		--enable-pcntl \
		${_phpextensions}
	make ${makejobs}

	# cgi and fcgi
	# reuse the previous run; this will save us a lot of time
	cp -a ${wrksrc}/build-php ${wrksrc}/build-cgi
	cd ${wrksrc}/build-cgi
	./configure ${_phpconfig} \
		--disable-cli \
		--enable-cgi \
		${_phpextensions}
	make ${makejobs}

	# apache
	cp -a ${wrksrc}/build-php ${wrksrc}/build-apache
	cd ${wrksrc}/build-apache
	./configure ${_phpconfig} \
		--disable-cli \
		--with-apxs2 \
		${_phpextensions}
	make ${makejobs}

	# fpm
	cp -a ${wrksrc}/build-php ${wrksrc}/build-fpm
	cd ${wrksrc}/build-fpm
	./configure ${_phpconfig} \
		--disable-cli \
		--enable-fpm \
		--with-fpm-user=http \
		--with-fpm-group=http \
		${_phpextensions}
	make ${makejobs}

	# embed
	cp -a ${wrksrc}/build-php ${wrksrc}/build-embed
	cd ${wrksrc}/build-embed
	./configure ${_phpconfig} \
		--disable-cli \
		--enable-embed=shared \
		${_phpextensions}
	make ${makejobs}

	# pear
	cp -a ${wrksrc}/build-php ${wrksrc}/build-pear
	cd ${wrksrc}/build-pear
	./configure ${_phpconfig} \
		--disable-cgi \
		--with-readline \
		--enable-pcntl \
		--with-pear \
		${_phpextensions}
	make ${makejobs}
}

do_install() {
	cd ${wrksrc}/build-php
	make INSTALL_ROOT=${DESTDIR} install

	# install php.ini
	vinstall ${wrksrc}/php.ini-production 644 etc/php php.ini
	# remove static modules
	rm -f ${DESTDIR}/usr/lib/php/modules/*.a
}

php-devel_package() {
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove usr/lib/php/build
		vmove usr/bin/php-config
		vmove usr/bin/phpize
		vmove usr/share/man/man1/phpize.1
		vmove usr/share/man/man1/php-config.1
	}
}

php-cgi_package() {
	short_desc+=' - CGI and FCGI SAPI'
	depends="php-${version}_${revision}"
	pkg_install() {
		vbin ${wrksrc}/build-cgi/sapi/cgi/php-cgi
	}
}

php-apache_package() {
	short_desc+=' - Apache SAPI'
	depends="php-${version}_${revision}"
	conf_files="/etc/httpd/extra/php5_module.conf"
	pkg_install() {
		vinstall ${wrksrc}/build-apache/libs/libphp5.so 755 usr/libexec/httpd/modules
		vinstall ${FILESDIR}/apache.conf 644 etc/httpd/extra php5_module.conf
	}
}

php-fpm_package() {
	short_desc+=' - FastCGI Process Manager'
	depends="php-${version}_${revision}"
	conf_files="/etc/php/php-fpm.conf"
	make_dirs="/etc/php/fpm.d 0755 root root"
	pkg_install() {
		vbin ${wrksrc}/build-fpm/sapi/fpm/php-fpm
		vman ${wrksrc}/build-fpm/sapi/fpm/php-fpm.8
		vinstall ${wrksrc}/build-fpm/sapi/fpm/php-fpm.conf 644 etc/php
		vsv php-fpm
	}
}

php-embed_package() {
	lib32disabled=yes
	depends="php-${version}_${revision}"
	short_desc+=' - Embed SAPI'
	pkg_install() {
		vinstall ${wrksrc}/build-embed/libs/libphp5.so 755 usr/lib
		vinstall ${wrksrc}/sapi/embed/php_embed.h 644 usr/include/php/sapi/embed
	}
}

php-pear_package() {
	lib32disabled=yes
	depends="php-${version}_${revision}"
	short_desc+=' - PHP Extension and Application Repository'
	conf_files="/etc/php/pear.conf"
	pkg_install() {
		cd ${wrksrc}/build-pear
		make install-pear INSTALL_ROOT=${PKGDESTDIR}
		rm -rf ${PKGDESTDIR}/.{channels,depdb,depdblock,filemap,lock,registry}
		rm -rf ${PKGDESTDIR}/usr/share/pear/.{channels,depdb,depdblock,filemap,lock,registry}
	}
}

php-enchant_package() {
	lib32disabled=yes
	depends="php-${version}_${revision}"
	short_desc+=' - enchant module'
	pkg_install() {
		vmove usr/lib/php/modules/enchant.so
	}
}

php-gd_package() {
	lib32disabled=yes
	depends="php-${version}_${revision}"
	short_desc+=' - gd module'
	pkg_install() {
		vmove usr/lib/php/modules/gd.so
	}
}

php-intl_package() {
	lib32disabled=yes
	depends="php-${version}_${revision}"
	short_desc+=' - Internationalization module'
	pkg_install() {
		vmove usr/lib/php/modules/intl.so
	}
}

php-ldap_package() {
	lib32disabled=yes
	depends="php-${version}_${revision}"
	short_desc+=' - LDAP module'
	pkg_install() {
		vmove usr/lib/php/modules/ldap.so
	}
}

php-mcrypt_package() {
	lib32disabled=yes
	depends="php-${version}_${revision}"
	short_desc+=' - mcrypt module'
	pkg_install() {
		vmove usr/lib/php/modules/mcrypt.so
	}
}

php-mysql_package() {
	lib32disabled=yes
	depends="php-${version}_${revision}"
	short_desc+=' - MySQL modules'
	pkg_install() {
		vmove "usr/lib/php/modules/*mysql*.so"
	}
}

php-odbc_package() {
	lib32disabled=yes
	depends="php-${version}_${revision}"
	short_desc+=' - ODBC modules'
	pkg_install() {
		vmove "usr/lib/php/modules/*odbc.so"
	}
}

php-pgsql_package() {
	lib32disabled=yes
	depends="php-${version}_${revision}"
	short_desc+=' - PostgreSQL modules'
	pkg_install() {
		vmove "usr/lib/php/modules/*pgsql.so"
	}
}

php-snmp_package() {
	lib32disabled=yes
	depends="php-${version}_${revision}"
	short_desc+=' - snmp module'
	pkg_install() {
		vmove usr/lib/php/modules/snmp.so
	}
}

php-sqlite_package() {
	lib32disabled=yes
	depends="php-${version}_${revision}"
	short_desc+=' - sqlite module'
	pkg_install() {
		vmove "usr/lib/php/modules/*sqlite*.so"
	}
}

php-tidy_package() {
	lib32disabled=yes
	depends="php-${version}_${revision}"
	short_desc+=' - tidy HTML module'
	pkg_install() {
		vmove "usr/lib/php/modules/*tidy*.so"
	}
}

php-xsl_package() {
	lib32disabled=yes
	depends="php-${version}_${revision}"
	short_desc+=' - XSL module'
	pkg_install() {
		vmove usr/lib/php/modules/xsl.so
	}
}
