version 1.87, 1999/04/20 18:09:37 |
version 1.88, 1999/04/20 18:22:56 |
|
|
# Typical use is (from the top level of the ports tree) |
# Typical use is (from the top level of the ports tree) |
# make ECHO_MSG=: list-distfiles | tee some-file |
# make ECHO_MSG=: list-distfiles | tee some-file |
# obj - pre-build ${WRKDIR} -> ${WRKOBJDIR}/${PORTSUBDIR} links |
# obj - pre-build ${WRKDIR} -> ${WRKOBJDIR}/${PORTSUBDIR} links |
|
# print-depends - print all dependencies for the given package |
# |
# |
# Default sequence for "all" is: fetch checksum extract patch configure build |
# Default sequence for "all" is: fetch checksum extract patch configure build |
# |
# |
|
|
|
|
PKG_CMD?= /usr/sbin/pkg_create |
PKG_CMD?= /usr/sbin/pkg_create |
PKG_DELETE?= /usr/sbin/pkg_delete |
PKG_DELETE?= /usr/sbin/pkg_delete |
|
SORT_DEPENDS?=tsort|tail +2|tail -r |
|
|
.if !defined(PKG_ARGS) |
.if !defined(PKG_ARGS) |
PKG_ARGS= -v -c ${COMMENT} -d ${DESCR} -f ${PLIST} -p ${PREFIX} -P "`${MAKE} package-depends|sort -u`" |
PKG_ARGS= -v -c ${COMMENT} -d ${DESCR} -f ${PLIST} -p ${PREFIX} -P "`${MAKE} package-depends|${SORT_DEPENDS}`" |
.if exists(${PKGDIR}/INSTALL) |
.if exists(${PKGDIR}/INSTALL) |
PKG_ARGS+= -i ${PKGDIR}/INSTALL |
PKG_ARGS+= -i ${PKGDIR}/INSTALL |
.endif |
.endif |
|
|
.endif |
.endif |
.if defined(SUPPATCHFILES) |
.if defined(SUPPATCHFILES) |
PATCHFILES+=${SUPPATCHFILES} |
PATCHFILES+=${SUPPATCHFILES} |
.endif |
|
.endif |
.endif |
|
.endif |
ALLFILES?= ${DISTFILES} ${PATCHFILES} |
ALLFILES?= ${DISTFILES} ${PATCHFILES} |
|
|
.if defined(IGNOREFILES) |
.if defined(IGNOREFILES) |
|
|
# You probably won't need to touch these |
# You probably won't need to touch these |
################################################################ |
################################################################ |
|
|
HTMLIFY= ${SED} -e 's/&/\&/g' -e 's/>/\>/g' -e 's/</\</g' |
|
|
|
# Set to YES by the README.html target (and passed via depends-list |
# The README.html target needs full information (this is passed via |
# and package-depends) |
# depends-list and package-depends) |
.ifndef PACKAGE_NAME_AS_LINK |
.ifndef FULL_PACKAGE_NAME |
PACKAGE_NAME_AS_LINK=NO |
FULL_PACKAGE_NAME=NO |
.endif # PACKAGE_NAME_AS_LINK |
.endif |
|
|
|
|
# Nobody should want to override this unless PKGNAME is simply bogus. |
# Nobody should want to override this unless PKGNAME is simply bogus. |
|
|
.if !target(package-name) |
.if !target(package-name) |
package-name: |
package-name: |
.if (${PACKAGE_NAME_AS_LINK} == "YES") |
.if (${FULL_PACKAGE_NAME} == "YES") |
@${ECHO} '<A HREF="../../'`${MAKE} package-path | ${HTMLIFY}`'/README.html">'`echo ${PKGNAME} | ${HTMLIFY}`'</A>' |
@${ECHO} `${MAKE} package-path`/${PKGNAME} |
.else |
.else |
@${ECHO} '${PKGNAME}' |
@${ECHO} '${PKGNAME}' |
.endif # PACKAGE_NAME_AS_LINK != "" |
.endif |
.endif # !target(package-name) |
.endif |
|
|
.if !target(package-path) |
.if !target(package-path) |
package-path: |
package-path: |
@pwd | sed s@`cd ${PORTSDIR} ; pwd`/@@g |
@pwd | sed s@`cd ${PORTSDIR} ; pwd`/@@g |
.endif |
.endif |
|
|
# Show (recursively) all the packages this package depends on. |
# Build (recursively) a list of package dependencies suitable for tsort |
|
|
.if !target(package-depends) |
.if !target(package-depends) |
package-depends: |
package-depends: |
@for dir in `${ECHO} ${LIB_DEPENDS} ${RUN_DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/^[^:]*://' -e 's/:.*//' | sort -u` `${ECHO} ${DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/:.*//' | sort -u`; do \ |
@for dir in `${ECHO} ${LIB_DEPENDS} ${RUN_DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/^[^:]*://' -e 's/:.*//' | sort -u` `${ECHO} ${DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/:.*//' | sort -u`; do \ |
if [ -d $$dir ]; then \ |
if [ -d $$dir ]; then \ |
(cd $$dir ; ${MAKE} package-name package-depends PACKAGE_NAME_AS_LINK=${PACKAGE_NAME_AS_LINK}); \ |
${MAKE} ECHO='${ECHO} -n' package-name FULL_PACKAGE_NAME=${FULL_PACKAGE_NAME}; \ |
|
${ECHO} -n " "; \ |
|
(cd $$dir ; ${MAKE} package-name package-depends FULL_PACKAGE_NAME=${FULL_PACKAGE_NAME}); \ |
else \ |
else \ |
${ECHO_MSG} "Warning: \"$$dir\" non-existent -- @pkgdep registration incomplete" >&2; \ |
${ECHO_MSG} "Warning: \"$$dir\" non-existent -- @pkgdep registration incomplete" >&2; \ |
fi; \ |
fi; \ |
|
|
.if !target(depends-list) |
.if !target(depends-list) |
depends-list: |
depends-list: |
@for dir in `${ECHO} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/^[^:]*://' -e 's/:.*//' | sort -u` `${ECHO} ${DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/:.*//' | sort -u`; do \ |
@for dir in `${ECHO} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/^[^:]*://' -e 's/:.*//' | sort -u` `${ECHO} ${DEPENDS} | ${TR} '\040' '\012' | ${SED} -e 's/:.*//' | sort -u`; do \ |
(cd $$dir; ${MAKE} package-name depends-list PACKAGE_NAME_AS_LINK=${PACKAGE_NAME_AS_LINK}; ); \ |
if [ -d $$dir ]; then \ |
|
${MAKE} ECHO='${ECHO} -n' package-name FULL_PACKAGE_NAME=${FULL_PACKAGE_NAME}; \ |
|
${ECHO} -n " "; \ |
|
(cd $$dir ; ${MAKE} package-name depends-list FULL_PACKAGE_NAME=${FULL_PACKAGE_NAME}); \ |
|
else \ |
|
${ECHO_MSG} "Warning: \"$$dir\" non-existent" >&2; \ |
|
fi; \ |
done |
done |
.endif |
.endif |
|
|
|
|
${ECHO} -n "|${MAINTAINER}|${CATEGORIES}|"; \ |
${ECHO} -n "|${MAINTAINER}|${CATEGORIES}|"; \ |
case "A${FETCH_DEPENDS}B${BUILD_DEPENDS}C${LIB_DEPENDS}D${DEPENDS}E" in \ |
case "A${FETCH_DEPENDS}B${BUILD_DEPENDS}C${LIB_DEPENDS}D${DEPENDS}E" in \ |
ABCDE) ;; \ |
ABCDE) ;; \ |
*) cd ${.CURDIR} && ${ECHO} -n `make depends-list|sort -u`;; \ |
*) cd ${.CURDIR} && ${ECHO} -n `make depends-list|${SORT_DEPENDS}`;; \ |
esac; \ |
esac; \ |
${ECHO} -n "|"; \ |
${ECHO} -n "|"; \ |
case "A${RUN_DEPENDS}B${LIB_DEPENDS}C${DEPENDS}D" in \ |
case "A${RUN_DEPENDS}B${LIB_DEPENDS}C${DEPENDS}D" in \ |
ABCD) ;; \ |
ABCD) ;; \ |
*) cd ${.CURDIR} && ${ECHO} -n `make package-depends|sort -u`;; \ |
*) cd ${.CURDIR} && ${ECHO} -n `make package-depends|${SORT_DEPENDS}`;; \ |
esac; \ |
esac; \ |
${ECHO} -n "|"; \ |
${ECHO} -n "|"; \ |
if [ "${ONLY_FOR_ARCHS}" = "" ]; then \ |
if [ "${ONLY_FOR_ARCHS}" = "" ]; then \ |
|
|
${ECHO} "" |
${ECHO} "" |
.endif |
.endif |
|
|
|
README_NAME?= ${TEMPLATES}/README.port |
|
|
.if !target(readmes) |
.if !target(readmes) |
readmes: readme |
readmes: readme |
.endif |
.endif |
|
|
.if !target(readme) |
.if !target(readme) |
readme: |
readme: |
@rm -f README.html |
@rm -f README.html |
@cd ${.CURDIR} && make README.html |
@cd ${.CURDIR} && make README_NAME=${README_NAME} README.html |
.endif |
.endif |
|
|
README_NAME= ${TEMPLATES}/README.port |
|
|
|
|
HTMLIFY= ${SED} -e 's/&/\&/g' -e 's/>/\>/g' -e 's/</\</g' |
|
|
|
.if make(README.html) || make(readme) || make(readmes) |
|
PKGDEPTH!=${MAKE} package-path|${SED} -e 's|[^./][^/]*|..|g' |
|
.endif |
|
|
README.html: |
README.html: |
@${ECHO_MSG} "===> Creating README.html for ${PKGNAME}" |
@${ECHO_MSG} "===> Creating README.html for ${PKGNAME}" |
@${MAKE} depends-list PACKAGE_NAME_AS_LINK=YES >> $@.tmp1 |
@${ECHO} ${PKGNAME} | ${HTMLIFY} > $@.tmp3 |
@[ -s $@.tmp1 ] || echo "(none)" >> $@.tmp1 |
@${MAKE} depends-list FULL_PACKAGE_NAME=YES | ${SORT_DEPENDS}>$@.tmp1 |
@${MAKE} package-depends PACKAGE_NAME_AS_LINK=YES >> $@.tmp2 |
@${MAKE} package-depends FULL_PACKAGE_NAME=YES | ${SORT_DEPENDS} >$@.tmp2 |
@[ -s $@.tmp2 ] || echo "(none)" >> $@.tmp2 |
.for I in 1 2 |
@${ECHO} ${PKGNAME} | ${HTMLIFY} >> $@.tmp3 |
@if [ -s $@.tmp$I ]; then \ |
|
(${CAT} $@.tmp$I | while read n; do \ |
|
j=`dirname $$n|${HTMLIFY}`; k=`basename $$n|${HTMLIFY}`; \ |
|
echo "<A HREF=\"${PKGDEPTH}/$$j/README.html\">$$k</A>"; \ |
|
done;) >$@.tmp$Ia; \ |
|
else \ |
|
echo "(none)" > $@.tmp$Ia; \ |
|
fi |
|
.endfor |
@${CAT} ${README_NAME} | \ |
@${CAT} ${README_NAME} | \ |
${SED} -e 's|%%PORT%%|'"`${MAKE} package-path | ${HTMLIFY}`"'|g' \ |
${SED} -e 's|%%PORT%%|'"`${MAKE} package-path | ${HTMLIFY}`"'|g' \ |
-e '/%%PKG%%/r$@.tmp3' \ |
-e '/%%PKG%%/r$@.tmp3' \ |
-e '/%%PKG%%/d' \ |
-e '/%%PKG%%/d' \ |
-e '/%%COMMENT%%/r${PKGDIR}/COMMENT' \ |
-e '/%%COMMENT%%/r${PKGDIR}/COMMENT' \ |
-e '/%%COMMENT%%/d' \ |
-e '/%%COMMENT%%/d' \ |
-e '/%%BUILD_DEPENDS%%/r$@.tmp1' \ |
-e '/%%BUILD_DEPENDS%%/r$@.tmp1a' \ |
-e '/%%BUILD_DEPENDS%%/d' \ |
-e '/%%BUILD_DEPENDS%%/d' \ |
-e '/%%RUN_DEPENDS%%/r$@.tmp2' \ |
-e '/%%RUN_DEPENDS%%/r$@.tmp2a' \ |
-e '/%%RUN_DEPENDS%%/d' \ |
-e '/%%RUN_DEPENDS%%/d' \ |
>> $@ |
>> $@ |
@rm -f $@.tmp1 $@.tmp2 $@.tmp3 |
@rm -f $@.tmp* |
|
|
.if !target(print-depends-list) |
.if !target(print-depends-list) |
print-depends-list: |
print-depends-list: |
.if defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || \ |
.if defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || \ |
defined(LIB_DEPENDS) || defined(DEPENDS) |
defined(LIB_DEPENDS) || defined(DEPENDS) |
@${ECHO} -n 'This port requires package(s) "' |
@${ECHO} -n 'This port requires package(s) "' |
@${ECHO} -n `make depends-list | sort -u` |
@${ECHO} -n `make FULL_PACKAGE_NAME=${FULL_PACKAGE_NAME} depends-list | ${SORT_DEPENDS}` |
@${ECHO} '" to build.' |
@${ECHO} '" to build.' |
.endif |
.endif |
.endif |
.endif |
|
|
print-package-depends: |
print-package-depends: |
.if defined(RUN_DEPENDS) || defined(LIB_DEPENDS) || defined(DEPENDS) |
.if defined(RUN_DEPENDS) || defined(LIB_DEPENDS) || defined(DEPENDS) |
@${ECHO} -n 'This port requires package(s) "' |
@${ECHO} -n 'This port requires package(s) "' |
@${ECHO} -n `make package-depends | sort -u` |
@${ECHO} -n `make FULL_PACKAGE_NAME=${FULL_PACKAGE_NAME} package-depends | ${SORT_DEPENDS}` |
@${ECHO} '" to run.' |
@${ECHO} '" to run.' |
.endif |
.endif |
.endif |
.endif |
|
|
|
.if !target(print-depends) |
|
print-depends: |
|
@${MAKE} FULL_PACKAGE_NAME=YES print-depends-list print-package-depends |
|
.endif |
|
|
# Fake installation of package so that user can pkg_delete it later. |
# Fake installation of package so that user can pkg_delete it later. |
# Also, make sure that an installed port is recognized correctly in |
# Also, make sure that an installed port is recognized correctly in |
# accordance to the @pkgdep directive in the packing lists |
# accordance to the @pkgdep directive in the packing lists |
|
|
if [ -f ${PKGDIR}/MESSAGE ]; then \ |
if [ -f ${PKGDIR}/MESSAGE ]; then \ |
${CP} ${PKGDIR}/MESSAGE ${PKG_DBDIR}/${PKGNAME}/+DISPLAY; \ |
${CP} ${PKGDIR}/MESSAGE ${PKG_DBDIR}/${PKGNAME}/+DISPLAY; \ |
fi; \ |
fi; \ |
for dep in `make package-depends ECHO_MSG=${TRUE} | sort -u`; do \ |
for dep in `make package-depends ECHO_MSG=${TRUE} | ${SORT_DEPENDS}`; do \ |
if [ -d ${PKG_DBDIR}/$$dep ]; then \ |
if [ -d ${PKG_DBDIR}/$$dep ]; then \ |
if ! ${GREP} ^${PKGNAME}$$ ${PKG_DBDIR}/$$dep/+REQUIRED_BY \ |
if ! ${GREP} ^${PKGNAME}$$ ${PKG_DBDIR}/$$dep/+REQUIRED_BY \ |
>/dev/null 2>&1; then \ |
>/dev/null 2>&1; then \ |
|
|
pre-extract pre-fetch pre-install pre-package pre-patch \ |
pre-extract pre-fetch pre-install pre-package pre-patch \ |
pre-repackage print-depends-list print-package-depends readme \ |
pre-repackage print-depends-list print-package-depends readme \ |
readmes real-extract real-fetch real-install reinstall \ |
readmes real-extract real-fetch real-install reinstall \ |
repackage run-depends tags uninstall fetch-all |
repackage run-depends tags uninstall fetch-all print-depends |