aboutsummaryrefslogtreecommitdiff
path: root/Mk/Uses/pear.mk
diff options
context:
space:
mode:
Diffstat (limited to 'Mk/Uses/pear.mk')
-rw-r--r--Mk/Uses/pear.mk91
1 files changed, 58 insertions, 33 deletions
diff --git a/Mk/Uses/pear.mk b/Mk/Uses/pear.mk
index 2ba377e40b4c..860cc7a05b2d 100644
--- a/Mk/Uses/pear.mk
+++ b/Mk/Uses/pear.mk
@@ -4,7 +4,10 @@
#
# Feature: pear
# Usage: USES=pear
-# Valid ARGS: none
+# Valid ARGS: env
+#
+# - env : Only provide the environment variables, no fetch/build/install
+# targets.
#
# MAINTAINER= portmgr@FreeBSD.org
@@ -12,35 +15,51 @@
_INCLUDE_USES_PEAR_MK= yes
_USES_POST+= pear
-.if !empty(pear_ARGS)
-IGNORE+= USES=pear takes not arguments
-.endif
+_valid_pear_ARGS= env
+
+# Sanity check
+. for arg in ${pear_ARGS}
+. if empty(_valid_pear_ARGS:M${arg})
+IGNORE= Incorrect 'USES+= pear:${cmake_ARGS}' usage: argument [${arg}] is not recognized
+. endif
+. endfor
+php_ARGS+= flavors
+.include "${USESDIR}/php.mk"
+
+. if empty(pear_ARGS:Menv)
MASTER_SITES?= http://pear.php.net/get/
EXTRACT_SUFX?= .tgz
DIST_SUBDIR?= PEAR
-BUILD_DEPENDS+= pear:devel/pear
-RUN_DEPENDS+= pear:devel/pear
-
-.if !defined(USE_PHPIZE)
+. if !defined(USE_PHPIZE)
NO_BUILD= yes
-.endif
+. endif
+. endif
-.if defined(PEAR_CHANNEL) && ${PEAR_CHANNEL} != ""
-PKGNAMEPREFIX?= pear-${PEAR_CHANNEL}-
+BUILD_DEPENDS+= pear:devel/pear@${PHP_FLAVOR}
+RUN_DEPENDS+= pear:devel/pear@${PHP_FLAVOR}
+
+PEAR_PKGNAMEPREFIX= php${PHP_VER}-pear-
+
+. if defined(PEAR_CHANNEL) && ${PEAR_CHANNEL} != ""
+PEAR_${PEAR_CHANNEL:tu}_PKGNAMEPREFIX= php${PHP_VER}-pear-${PEAR_CHANNEL}-
+PKGNAMEPREFIX?= ${PEAR_${PEAR_CHANNEL:tu}_PKGNAMEPREFIX}
PEARPKGREF= ${PEAR_CHANNEL}/${PORTNAME}
-.else
-PKGNAMEPREFIX?= pear-
+PEAR_CHANNEL_VER?= >=0
+BUILD_DEPENDS+= ${PEAR_PKGNAMEPREFIX}channel-${PEAR_CHANNEL}${PEAR_CHANNEL_VER}:devel/pear-channel-${PEAR_CHANNEL}@${PHP_FLAVOR}
+RUN_DEPENDS+= ${PEAR_PKGNAMEPREFIX}channel-${PEAR_CHANNEL}${PEAR_CHANNEL_VER}:devel/pear-channel-${PEAR_CHANNEL}@${PHP_FLAVOR}
+. else
+PKGNAMEPREFIX?= ${PEAR_PKGNAMEPREFIX}
PEARPKGREF= ${PORTNAME}
-.endif
+. endif
-.if exists(${LOCALBASE}/bin/php-config)
+. if exists(${LOCALBASE}/bin/php-config)
PHP_BASE!= ${LOCALBASE}/bin/php-config --prefix
-.else
+. else
PHP_BASE= ${LOCALBASE}
-.endif
+. endif
PEAR= ${LOCALBASE}/bin/pear
LPEARDIR= share/pear
LPKGREGDIR= ${LPEARDIR}/packages/${PKGNAME}
@@ -58,32 +77,36 @@ EXAMPLESDIR= ${PHP_BASE}/${LEXAMPLESDIR}
SQLSDIR= ${PHP_BASE}/${LSQLSDIR}
SCRIPTFILESDIR= ${LOCALBASE}/bin
TESTSDIR= ${PHP_BASE}/${LTESTSDIR}
-.if defined(CATEGORY) && !empty(CATEGORY)
+. if defined(CATEGORY) && !empty(CATEGORY)
LINSTDIR= ${LPEARDIR}/${CATEGORY}
-.else
+. else
LINSTDIR= ${LPEARDIR}
-.endif
+. endif
INSTDIR= ${PHP_BASE}/${LINSTDIR}
SUB_LIST+= PKG_NAME=${PEARPKGREF}
-.if !defined(USE_PHPIZE) && !exists(${.CURDIR}/pkg-plist)
+. if empty(pear_ARGS:Menv)
+. if !defined(USE_PHPIZE) && !exists(${.CURDIR}/pkg-plist)
PLIST= ${WRKDIR}/PLIST
-.endif
+. endif
+PKGINSTALL?= ${PORTSDIR}/devel/pear/pear-install
+PKGDEINSTALL?= ${WRKDIR}/pear-deinstall
+. endif
+
PLIST_SUB+= PEARDIR=${LPEARDIR} PKGREGDIR=${LPKGREGDIR} \
TESTSDIR=${LTESTSDIR} INSTDIR=${LINSTDIR} SQLSDIR=${LSQLSDIR} \
SCRIPTFILESDIR=${LCRIPTSDIR}
-PKGINSTALL?= ${PORTSDIR}/devel/pear/pear-install
-PKGDEINSTALL?= ${WRKDIR}/pear-deinstall
-
.endif
.if defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_PEAR_POST_MK)
_INCLUDE_USES_PEAR_POST_MK= yes
+. if empty(pear_ARGS:Menv)
+
_USES_install+= 250:pear-pre-install
pear-pre-install:
-.if exists(${LOCALBASE}/lib/php.DIST_PHP) \
+. if exists(${LOCALBASE}/lib/php.DIST_PHP) \
|| exists(${PHP_BASE}/lib/php.DIST_PHP) \
|| exists(${LOCALBASE}/.PEAR.pkg) \
|| exists(${PHP_BASE}/.PEAR.pkg)
@@ -92,7 +115,7 @@ pear-pre-install:
@${ECHO_MSG} " Please deinstall your installed pear- ports."
@${ECHO_MSG} ""
@${FALSE}
-.endif
+. endif
DIRFILTER= ${SED} -En '\:^.*/[^/]*$$:s:^(.+)/[^/]*$$:\1:p' \
| ( while read r; do \
@@ -108,16 +131,16 @@ DIRFILTER= ${SED} -En '\:^.*/[^/]*$$:s:^(.+)/[^/]*$$:\1:p' \
done \
) | ${SORT} -ur
-.if !defined(USE_PHPIZE)
+. if !defined(USE_PHPIZE)
_USES_install+= 260:do-autogenerate-plist
do-autogenerate-plist:
@${ECHO_MSG} "===> Generating packing list with pear"
@${LN} -sf ${WRKDIR}/package.xml ${WRKSRC}/package.xml
@cd ${WRKSRC} && ${PEAR} install -n -f -P ${WRKDIR}/inst package.xml > /dev/null 2> /dev/null
-.for R in .channels .depdb .depdblock .filemap .lock .registry
+. for R in .channels .depdb .depdblock .filemap .lock .registry
@${RM} -r ${WRKDIR}/inst/${PREFIX}/${LPEARDIR}/${R}
@${RM} -r ${WRKDIR}/inst/${R}
-.endfor
+. endfor
@FILES=`cd ${WRKDIR}/inst && ${FIND} . -type f | ${CUT} -c 2- | \
${GREP} -v -E "^${PREFIX}/"` || exit 0; \
${ECHO_CMD} $${FILES}; if ${TEST} -n "$${FILES}"; then \
@@ -131,11 +154,11 @@ do-autogenerate-plist:
do-install:
@cd ${WRKSRC} && ${PEAR} install -n -f -P ${STAGEDIR} package.xml
# Clean up orphans re-generated by pear-install
-.for R in .channels .depdb .depdblock .filemap .lock .registry
+. for R in .channels .depdb .depdblock .filemap .lock .registry
@${RM} -r ${STAGEDIR}${PREFIX}/${LPEARDIR}/${R}
@${RM} -r ${STAGEDIR}/${R}
-.endfor
-.endif
+. endfor
+. endif
_USES_install+= 270:do-generate-deinstall-script
do-generate-deinstall-script:
@@ -149,4 +172,6 @@ pear-post-install:
show-depends: patch
@${PEAR} package-dependencies ${WRKDIR}/package.xml
+. endif
+
.endif