freebsd-ports/lang/php80/Makefile.ext
Muhammad Moinur Rahman 4f698c44ee */php80*: Refactor codes
- Switch to system pcre2
- Remove no longer required CONFIGURE_ARGS
- Remove unnecessary patch from archivers/php80-phar
- Remove unnecessary patch from converters/php80-mbstring
- Add support for bdb:18 in databases/php80-dba
- Remove unnecessary introduction of configure flags in
  databases/php80-odbc
- Remove unnecessary patch from devel/php80-readline
- Remove NOOP post-patch target from ftp/php80-ftp
- Remove unnecessary patch and NOOP OPTIONS TRUETYPE from
  graphics/php80-gd
- Remove unnecessary patch from mail/php80-imap and remove the OPTION
  for using CCLIENT as this has been marked DEPRECATED since there has
  been no release in last 16 years
- Remove unnecessary patch from sysutils/php80-fileinfo
- Remove unnecessary patch from textproc/php80-simplexml
- Refactor patches for post-patch target in textproc/php80-enchant and
  switch to enchant2 for dependencies
- Refactor patches for post-patch target in textproc/php80-xsl
2023-11-18 13:29:52 +01:00

453 lines
9.2 KiB
Text

COMMENT= The ${PHP_MODNAME} shared extension for php
USES+= php:ext,noflavors
PHP_MODNAME= ${PKGNAMESUFFIX:S/-//}
PHP_VER= 80
IGNORE_WITH_PHP= 81 82 83
EXTSUBDIR= ${DISTNAME}/ext/${PHP_MODNAME}
WRKSRC= ${WRKDIR}/${EXTSUBDIR}
PATCHDIR= ${.CURDIR}/files
PLIST= ${NONEXISTENT}
EXTRACT_AFTER_ARGS?= ${EXTSUBDIR}
.if ${PHP_MODNAME} == "bcmath"
CONFIGURE_ARGS+=--enable-bcmath
PHP_HEADER_DIRS=libbcmath/src
.endif
.if ${PHP_MODNAME} == "bz2"
CONFIGURE_ARGS+=--with-bz2=/usr
.endif
.if ${PHP_MODNAME} == "calendar"
CONFIGURE_ARGS+=--enable-calendar
.endif
.if ${PHP_MODNAME} == "ctype"
CONFIGURE_ARGS+=--enable-ctype
.endif
.if ${PHP_MODNAME} == "curl"
LIB_DEPENDS+= libcurl.so:ftp/curl
CONFIGURE_ARGS+=--with-curl=${LOCALBASE}
USES+= pkgconfig
.endif
.if ${PHP_MODNAME} == "dba"
CONFIGURE_ARGS+=--enable-dba
OPTIONS_DEFINE= CDB DB4 GDBM QDBM TOKYO INIFILE FLATFILE LMDB
OPTIONS_DEFAULT=CDB INIFILE FLATFILE
CDB_DESC= cdb database support
DB4_DESC= Berkeley DB4 support
GDBM_DESC= GDBM database support
QDBM_DESC= QDBM database support
TOKYO_DESC= Tokyo Cabinet database support
INIFILE_DESC= INI file support
FLATFILE_DESC= flatfile support
LMDB_DESC= LMDB database support
CDB_CONFIGURE_OFF=--without-cdb
DB4_CONFIGURE_ON=--with-db4=${LOCALBASE}
DB4_USES= bdb
DB4_VARS= WITH_BDB_HIGHEST=yes
FLATFILE_CONFIGURE_OFF=--disable-flatfile
GDBM_LIB_DEPENDS= libgdbm.so:databases/gdbm
GDBM_CONFIGURE_ON=--with-gdbm=${LOCALBASE}
INIFILE_CONFIGURE_OFF=--disable-inifile
LMDB_LIB_DEPENDS= liblmdb.so:databases/lmdb
LMDB_CONFIGURE_ON= --with-lmdb=${LOCALBASE}
QDBM_LIB_DEPENDS= libqdbm.so:databases/qdbm
QDBM_CONFIGURE_ON=--with-qdbm=${LOCALBASE}
TOKYO_LIB_DEPENDS= libtokyocabinet.so:databases/tokyocabinet
TOKYO_CONFIGURE_ON=--with-tcadb=${LOCALBASE}
PHP_HEADER_DIRS= libcdb libflatfile libinifile
.endif
.if ${PHP_MODNAME} == "dom"
CONFIGURE_ARGS+=--enable-dom
USES+= pkgconfig
USE_GNOME= libxml2
.endif
.if ${PHP_MODNAME} == "enchant"
LIB_DEPENDS+= libenchant-2.so:textproc/enchant2
CONFIGURE_ARGS+=--with-enchant=${LOCALBASE}
USES+= gettext-runtime pkgconfig
USE_GNOME+= glib20
.endif
.if ${PHP_MODNAME} == "exif"
CONFIGURE_ARGS+=--enable-exif
.endif
.if ${PHP_MODNAME} == "ffi"
LIB_DEPENDS= libffi.so:devel/libffi
CONFIGURE_ARGS+=--with-ffi
.endif
.if ${PHP_MODNAME} == "fileinfo"
CONFIGURE_ARGS+=--enable-fileinfo
PHP_HEADER_DIRS= libmagic
.endif
.if ${PHP_MODNAME} == "filter"
CONFIGURE_ARGS+=--enable-filter
.endif
.if ${PHP_MODNAME} == "ftp"
CONFIGURE_ARGS+=--enable-ftp
CONFIGURE_ENV+= OPENSSL_CFLAGS="-I${OPENSSLINC}" \
OPENSSL_LIBS="-L${OPENSSLLIB} -lssl -lcrypto" \
PHP_OPENSSL=yes
LDFLAGS+= -L${OPENSSLLIB} -lcrypto -lssl
USES+= ssl pkgconfig
.endif
.if ${PHP_MODNAME} == "gd"
LIB_DEPENDS= libfreetype.so:print/freetype2 \
libpng.so:graphics/png
USES+= jpeg
CONFIGURE_ARGS+=--enable-gd \
--with-external-gd
EXTRACT_AFTER_ARGS=--no-same-owner --no-same-permissions --exclude libgd \
php-${DISTVERSION}/ext/gd
OPTIONS_DEFINE=JIS WEBP X11
JIS_DESC= Enable JIS-mapped Japanese font support
WEBP_DESC= Enable WebP image format support
X11_DESC= Enable XPM support
JIS_CONFIGURE_ON=--enable-gd-jis-conv
WEBP_CONFIGURE_ON=--with-webp
WEBP_LIB_DEPENDS= libwebp.so:graphics/webp
X11_USES= xorg
X11_USE= XORG=xpm
X11_CONFIGURE_ON=--with-xpm
.endif
.if ${PHP_MODNAME} == "gettext"
CONFIGURE_ARGS+=--with-gettext=${LOCALBASE}
USES+= gettext
.endif
.if ${PHP_MODNAME} == "gmp"
LIB_DEPENDS+= libgmp.so:math/gmp
CONFIGURE_ARGS+=--with-gmp=${LOCALBASE}
.endif
.if ${PHP_MODNAME} == "iconv"
CONFIGURE_ARGS+=--with-iconv=${LOCALBASE}
USES+= iconv:translit
.endif
.if ${PHP_MODNAME} == "imap"
PHP_MOD_PRIO= 30
LIB_DEPENDS+= libc-client.so.2010:mail/panda-cclient
CONFIGURE_ARGS+=--with-imap=${LOCALBASE} \
--with-imap-ssl=${OPENSSLBASE}
CONFIGURE_ENV+= OPENSSL_CFLAGS="-I${OPENSSLINC}" \
OPENSSL_LIBS="-L${OPENSSLLIB} -lssl -lcrypto" \
PHP_OPENSSL=yes
LDFLAGS+= -L${OPENSSLLIB} -lcrypto -lssl
USES+= ssl
.endif
.if ${PHP_MODNAME} == "intl"
CONFIGURE_ARGS+=--enable-intl
LIB_DEPENDS= libicui18n.so:devel/icu
USES+= pkgconfig
.endif
.if ${PHP_MODNAME} == "json"
CONFIGURE_ARGS+=--enable-json
BUILD_DEPENDS= re2c:devel/re2c
.endif
.if ${PHP_MODNAME} == "ldap"
LIB_DEPENDS+=libsasl2.so:security/cyrus-sasl2
CONFIGURE_ARGS+=--with-ldap=${LOCALBASE} --with-ldap-sasl=${LOCALBASE}
USES+= ldap
.endif
.if ${PHP_MODNAME} == "mbstring"
CONFIGURE_ARGS+=--enable-mbstring
OPTIONS_DEFINE= REGEX
OPTIONS_DEFAULT=REGEX
REGEX_DESC= Enable multibyte regex support
REGEX_CONFIGURE_OFF=--disable-mbregex
REGEX_LIB_DEPENDS= libonig.so:devel/oniguruma
PHP_HEADER_DIRS=libmbfl libmbfl/filters libmbfl/mbfl libmbfl/nls
.endif
.if ${PHP_MODNAME} == "mysqli"
OPTIONS_DEFINE= MYSQLND
OPTIONS_DEFAULT=MYSQLND
MYSQLND_DESC= Use MySQL Native Driver
MYSQLND_CONFIGURE_ON=--with-mysqli=mysqlnd
MYSQLND_CONFIGURE_OFF=--with-mysqli=${LOCALBASE}/bin/mysql_config
MYSQLND_USES_OFF= mysql
.endif
.if ${PHP_MODNAME} == "odbc"
LIB_DEPENDS+= libodbc.so:databases/unixODBC
CONFIGURE_ARGS+=--with-unixODBC=${LOCALBASE}
.endif
.if ${PHP_MODNAME} == "opcache"
# This is needed by Zend extensions, keep before everything.
PHP_MOD_PRIO= 10
CONFIGURE_ARGS+=--enable-opcache
USES+= localbase
.endif
.if ${PHP_MODNAME} == "pcntl"
CONFIGURE_ARGS+=--enable-pcntl
.endif
.if ${PHP_MODNAME} == "pdo"
CONFIGURE_ARGS+=--enable-pdo
.endif
.if ${PHP_MODNAME} == "pdo_dblib"
CONFIGURE_ARGS+=--with-pdo-dblib=${LOCALBASE}
USE_PHP= pdo:build
OPTIONS_DEFINE= MSSQL
MSSQL_DESC= Enable Microsoft SQL Server support
MSSQL_LIB_DEPENDS= libsybdb.so:databases/freetds
MSSQL_LIB_DEPENDS_OFF= libct.so:databases/freetds
.endif
.if ${PHP_MODNAME} == "pdo_firebird"
CONFIGURE_ARGS+=--with-pdo-firebird=${LOCALBASE}
USES+= firebird
USE_PHP= pdo:build
.endif
.if ${PHP_MODNAME} == "pdo_odbc"
LIB_DEPENDS+= libodbc.so:databases/unixODBC
CONFIGURE_ARGS+=--with-pdo-odbc=unixODBC,${LOCALBASE}
USE_PHP= pdo:build
.endif
.if ${PHP_MODNAME} == "pdo_mysql"
OPTIONS_DEFINE= MYSQLND
OPTIONS_DEFAULT=MYSQLND
MYSQLND_DESC= Use MySQL Native Driver
MYSQLND_CONFIGURE_ON=--with-pdo-mysql=mysqlnd
MYSQLND_CONFIGURE_OFF=--with-pdo-mysql=${LOCALBASE} \
--with-zlib-dir=/usr
MYSQLND_USES_OFF= mysql
USE_PHP= pdo:build
.endif
.if ${PHP_MODNAME} == "pdo_pgsql"
USES+= pgsql
CONFIGURE_ARGS+=--with-pdo-pgsql=${LOCALBASE}
USE_PHP= pdo:build
.endif
.if ${PHP_MODNAME} == "pdo_sqlite"
USES+= localbase sqlite
CONFIGURE_ARGS+=--with-pdo-sqlite=${LOCALBASE}
USE_PHP= pdo:build
.endif
.if ${PHP_MODNAME} == "pgsql"
USES+= pgsql
CONFIGURE_ARGS+=--with-pgsql=${LOCALBASE}
.endif
.if ${PHP_MODNAME} == "phar"
CONFIGURE_ARGS+=--enable-phar
.endif
.if ${PHP_MODNAME} == "posix"
CONFIGURE_ARGS+=--enable-posix
.endif
.if ${PHP_MODNAME} == "pspell"
LIB_DEPENDS+= libaspell.so:textproc/aspell
CONFIGURE_ARGS+=--with-pspell=${LOCALBASE}
.endif
.if ${PHP_MODNAME} == "readline"
CONFIGURE_ARGS+=--with-libedit
USES+= libedit
.endif
.if ${PHP_MODNAME} == "session"
CONFIGURE_ARGS+=--enable-session
PHP_MOD_PRIO= 18
.endif
.if ${PHP_MODNAME} == "shmop"
CONFIGURE_ARGS+=--enable-shmop
.endif
.if ${PHP_MODNAME} == "simplexml"
CONFIGURE_ARGS+=--enable-simplexml
USES+= pkgconfig
USE_GNOME= libxml2
.endif
.if ${PHP_MODNAME} == "snmp"
CONFIGURE_ARGS+=--with-snmp=${LOCALBASE}
CONFIGURE_ENV+= ac_cv_buggy_snprint_value="no"
LIB_DEPENDS+= libnetsnmp.so:net-mgmt/net-snmp
LDFLAGS+= -L${OPENSSLLIB} -lcrypto -lssl
USES+= ssl
.endif
.if ${PHP_MODNAME} == "soap"
CONFIGURE_ARGS+=--enable-soap
USES+= pkgconfig
USE_GNOME= libxml2
.endif
.if ${PHP_MODNAME} == "sockets"
CONFIGURE_ARGS+=--enable-sockets
.endif
.if ${PHP_MODNAME} == "sodium"
CONFIGURE_ARGS+= --with-sodium=${LOCALBASE}
LIB_DEPENDS+= libsodium.so:security/libsodium
.endif
.if ${PHP_MODNAME} == "sqlite3"
USES+= localbase pkgconfig sqlite
CONFIGURE_ARGS+=--with-sqlite3=${LOCALBASE}
.endif
.if ${PHP_MODNAME} == "sysvmsg"
CONFIGURE_ARGS+=--enable-sysvmsg
.endif
.if ${PHP_MODNAME} == "sysvsem"
CONFIGURE_ARGS+=--enable-sysvsem
.endif
.if ${PHP_MODNAME} == "sysvshm"
CONFIGURE_ARGS+=--enable-sysvshm
.endif
.if ${PHP_MODNAME} == "tidy"
CONFIGURE_ARGS+=--with-tidy=${LOCALBASE}
LIB_DEPENDS+= libtidy.so:www/tidy-lib
.endif
.if ${PHP_MODNAME} == "tokenizer"
CONFIGURE_ARGS+=--enable-tokenizer
.endif
.if ${PHP_MODNAME} == "xml"
CONFIGURE_ARGS+=--enable-xml
USES+= pkgconfig
USE_GNOME= libxml2
.endif
.if ${PHP_MODNAME} == "xmlreader"
CONFIGURE_ARGS+=--enable-xmlreader
USE_GNOME= libxml2
USE_PHP= dom:build
.endif
.if ${PHP_MODNAME} == "xmlrpc"
CONFIGURE_ARGS+=--with-xmlrpc \
--with-iconv-dir=${LOCALBASE}
USES+= iconv:translit
USE_GNOME= libxml2
PHP_HEADER_DIRS=libxmlrpc
USE_PHP= xml:build
.endif
.if ${PHP_MODNAME} == "xmlwriter"
CONFIGURE_ARGS+=--enable-xmlwriter
USES+= pkgconfig
USE_GNOME= libxml2
.endif
.if ${PHP_MODNAME} == "xsl"
CONFIGURE_ARGS+=--with-xsl=${LOCALBASE}
USE_GNOME= libxslt
USE_PHP= dom:build xml:build
.endif
.if ${PHP_MODNAME} == "zip"
LIB_DEPENDS+= libzip.so:archivers/libzip
CONFIGURE_ARGS+=--with-zip
USES+= pkgconfig
.endif
.if ${PHP_MODNAME} == "zlib"
CONFIGURE_ARGS+=--with-zlib=/usr
USES+= pkgconfig
.endif
.include <bsd.port.pre.mk>
.if ${PHP_MODNAME} == "sqlite3" || ${PHP_MODNAME} == "zlib"
post-extract:
@${MV} ${WRKSRC}/config0.m4 ${WRKSRC}/config.m4
.endif
.if ${PHP_MODNAME} == "xml"
post-extract:
@${MKDIR} ${WRKSRC}/ext/xml
@${CP} ${WRKSRC}/expat_compat.h ${WRKSRC}/ext/xml
.endif