summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorasami <asami@FreeBSD.org>1996-04-01 11:13:00 +0000
committerasami <asami@FreeBSD.org>1996-04-01 11:13:00 +0000
commit1f5b975f613bfbc0cc1cac3902605a3701cda948 (patch)
treee76c5c48b11cd4243cffa79f4f2a148a9c01107b /share
parentcf73073520cca2ad9243944295ca9fd33bef8acb (diff)
downloadFreeBSD-src-1f5b975f613bfbc0cc1cac3902605a3701cda948.zip
FreeBSD-src-1f5b975f613bfbc0cc1cac3902605a3701cda948.tar.gz
Thanks for the overwhelming response (which can be only summarized by the
word: "zilch"). I guess the only way to get people try and comment on these kind of things is to shove it down their throat.... ;) Anyway, here's a set of changes required for auto-generation of READMEs in ports directories. Necessary changes and additions of templates to the ports tree will follow shortly. Eventually I'll commit all the generated READMEs to the tree, but that will be in the rather distant future. For now, I encourage anyone with a -current systam and a matching ports tree to do a "make readmes" at the top level and see what they get. Next step will be to add pkg/{COMMENT,DESCR} to all the categories.
Diffstat (limited to 'share')
-rw-r--r--share/mk/bsd.port.mk46
-rw-r--r--share/mk/bsd.port.subdir.mk45
2 files changed, 87 insertions, 4 deletions
diff --git a/share/mk/bsd.port.mk b/share/mk/bsd.port.mk
index 81440f4..d83674b 100644
--- a/share/mk/bsd.port.mk
+++ b/share/mk/bsd.port.mk
@@ -3,7 +3,7 @@
# bsd.port.mk - 940820 Jordan K. Hubbard.
# This file is in the public domain.
#
-# $Id: bsd.port.mk,v 1.197 1996/03/31 10:02:09 asami Exp $
+# $Id: bsd.port.mk,v 1.198 1996/03/31 10:35:26 asami Exp $
#
# Please view me with 4 column tabs!
@@ -198,6 +198,7 @@ LOCALBASE?= /usr/local
X11BASE?= /usr/X11R6
DISTDIR?= ${PORTSDIR}/distfiles/${DIST_SUBDIR}
PACKAGES?= ${PORTSDIR}/packages
+TEMPLATES?= ${PORTSDIR}/templates
.if !defined(NO_WRKDIR)
WRKDIR?= ${.CURDIR}/work
.else
@@ -323,6 +324,7 @@ PKG_SUFX?= .tgz
PKG_DBDIR?= /var/db/pkg
ECHO?= /bin/echo
+CAT+= /bin/cat
CP?= /bin/cp
ENV?= /usr/bin/env
RM?= /bin/rm
@@ -974,10 +976,8 @@ checksum: fetch
.if !target(package-name)
package-name:
-.if !defined(NO_PACKAGE)
@${ECHO} ${PKGNAME}
.endif
-.endif
# Show (recursively) all the packages this package depends on.
@@ -1172,6 +1172,46 @@ describe:
@${ECHO} ""
.endif
+.if !target(readmes)
+readmes: readme
+.endif
+
+.if !target(readme)
+readme:
+ @rm -f README.html
+ @make README.html
+.endif
+
+README.html:
+ @${ECHO_MSG} "===> Creating README.html for ${PKGNAME}"
+ @${CAT} ${TEMPLATES}/README.port | \
+ ${SED} -e 's%%PORT%%'`${ECHO} ${.CURDIR} | ${SED} -e 's.*/\([^/]*/[^/]*\)$$\1'`'g' \
+ -e 's%%PKG%%${PKGNAME}g' \
+ -e '/%%COMMENT%%/r${PKGDIR}/COMMENT' \
+ -e '/%%COMMENT%%/d' \
+ -e 's%%BUILD_DEPENDS%%'"`${MAKE} print-depends-list`"'' \
+ -e 's%%RUN_DEPENDS%%'"`${MAKE} print-package-depends`"'' \
+ >> $@
+
+.if !target(print-depends-list)
+print-depends-list:
+.if defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || \
+ defined(LIB_DEPENDS) || defined(DEPENDS)
+ @${ECHO} -n 'This port requires package(s) "'
+ @${ECHO} -n `make depends-list | sort | uniq`
+ @${ECHO} '" to build.'
+.endif
+.endif
+
+.if !target(print-package-depends)
+print-package-depends:
+.if defined(RUN_DEPENDS) || defined(LIB_DEPENDS) || defined(DEPENDS)
+ @${ECHO} -n 'This port requires package(s) "'
+ @${ECHO} -n `make package-depends | sort | uniq`
+ @${ECHO} '" to run.'
+.endif
+.endif
+
# Fake installation of package so that user can pkg_delete it later.
# Also, make sure that an installed port is recognized correctly in
# accordance to the @pkgdep directive in the packing lists
diff --git a/share/mk/bsd.port.subdir.mk b/share/mk/bsd.port.subdir.mk
index 416c332..cc0868c 100644
--- a/share/mk/bsd.port.subdir.mk
+++ b/share/mk/bsd.port.subdir.mk
@@ -1,5 +1,5 @@
# from: @(#)bsd.subdir.mk 5.9 (Berkeley) 2/1/91
-# $Id: bsd.port.subdir.mk,v 1.11 1995/03/21 03:59:13 jkh Exp $
+# $Id: bsd.port.subdir.mk,v 1.12 1996/03/24 00:41:10 wosch Exp $
.MAIN: all
@@ -105,3 +105,46 @@ tags: _SUBDIRUSE
.if !target(checksum)
checksum: _SUBDIRUSE
.endif
+
+.if !target(readmes)
+readmes: readme _SUBDIRUSE
+.endif
+
+.if !target(readme)
+readme:
+ @rm -f README.html
+ @make README.html
+.endif
+
+PORTSDIR ?= /usr/ports
+TEMPLATES ?= ${PORTSDIR}/templates
+.if defined(PORTSTOP)
+README= ${TEMPLATES}/README.top
+.else
+README= ${TEMPLATES}/README.category
+.endif
+
+README.html:
+ @echo "===> Creating README.html"
+ @> $@.tmp
+.for entry in ${SUBDIR}
+.if defined(PORTSTOP)
+ @echo -n '<a href="'${entry}/README.html'">${entry}</a>: ' >> $@.tmp
+.else
+ @echo -n '<a href="'${entry}/README.html'">'"`cd ${entry}; make package-name`</a>: " >> $@.tmp
+.endif
+.if exists(${entry}/pkg/COMMENT)
+ @cat ${entry}/pkg/COMMENT >> $@.tmp
+.else
+ @echo "(no description)" >> $@.tmp
+.endif
+.endfor
+ @sort -t '>' +1 -2 $@.tmp > $@.tmp2
+ @cat ${README} | \
+ sed -e 's%%CATEGORY%%'`echo ${.CURDIR} | sed -e 's.*/\([^/]*\)$$\1'`'g' \
+ -e '/%%DESCR%%/r${.CURDIR}/pkg/DESCR' \
+ -e '/%%DESCR%%/d' \
+ -e '/%%SUBDIR%%/r$@.tmp2' \
+ -e '/%%SUBDIR%%/d' \
+ > $@
+ @rm -f $@.tmp $@.tmp2
OpenPOWER on IntegriCloud