freebsd-ports/lang/php74/Makefile.ext
Torsten Zuehlsdorff 03f95e3a86 ftp/php74-ftp: Fix Undefined symbol "SSL_library_init"
The ftp module always compiles against the base openssl,
causes the error on FreeBSD 11.3. All other ports based
on OpenSSL import the needed openssl from ports, if its
not in base. Therefore we adjust the behaviour of the
ftp module to match for example the imap module.

PR:		241591
Submitted by:	Pascal Christen <pascal.christen@hostpoint.ch>
2019-12-23 22:30:59 +00:00

553 lines
11 KiB
Text

# $FreeBSD$
COMMENT= The ${PHP_MODNAME} shared extension for php
USES+= php:ext,noflavors
PHP_MODNAME= ${PKGNAMESUFFIX:S/-//}
PHP_VER= 74
IGNORE_WITH_PHP= 72 73
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
PHP_HEADER_DIRS= libcdb libflatfile libinifile
.endif
.if ${PHP_MODNAME} == "dom"
CONFIGURE_ARGS+=--enable-dom \
--with-libxml-dir=${LOCALBASE}
USES+= pkgconfig
USE_GNOME= libxml2
.endif
.if ${PHP_MODNAME} == "enchant"
LIB_DEPENDS+= libenchant.so:textproc/enchant
CONFIGURE_ARGS+=--with-enchant=${LOCALBASE}
USES+= pkgconfig
.endif
.if ${PHP_MODNAME} == "exif"
CONFIGURE_ARGS+=--enable-exif
.endif
.if ${PHP_MODNAME} == "ffi"
LIB_DEPENDS= libffi.so:devel/libffi
CONFIGURE_ARGS+=--enable-ffi
.endif
.if ${PHP_MODNAME} == "fileinfo"
CONFIGURE_ARGS+=--enable-fileinfo \
--with-pcre-dir=${LOCALBASE}
PHP_HEADER_DIRS= libmagic
.endif
.if ${PHP_MODNAME} == "filter"
CONFIGURE_ARGS+=--enable-filter \
--with-pcre-dir=${LOCALBASE}
.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=TRUETYPE JIS WEBP X11
OPTIONS_DEFAULT=TRUETYPE
TRUETYPE_DESC= Enable TrueType string function
JIS_DESC= Enable JIS-mapped Japanese font support
WEBP_DESC= Enable WebP image format support
X11_DESC= Enable XPM support
.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
OPTIONS_DEFINE= PANDA
PANDA_DESC= Uses the forked panda-cclient instead of the original cclient
CONFIGURE_ARGS+=--with-imap=${LOCALBASE} \
--with-pcre-dir=${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+=--with-intl=${LOCALBASE}
LIB_DEPENDS= libicui18n.so:devel/icu
USES+= pkgconfig
.endif
.if ${PHP_MODNAME} == "json"
CONFIGURE_ARGS+=--enable-json
.endif
.if ${PHP_MODNAME} == "ldap"
CONFIGURE_ARGS+=--with-ldap=${LOCALBASE}
USE_OPENLDAP= yes
. ifdef(WANT_OPENLDAP_SASL)
CONFIGURE_ARGS+=--with-ldap-sasl=${LOCALBASE}
. endif
.endif
.if ${PHP_MODNAME} == "mbstring"
CONFIGURE_ARGS+=--enable-mbstring \
--with-pcre-dir=${LOCALBASE}
OPTIONS_DEFINE= REGEX
OPTIONS_DEFAULT=REGEX
REGEX_DESC= Enable multibyte regex support
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
.endif
.if ${PHP_MODNAME} == "odbc"
LIB_DEPENDS+= libodbc.so:databases/unixODBC
CONFIGURE_ARGS+=--enable-odbc \
--with-unixODBC=${LOCALBASE}
.endif
.if ${PHP_MODNAME} == "openssl"
USES+= ssl
CONFIGURE_ARGS+= --with-openssl
CONFIGURE_ENV+= OPENSSL_CFLAGS="-I${OPENSSLINC}" \
OPENSSL_LIBS="-L${OPENSSLLIB} -lssl -lcrypto"
.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
.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
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 \
--with-pcre-dir=${LOCALBASE}
.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-readline=/usr
USES+= readline
.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 \
--with-pcre-dir=${LOCALBASE} \
--with-libxml-dir=${LOCALBASE}
USES+= pkgconfig
USE_GNOME= libxml2
.endif
.if ${PHP_MODNAME} == "snmp"
CONFIGURE_ARGS+=--with-snmp=${LOCALBASE} \
--with-openssl-dir=${OPENSSLBASE}
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 \
--with-libxml-dir=${LOCALBASE}
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 \
--with-libxml-dir=${LOCALBASE}
USES+= pkgconfig
USE_GNOME= libxml2
.endif
.if ${PHP_MODNAME} == "xmlreader"
CONFIGURE_ARGS+=--enable-xmlreader \
--with-libxml-dir=${LOCALBASE}
USE_GNOME= libxml2
.endif
.if ${PHP_MODNAME} == "xmlrpc"
CONFIGURE_ARGS+=--with-xmlrpc \
--with-libxml-dir=${LOCALBASE} \
--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 \
--with-libxml-dir=${LOCALBASE}
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+=--enable-zip \
--with-zlib-dir=/usr \
--with-pcre-dir=${LOCALBASE} \
--with-libzip=${LOCALBASE}
USES+= pkgconfig
.endif
.if ${PHP_MODNAME} == "zlib"
CONFIGURE_ARGS+=--with-zlib=/usr
USES+= pkgconfig
.endif
.include <bsd.port.options.mk>
.if ${PHP_MODNAME} == "dba"
. if empty(PORT_OPTIONS:MCDB)
CONFIGURE_ARGS+=--without-cdb
. endif
. if ${PORT_OPTIONS:MDB4}
CONFIGURE_ARGS+=--with-db4=${LOCALBASE}
USES+= bdb
WITH_BDB_HIGHEST= yes
. endif
. if ${PORT_OPTIONS:MGDBM}
LIB_DEPENDS+= libgdbm.so:databases/gdbm
CONFIGURE_ARGS+=--with-gdbm=${LOCALBASE}
. endif
. if ${PORT_OPTIONS:MQDBM}
LIB_DEPENDS+= libqdbm.so:databases/qdbm
CONFIGURE_ARGS+=--with-qdbm=${LOCALBASE}
. endif
. if ${PORT_OPTIONS:MTOKYO}
LIB_DEPENDS+= libtokyocabinet.so:databases/tokyocabinet
CONFIGURE_ARGS+=--with-tcadb=${LOCALBASE}
. endif
. if empty(PORT_OPTIONS:MINIFILE)
CONFIGURE_ARGS+=--disable-inifile
. endif
. if empty(PORT_OPTIONS:MFLATFILE)
CONFIGURE_ARGS+=--disable-flatfile
. endif
. if ${PORT_OPTIONS:MLMDB}
LIB_DEPENDS+= liblmdb.so:databases/lmdb
CONFIGURE_ARGS+= --with-lmdb=${LOCALBASE}
.endif
.endif
.if ${PHP_MODNAME} == "mysqli"
. if ${PORT_OPTIONS:MMYSQLND}
CONFIGURE_ARGS+=--with-mysqli=mysqlnd
. else
CONFIGURE_ARGS+=--with-mysqli=${LOCALBASE}/bin/mysql_config
USES+= mysql
. endif
.endif
.if ${PHP_MODNAME} == "pdo_mysql"
. if ${PORT_OPTIONS:MMYSQLND}
CONFIGURE_ARGS+=--with-pdo-mysql=mysqlnd
. else
CONFIGURE_ARGS+=--with-pdo-mysql=${LOCALBASE} \
--with-zlib-dir=/usr
USES+= mysql
. endif
.endif
.if ${PHP_MODNAME} == "gd"
. if ${PORT_OPTIONS:MJIS}
CONFIGURE_ARGS+=--enable-gd-jis-conv
. endif
. if ${PORT_OPTIONS:MWEBP}
LIB_DEPENDS+= libwebp.so:graphics/webp
CONFIGURE_ARGS+=--with-webp
. endif
. if ${PORT_OPTIONS:MX11}
USES+= xorg
USE_XORG= xpm
CONFIGURE_ARGS+=--with-xpm
. endif
.endif
.include <bsd.port.pre.mk>
.if ${PHP_MODNAME} == "imap"
. if ${PORT_OPTIONS:MPANDA}
LIB_DEPENDS+= libc-client4.so.10:mail/panda-cclient
. else
LIB_DEPENDS+= libc-client4.so.9:mail/cclient
. endif
.endif
.if ${PHP_MODNAME} == "mbstring"
. if ${PORT_OPTIONS:MREGEX}
LIB_DEPENDS+= libonig.so:devel/oniguruma
CONFIGURE_ARGS+=--with-onig=${LOCALBASE}
. else
CONFIGURE_ARGS+=--disable-mbregex
. endif
.endif
.if ${PHP_MODNAME} == "openssl" || ${PHP_MODNAME} == "sqlite3"
post-extract:
@${MV} ${WRKSRC}/config0.m4 ${WRKSRC}/config.m4
.endif
.if ${PHP_MODNAME} == "pdo_dblib"
. if ${PORT_OPTIONS:MMSSQL}
LIB_DEPENDS+= libsybdb.so:databases/freetds
. else
LIB_DEPENDS+= libct.so:databases/freetds
. endif
.endif
.if ${PHP_MODNAME} == "xml"
post-extract:
@${MKDIR} ${WRKSRC}/ext/xml
@${CP} ${WRKSRC}/expat_compat.h ${WRKSRC}/ext/xml
.endif
.if ${PHP_MODNAME} == "zlib"
post-extract:
@${MV} ${WRKSRC}/config0.m4 ${WRKSRC}/config.m4
.endif