freebsd-ports/Mk/Uses/pear.mk

155 lines
4.4 KiB
Makefile
Raw Normal View History

2014-09-23 15:47:53 +02:00
# $FreeBSD$
#
# Use the PHP Extension and Application Repository
#
# Feature: pear
# Usage: USES=pear
# Valid ARGS: none
#
# MAINTAINER= portmgr@FreeBSD.org
.if !defined(_INCLUDE_USES_PEAR_MK)
_INCLUDE_USES_PEAR_MK= yes
_USES_POST+= pear
.if !empty(pear_ARGS)
2014-09-23 15:47:53 +02:00
IGNORE+= USES=pear takes not arguments
.endif
MASTER_SITES?= http://pear.php.net/get/ \
http://us.pear.php.net/get/ \
http://de.pear.php.net/get/
EXTRACT_SUFX?= .tgz
DIST_SUBDIR?= PEAR
BUILD_DEPENDS+= pear:devel/pear
RUN_DEPENDS+= pear:devel/pear
2014-09-23 15:47:53 +02:00
.if !defined(USE_PHPIZE)
NO_BUILD= yes
.endif
.if defined(PEAR_CHANNEL) && ${PEAR_CHANNEL} != ""
PKGNAMEPREFIX?= pear-${PEAR_CHANNEL}-
PEARPKGREF= ${PEAR_CHANNEL}/${PORTNAME}
.else
PKGNAMEPREFIX?= pear-
PEARPKGREF= ${PORTNAME}
.endif
.if exists(${LOCALBASE}/bin/php-config)
PHP_BASE!= ${LOCALBASE}/bin/php-config --prefix
.else
PHP_BASE= ${LOCALBASE}
.endif
PEAR= ${LOCALBASE}/bin/pear
LPEARDIR= share/pear
LPKGREGDIR= ${LPEARDIR}/packages/${PKGNAME}
LDATADIR= ${LPEARDIR}/data/${PORTNAME}
LDOCSDIR= share/doc/pear/${PORTNAME}
LEXAMPLESDIR= share/examples/pear/${PORTNAME}
LSQLSDIR= ${LPEARDIR}/sql/${PORTNAME}
LSCRIPTSDIR= bin
LTESTSDIR= ${LPEARDIR}/tests/${PORTNAME}
PEARDIR= ${PHP_BASE}/${LPEARDIR}
PKGREGDIR= ${PHP_BASE}/${LPKGREGDIR}
DATADIR= ${PHP_BASE}/${LDATADIR}
DOCSDIR= ${PHP_BASE}/${LDOCSDIR}
EXAMPLESDIR= ${PHP_BASE}/${LEXAMPLESDIR}
SQLSDIR= ${PHP_BASE}/${LSQLSDIR}
SCRIPTFILESDIR= ${LOCALBASE}/bin
TESTSDIR= ${PHP_BASE}/${LTESTSDIR}
.if defined(CATEGORY) && !empty(CATEGORY)
LINSTDIR= ${LPEARDIR}/${CATEGORY}
.else
LINSTDIR= ${LPEARDIR}
.endif
INSTDIR= ${PHP_BASE}/${LINSTDIR}
SUB_LIST+= PKG_NAME=${PEARPKGREF}
.if !defined(USE_PHPIZE) && !exists(${.CURDIR}/pkg-plist)
PLIST= ${WRKDIR}/PLIST
.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
_USES_install+= 250:pear-pre-install
2014-09-23 15:47:53 +02:00
pear-pre-install:
.if exists(${LOCALBASE}/lib/php.DIST_PHP) \
|| exists(${PHP_BASE}/lib/php.DIST_PHP) \
|| exists(${LOCALBASE}/.PEAR.pkg) \
|| exists(${PHP_BASE}/.PEAR.pkg)
@${ECHO_MSG} ""
@${ECHO_MSG} " Sorry, the PEAR structure has been modified;"
@${ECHO_MSG} " Please deinstall your installed pear- ports."
@${ECHO_MSG} ""
@${FALSE}
.endif
DIRFILTER= ${SED} -En '\:^.*/[^/]*$$:s:^(.+)/[^/]*$$:\1:p' \
| ( while read r; do \
C=1; \
while [ $$C = 1 ]; do \
echo $$r; \
if echo $$r | ${GREP} '/' > /dev/null; then \
r=`${DIRNAME} $$r`; \
else \
C=0; \
fi; \
done; \
done \
) | ${SORT} -ur
.if !defined(USE_PHPIZE)
_USES_install+= 260:do-autogenerate-plist
do-autogenerate-plist:
2014-09-23 15:47:53 +02:00
@${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
@${RM} -rf ${WRKDIR}/inst/${PREFIX}/${LPEARDIR}/${R}
Horde package update: comms/pear-Horde_ActiveSync 2.30.2 -> 2.30.6 devel/pear-Horde_Alarm 2.2.5 -> 2.2.6 devel/pear-Horde_Argv 2.0.11 -> 2.0.12 security/pear-Horde_Auth 2.1.10 -> 2.1.11 devel/pear-Horde_Autoloader 2.1.1 -> 2.1.2 www/pear-Horde_Browser 2.0.10 -> 2.0.11 devel/pear-Horde_Cache 2.5.0 -> 2.5.2 archivers/pear-Horde_Compress 2.1.3 -> 2.1.4 archivers/pear-Horde_Compress_Fast 1.1.0 -> 1.1.1 devel/pear-Horde_Constraint 2.0.2 -> 2.0.3 devel/pear-Horde_Controller 2.0.3 -> 2.0.4 devel/pear-Horde_Core 2.22.3 -> 2.22.5 security/pear-Horde_Crypt 2.6.1 -> 2.7.0 security/pear-Horde_Crypt_Blowfish 1.1.0 -> 1.1.1 www/pear-Horde_Css_Parser 1.0.7 -> 1.0.8 devel/pear-Horde_Data 2.1.3 -> 2.1.4 devel/pear-Horde_Date 2.1.1 -> 2.2.0 devel/pear-Horde_Date_Parser 2.0.4 -> 2.0.5 databases/pear-Horde_Db 2.3.0 -> 2.3.1 devel/pear-Horde_Exception 2.0.6 -> 2.0.7 www/pear-Horde_Feed 2.0.3 -> 2.0.4 www/pear-Horde_Form 2.0.11 -> 2.0.12 security/pear-Horde_Group 2.0.5 -> 2.1.0 databases/pear-Horde_HashTable 1.2.3 -> 1.2.4 devel/pear-Horde_History 2.3.5 -> 2.3.6 www/pear-Horde_Http 2.1.5 -> 2.1.6 devel/pear-Horde_Icalendar 2.1.2 -> 2.1.3 dns/pear-Horde_Idna 1.0.3 -> 1.0.4 graphics/pear-Horde_Image 2.3.3 -> 2.3.4 mail/pear-Horde_Imap_Client 2.29.4 -> 2.29.5 devel/pear-Horde_Injector 2.0.4 -> 2.0.5 devel/pear-Horde_Itip 2.1.0 -> 2.1.1 mail/pear-Horde_ListHeaders 1.2.2 -> 1.2.3 devel/pear-Horde_Lock 2.1.1 -> 2.1.2 sysutils/pear-Horde_Log 2.1.2 -> 2.1.3 devel/pear-Horde_LoginTasks 2.0.5 -> 2.0.6 mail/pear-Horde_Mail 2.6.2 -> 2.6.3 mail/pear-Horde_Mapi 1.0.5 -> 1.0.6 mail/pear-Horde_Mime 2.9.2 -> 2.9.3 mail/pear-Horde_Mime_Viewer 2.1.1 -> 2.1.2 devel/pear-Horde_Notification 2.0.3 -> 2.0.4 archivers/pear-Horde_Pack 1.0.5 -> 1.0.6 textproc/pear-Horde_Pdf 2.0.6 -> 2.0.7 devel/pear-Horde_Prefs 2.7.4 -> 2.7.5 devel/pear-Horde_Rdo 2.0.4 -> 2.0.5 www/pear-Horde_Routes 2.0.4 -> 2.0.5 net/pear-Horde_Rpc 2.1.5 -> 2.1.6 security/pear-Horde_Secret 2.0.5 -> 2.0.6 devel/pear-Horde_Serialize 2.0.4 -> 2.0.5 www/pear-Horde_SessionHandler 2.2.5 -> 2.2.7 security/pear-Horde_Share 2.0.7 -> 2.0.8 mail/pear-Horde_Smtp 1.9.1 -> 1.9.2 net/pear-Horde_Socket_Client 2.0.0 -> 2.1.0 textproc/pear-Horde_SpellChecker 2.1.2 -> 2.1.3 devel/pear-Horde_Stream 1.6.2 -> 1.6.3 devel/pear-Horde_Stream_Filter 2.0.3 -> 2.0.4 devel/pear-Horde_Stream_Wrapper 2.1.2 -> 2.1.3 devel/pear-Horde_Support 2.1.4 -> 2.1.5 comms/pear-Horde_SyncMl 2.0.5 -> 2.0.6 www/pear-Horde_Template 2.0.2 -> 2.0.3 textproc/pear-Horde_Text_Diff 2.1.1 -> 2.1.2 textproc/pear-Horde_Text_Filter 2.3.2 -> 2.3.3 textproc/pear-Horde_Text_Flowed 2.0.2 -> 2.0.3 devel/pear-Horde_Timezone 1.0.9 -> 1.0.10 devel/pear-Horde_Token 2.0.7 -> 2.0.8 devel/pear-Horde_Translation 2.2.0 -> 2.2.1 net/pear-Horde_Url 2.2.4 -> 2.2.5 devel/pear-Horde_Util 2.5.6 -> 2.5.7 sysutils/pear-Horde_Vfs 2.3.0 -> 2.3.1 devel/pear-Horde_View 2.0.5 -> 2.0.6 textproc/pear-Horde_Xml_Element 2.0.3 -> 2.0.4 textproc/pear-Horde_Xml_Wbxml 2.0.2 -> 2.0.3 ftp/horde-gollem 3.0.6 -> 3.0.7 www/horde-base 5.2.8 -> 5.2.9 mail/horde-imp 6.2.11 -> 6.2.12 mail/horde-ingo 3.2.7 -> 3.2.8 deskutils/horde-kronolith 4.2.11 -> 4.2.12 deskutils/horde-mnemo 4.2.8 -> 4.2.9 deskutils/horde-nag 4.2.6 -> 4.2.7 devel/horde-timeobjects 2.1.0 -> 2.1.1 www/horde-trean 1.1.3 -> 1.1.4 mail/horde-turba 4.2.11 -> 4.2.12 mail/horde-webmail 5.2.11 -> 5.2.12 devel/horde-whups 3.0.5 -> 3.0.6
2016-02-02 23:56:26 +01:00
@${RM} -rf ${WRKDIR}/inst/${R}
2014-09-23 15:47:53 +02:00
.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 \
${ECHO_CMD} "Cannot generate packing list: package files outside PREFIX"; \
exit 1; fi;
@${ECHO_CMD} "${LPKGREGDIR}/package.xml" > ${PLIST}
# pkg_install needs to escape $ in directory name while pkg does not
@cd ${WRKDIR}/inst/${PREFIX} && ${FIND} . -type f | ${SORT} \
| ${CUT} -c 3- >> ${PLIST}
do-install:
2014-09-23 15:47:53 +02:00
@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
@${RM} -rf ${STAGEDIR}${PREFIX}/${LPEARDIR}/${R}
@${RM} -rf ${STAGEDIR}/${R}
2014-09-23 15:47:53 +02:00
.endfor
.endif
_USES_install+= 270:do-generate-deinstall-script
2014-09-23 15:47:53 +02:00
do-generate-deinstall-script:
@${SED} ${_SUB_LIST_TEMP} -e '/^@comment /d' ${PORTSDIR}/devel/pear/pear-deinstall.in > ${WRKDIR}/pear-deinstall
_USES_install+= 550:pear-post-install
2014-09-23 15:47:53 +02:00
pear-post-install:
@${MKDIR} ${STAGEDIR}${PKGREGDIR}
@${INSTALL_DATA} ${WRKDIR}/package.xml ${STAGEDIR}${PKGREGDIR}
show-depends: patch
@${PEAR} package-dependencies ${WRKDIR}/package.xml
.endif