summaryrefslogtreecommitdiff
path: root/devel/pear/bsd.pear.mk
diff options
context:
space:
mode:
Diffstat (limited to 'devel/pear/bsd.pear.mk')
-rw-r--r--devel/pear/bsd.pear.mk239
1 files changed, 239 insertions, 0 deletions
diff --git a/devel/pear/bsd.pear.mk b/devel/pear/bsd.pear.mk
new file mode 100644
index 000000000000..f633c9b0199b
--- /dev/null
+++ b/devel/pear/bsd.pear.mk
@@ -0,0 +1,239 @@
+# $FreeBSD$
+
+# Common code for pear- ports.
+
+MASTER_SITES= http://pear.php.net/get/
+PKGNAMEPREFIX= pear-
+EXTRACT_SUFX= .tgz
+DIST_SUBDIR= PEAR
+
+USE_REINPLACE= yes
+
+.if !defined(USE_PHPIZE)
+NO_BUILD= yes
+.endif
+
+.if exists(${LOCALBASE}/bin/php-config)
+PHP_BASE!= ${LOCALBASE}/bin/php-config --prefix
+.else
+PHP_BASE= ${LOCALBASE}
+.endif
+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}
+
+.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= ${PORTSDIR}/devel/pear/pear-deinstall
+
+FILES?=
+DATA?=
+DOCS?=
+EXAMPLES?=
+SQLS?=
+SCRIPTFILES?=
+TESTS?=
+_DATADIR?= data
+_DOCSDIR?= docs
+_EXAMPLESDIR?= examples
+_SQLSDIR?= sql
+_TESTSDIR?= tests
+
+# this is an easy way to eliminate duplicate entries in a variable :)
+# if someone knows how to achieve the result without this terrible
+# hack, please tell me!
+.for v in FILES DOCS TESTS EXAMPLES SQLS SCRIPTFILES DATA
+X${v}DIRS= ${${v}:M*/*:C;/[^/]+$;;}
+. for XD in ${X${v}DIRS}
+ALREADYTHERE= 0
+. for D in ${${v}DIRS}
+DD= ${D}
+. if ${DD} == ${XD}
+ALREADYTHERE= 1
+. endif
+. endfor
+. if ${ALREADYTHERE} == 0
+${v}DIRS+= ${XD}
+. endif
+. endfor
+.endfor
+
+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' | ${SORT} -ru
+
+.if !defined(USE_PHPIZE)
+do-generate-plist:
+. if !exists(${.CURDIR}/pkg-plist)
+ @${ECHO_MSG} "===> Generating packing list"; \
+ (for file in ${FILES}; do echo "${LINSTDIR}/$${file}"; done; \
+ for file in ${TESTS}; do echo "${LTESTSDIR}/$${file}"; done; \
+ for file in ${DATA}; do echo "${LDATADIR}/$${file}"; done; \
+ for file in ${SQLS}; do echo "${LSQLSDIR}/$${file}"; done; \
+ for file in ${SCRIPTFILES}; do echo "${LSCRIPTSDIR}/$${file}"; done; \
+ for file in ${DOCS}; do echo "%%PORTDOCS%%${LDOCSDIR}/$${file}"; done; \
+ for file in ${EXAMPLES}; do echo "%%PORTDOCS%%${LEXAMPLESDIR}/$${file}"; done; \
+ echo "${LPKGREGDIR}/package.xml"; \
+ for d in ${FILES} ${FILES:H}; do echo $${d}; done | ${DIRFILTER} | \
+ while read dir; do echo "@dirrm ${LINSTDIR}/$${dir}"; done; \
+ for d in ${TESTS}; do echo $${d}; done | ${DIRFILTER} | \
+ while read dir; do echo "@dirrm ${LTESTSDIR}/$${dir}"; done; \
+ for d in ${DATA}; do echo $${d}; done | ${DIRFILTER} | \
+ while read dir; do echo "@dirrm ${LDATADIR}/$${dir}"; done; \
+ for d in ${SQLS}; do echo $${d}; done | ${DIRFILTER} | \
+ while read dir; do echo "@dirrm ${LSQLSDIR}/$${dir}"; done; \
+ for d in ${DOCS}; do echo $${d}; done | ${DIRFILTER} | \
+ while read dir; do echo "%%PORTDOCS%%@dirrm ${LDOCSDIR}/$${dir}"; done; \
+ for d in ${EXAMPLES}; do echo $${d}; done | ${DIRFILTER} | \
+ while read dir; do echo "%%PORTDOCS%%@dirrm ${LEXAMPLESDIR}/$${dir}"; done; \
+ if [ -n "${TESTS}" ]; then echo "@dirrm ${LTESTSDIR}"; fi; \
+ if [ -n "${DATA}" ]; then echo "@dirrm ${LDATADIR}"; fi; \
+ if [ -n "${SQLS}" ]; then echo "@dirrm ${LSQLSDIR}"; fi; \
+ if [ -n "${DOCS}" ]; then echo "%%PORTDOCS%%@dirrm ${LDOCSDIR}"; fi; \
+ if [ -n "${EXAMPLES}" ]; then echo "%%PORTDOCS%%@dirrm ${LEXAMPLESDIR}"; fi; \
+ echo "@dirrm ${LPKGREGDIR}"; \
+ echo "@unexec rmdir %D/${LINSTDIR} 2> /dev/null || true"; \
+ echo "@unexec rmdir %D/${LINSTDIR:H} 2> /dev/null || true"; \
+ echo "@unexec rmdir %D/${LPEARDIR}/.registry 2> /dev/null || true"; \
+ echo "@unexec rmdir %D/${LPEARDIR}/packages 2> /dev/null || true"; \
+ echo "@unexec rmdir %D/${LPEARDIR} 2> /dev/null || true"; \
+ echo "@unexec rmdir %D/${LDOCSDIR:H} 2> /dev/null || true"; \
+ echo "@unexec rmdir %D/${LEXAMPLESDIR:H} 2> /dev/null || true"; \
+ echo "@unexec rmdir %D/${LTESTSDIR:H} 2> /dev/null || true"; \
+ echo "@unexec rmdir %D/${LDATADIR:H} 2> /dev/null || true"; \
+ echo "@unexec rmdir %D/${LSCRIPTSDIR:H} 2> /dev/null || true"; \
+ echo "@unexec rmdir %D/${LSQLSDIR:H} 2> /dev/null || true") > ${PLIST}
+. endif
+
+. for t in files docs tests sqls scriptfiles examples data
+. if !target(do-install-${t}-msg)
+do-install-${t}-msg: .USE
+. endif
+. endfor
+
+pre-install: do-generate-plist
+do-install: do-install-files do-install-docs do-install-tests do-install-sqls \
+ do-install-scriptfiles do-install-examples do-install-data
+
+do-install-files: do-install-files-msg
+ @${MKDIR} ${INSTDIR}
+. for dir in ${FILESDIRS}
+ @${MKDIR} ${INSTDIR}/${dir}
+. endfor
+. for file in ${FILES}
+ @${INSTALL_DATA} ${WRKSRC}/${file} ${INSTDIR}/${file}
+. endfor
+
+do-install-docs: do-install-docs-msg
+. if !defined(NOPORTDOCS) && !empty(DOCS)
+ @${ECHO_MSG} "===> Installing documentation in ${DOCSDIR}."
+ @${MKDIR} ${DOCSDIR}
+. for dir in ${DOCSDIRS}
+ @${MKDIR} ${DOCSDIR}/${dir}
+. endfor
+. for file in ${DOCS}
+ @${INSTALL_DATA} ${WRKSRC}/${_DOCSDIR}/${file} ${DOCSDIR}/${file}
+. endfor
+. endif
+
+do-install-tests: do-install-tests-msg
+. if !empty(TESTS)
+ @${ECHO_MSG} "===> Installing tests in ${TESTSDIR}."
+ @${MKDIR} ${TESTSDIR}
+. for dir in ${TESTSDIRS}
+ @${MKDIR} ${TESTSDIR}/${dir}
+. endfor
+. for file in ${TESTS}
+ @${INSTALL_DATA} ${WRKSRC}/${_TESTSDIR}/${file} ${TESTSDIR}/${file}
+. endfor
+. endif
+
+do-install-data: do-install-data-msg
+. if !empty(DATA)
+ @${ECHO_MSG} "===> Installing data in ${DATADIR}."
+ @${MKDIR} ${DATADIR}
+. for dir in ${DATADIRS}
+ @${MKDIR} ${DATADIR}/${dir}
+. endfor
+. for file in ${DATA}
+ @${INSTALL_DATA} ${WRKSRC}/${_DATADIR}/${file} ${DATADIR}/${file}
+. endfor
+. endif
+
+do-install-sqls: do-install-sqls-msg
+. if !empty(SQLS)
+ @${ECHO_MSG} "===> Installing sqls in ${SQLSDIR}."
+ @${MKDIR} ${SQLSDIR}
+. for dir in ${SQLSDIRS}
+ @${MKDIR} ${SQLSDIR}/${dir}
+. endfor
+. for file in ${SQLS}
+ @${INSTALL_DATA} ${WRKSRC}/${_SQLSDIR}/${file} ${SQLSDIR}/${file}
+. endfor
+. endif
+
+do-install-scriptfiles: do-install-scriptfiles-msg
+. if !empty(SCRIPTFILES)
+ @${ECHO_MSG} "===> Installing scripts in ${SCRIPTFILESDIR}."
+. for file in ${SCRIPTFILES}
+ @${CP} ${WRKSRC}/pear-${file} ${WRKSRC}/${file}
+ @${REINPLACE_CMD} -e "s|@php_bin@|${SCRIPTFILESDIR}/php|g" ${WRKSRC}/${file}
+ @${REINPLACE_CMD} -e "s|@php_dir@|${PREFIX}/lib/php|g" ${WRKSRC}/${file}
+ @${REINPLACE_CMD} -e "s|@include_path@|${PREFIX}/${LPEARDIR}|g" ${WRKSRC}/${file}
+ @${INSTALL_SCRIPT} ${WRKSRC}/${file} ${SCRIPTFILESDIR}/${file}
+. endfor
+. endif
+
+do-install-examples: do-install-examples-msg
+. if !defined(NOPORTDOCS) && !empty(EXAMPLES)
+ @${ECHO_MSG} "===> Installing examples in ${EXAMPLESDIR}."
+ @${MKDIR} ${EXAMPLESDIR}
+. for dir in ${EXAMPLESDIRS}
+ @${MKDIR} ${EXAMPLESDIR}/${dir}
+. endfor
+. for file in ${EXAMPLES}
+ @${INSTALL_DATA} ${WRKSRC}/${_EXAMPLESDIR}/${file} ${EXAMPLESDIR}/${file}
+. endfor
+. endif
+.endif
+
+post-install:
+ @${MKDIR} ${PKGREGDIR}
+ @${INSTALL_DATA} ${WRKDIR}/package.xml ${PKGREGDIR}
+ @${SETENV} PKG_PREFIX=${PREFIX} \
+ ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL