pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/mk Refactor the README.html generation code from bsd.p...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/d25fea293d1d
branches:  trunk
changeset: 515701:d25fea293d1d
user:      jlam <jlam%pkgsrc.org@localhost>
date:      Thu Jul 06 21:07:33 2006 +0000

description:
Refactor the README.html generation code from bsd.pkg.mk into a separate
bsd.pkg.readme.mk and document the public targets and variables for this
new file.

diffstat:

 mk/bsd.pkg.mk        |  318 +-----------------------------------------------
 mk/bsd.pkg.readme.mk |  339 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 343 insertions(+), 314 deletions(-)

diffs (truncated from 694 to 300 lines):

diff -r 4b65bf9e74bd -r d25fea293d1d mk/bsd.pkg.mk
--- a/mk/bsd.pkg.mk     Thu Jul 06 20:57:03 2006 +0000
+++ b/mk/bsd.pkg.mk     Thu Jul 06 21:07:33 2006 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: bsd.pkg.mk,v 1.1862 2006/07/06 16:58:17 jlam Exp $
+#      $NetBSD: bsd.pkg.mk,v 1.1863 2006/07/06 21:07:33 jlam Exp $
 #
 # This file is in the public domain.
 #
@@ -1043,270 +1043,11 @@
 bin-install: su-target
        @${PHASE_MSG} "Binary install for "${PKGNAME_REQD:U${PKGNAME}:Q}
 
-
-################################################################
-# The special package-building targets
-# You probably won't need to touch these
-################################################################
-
-# Set to "html" by the README.html target to generate HTML code,
-# or to "svr4" to print SVR4 (Solaris, ...) short package names, from
-# SVR4_PKGNAME variable.
-# This variable is passed down via build-depends-list and run-depends-list
-PACKAGE_NAME_TYPE?=    name
-
-_HTML_PKGNAME=         ${PKGNAME:S/&/\&amp;/g:S/>/\&gt;/g:S/</\&lt;/g}
-_HTML_PKGPATH=         ${PKGPATH:S/&/\&amp;/g:S/>/\&gt;/g:S/</\&lt;/g}
-_HTML_PKGLINK=         <a href="../../${_HTML_PKGPATH}/README.html">${_HTML_PKGNAME}</a>
-
-.PHONY: package-name
-.if !target(package-name)
-package-name:
-.  if (${PACKAGE_NAME_TYPE} == "html")
-       @${ECHO} ${_HTML_PKGLINK:Q}
-.  elif (${PACKAGE_NAME_TYPE} == "svr4")
-       @${ECHO} ${SVR4_PKGNAME}
-.  else
-       @${ECHO} ${PKGNAME}
-.  endif # PACKAGE_NAME_TYPE
-.endif # !target(package-name)
-
-.PHONY: make-readme-html-help
-.if !target(make-readme-html-help)
-make-readme-html-help:
-       @${ECHO} '${PKGNAME:S/&/\&amp;/g:S/>/\&gt;/g:S/</\&lt;/g}</a>: <TD>'${COMMENT:S/&/\&amp;/g:S/>/\&gt;/g:S/</\&lt;/g:Q}
-.endif # !target(make-readme-html-help)
-
-# Show (non-recursively) all the packages this package depends on.
-# If PACKAGE_DEPENDS_WITH_PATTERNS is set, print as pattern (if possible)
-PACKAGE_DEPENDS_WITH_PATTERNS?=true
-.PHONY: run-depends-list
-.if !target(run-depends-list)
-run-depends-list:
-.  for dep in ${DEPENDS}
-       @pkg="${dep:C/:.*//}";                                          \
-       dir="${dep:C/[^:]*://}";                                        \
-       cd ${.CURDIR};                                                  \
-       if ${PACKAGE_DEPENDS_WITH_PATTERNS}; then                       \
-               ${ECHO} "$$pkg";                                        \
-       else                                                            \
-               if cd $$dir 2>/dev/null; then                           \
-                       ${MAKE} ${MAKEFLAGS} package-name PACKAGE_NAME_TYPE=${PACKAGE_NAME_TYPE}; \
-               else                                                    \
-                       ${ECHO_MSG} "Warning: \"$$dir\" non-existent -- @pkgdep registration incomplete" >&2; \
-               fi;                                                     \
-       fi
-.  endfor
-.endif # target(run-depends-list)
-
-.PHONY: build-depends-list
-.if !target(build-depends-list)
-build-depends-list:
-       @for dir in `${MAKE} ${MAKEFLAGS} show-all-depends-dirs-excl`;  \
-       do                                                              \
-               (cd ../../$$dir &&                                      \
-               ${MAKE} ${MAKEFLAGS} package-name)                      \
-       done
-.endif
-
-# If PACKAGES is set to the default (../../pkgsrc/packages), the current
-# ${MACHINE_ARCH} and "release" (uname -r) will be used. Otherwise a directory
-# structure of ...pkgsrc/packages/`uname -r`/${MACHINE_ARCH} is assumed.
-# The PKG_URL is set from FTP_PKG_URL_* or CDROM_PKG_URL_*, depending on
-# the target used to generate the README.html file.
-.PHONY: binpkg-list
-.if !target(binpkg-list)
-binpkg-list:
-       @if ${TEST} -d ${PACKAGES}; then                                        \
-               cd ${PACKAGES};                                         \
-               case ${.CURDIR} in                                      \
-               */pkgsrc/packages)                                      \
-                       for pkg in ${PKGREPOSITORYSUBDIR}/${PKGWILDCARD}${PKG_SUFX} ; \
-                       do                                              \
-                               if [ -f "$$pkg" ] ; then                \
-                                       pkgname=`${ECHO} $$pkg | ${SED} 's@.*/@@'`; \
-                                       ${ECHO} "<TR><TD>${MACHINE_ARCH}:<TD><a href=\"${PKG_URL}/$$pkg\">$$pkgname</a><TD>(${OPSYS} ${OS_VERSION})"; \
-                               fi ;                                    \
-                       done ;                                          \
-                       ;;                                              \
-               *)                                                      \
-                       cd ${PACKAGES}/../..;                           \
-                       for i in [1-9].*/*; do                          \
-                               if cd ${PACKAGES}/../../$$i/${PKGREPOSITORYSUBDIR} 2>/dev/null; then \
-                                       for j in ${PKGWILDCARD}${PKG_SUFX}; \
-                                       do                              \
-                                               if [ -f "$$j" ]; then   \
-                                                       ${ECHO} $$i/$$j;\
-                                               fi;                     \
-                                       done;                           \
-                               fi;                                     \
-                       done | ${AWK} -F/ '                             \
-                               {                                       \
-                                       release = $$1;                  \
-                                       arch = $$2;                     \
-                                       pkg = $$3;                      \
-                                       gsub("\\.tgz","", pkg);         \
-                                       if (arch != "m68k" && arch != "mipsel") { \
-                                               if (arch in urls)       \
-                                                       urls[arch "/" pkg "/" release] = "<a href=\"${PKG_URL}/" release "/" arch "/${PKGREPOSITORYSUBDIR}/" pkg "${PKG_SUFX}\">" pkg "</a>, " 
urls[arch]; \
-                                               else                    \
-                                                       urls[arch "/" pkg "/" release] = "<a href=\"${PKG_URL}/" release "/" arch "/${PKGREPOSITORYSUBDIR}/" pkg "${PKG_SUFX}\">" pkg "</a> "; \
-                                       }                               \
-                               }                                       \
-                               END {                                   \
-                                       for (av in urls) {              \
-                                               split(av, ava, "/");    \
-                                               arch=ava[1];            \
-                                               pkg=ava[2];             \
-                                               release=ava[3];         \
-                                               print "<TR><TD>" arch ":<TD>" urls[av] "<TD>(${OPSYS} " release ")"; \
-                                       }                               \
-                               }' | ${SORT}                            \
-                       ;;                                              \
-               esac;                                                   \
-       fi
-.endif
-
 ################################################################
 # Everything after here are internal targets and really
 # shouldn't be touched by anybody but the release engineers.
 ################################################################
 
-# This target generates an index entry suitable for aggregation into
-# a large index.  Format is:
-#
-# distribution-name|package-path|installation-prefix|comment| \
-#  description-file|maintainer|categories|build deps|run deps|for arch| \
-#  not for opsys
-#
-.PHONY: describe
-.if !target(describe)
-describe:
-       @${ECHO_N} "${PKGNAME}|${.CURDIR}|";                            \
-       ${ECHO_N} "${PREFIX}|";                                         \
-       ${ECHO_N} ${COMMENT:Q};                                         \
-       if [ -f ${DESCR_SRC} ]; then                                    \
-               ${ECHO_N} "|${DESCR_SRC}";                              \
-       else                                                            \
-               ${ECHO_N} "|/dev/null";                                 \
-       fi;                                                             \
-       ${ECHO_N} "|${MAINTAINER}|${CATEGORIES}|";                      \
-       case "A${BUILD_DEPENDS}B${DEPENDS}C" in \
-               ABC) ;;                                                 \
-               *) cd ${.CURDIR} && ${ECHO_N} `${MAKE} ${MAKEFLAGS} build-depends-list | ${SORT} -u`;; \
-       esac;                                                           \
-       ${ECHO_N} "|";                                                  \
-       if [ "${DEPENDS}" != "" ]; then                                 \
-               cd ${.CURDIR} && ${ECHO_N} `${MAKE} ${MAKEFLAGS} run-depends-list | ${SORT} -u`; \
-       fi;                                                             \
-       ${ECHO_N} "|";                                                  \
-       if [ "${ONLY_FOR_PLATFORM}" = "" ]; then                        \
-               ${ECHO_N} "any";                                        \
-       else                                                            \
-               ${ECHO_N} "${ONLY_FOR_PLATFORM}";                       \
-       fi;                                                             \
-       ${ECHO_N} "|";                                                  \
-       if [ "${NOT_FOR_PLATFORM}" = "" ]; then                         \
-               ${ECHO_N} "any";                                        \
-       else                                                            \
-               ${ECHO_N} "not ${NOT_FOR_PLATFORM}";                    \
-       fi;                                                             \
-       ${ECHO} ""
-.endif
-
-.PHONY: readmes
-.if !target(readmes)
-readmes:       readme
-.endif
-
-# This target is used to generate README.html files
-.PHONY: readme
-.if !target(readme)
-FTP_PKG_URL_HOST?=     ftp://ftp.NetBSD.org
-FTP_PKG_URL_DIR?=      /pub/NetBSD/packages
-
-readme:
-       @cd ${.CURDIR} && ${MAKE} ${MAKEFLAGS} README.html PKG_URL=${FTP_PKG_URL_HOST}${FTP_PKG_URL_DIR}
-.endif
-
-# This target is used to generate README.html files, very like "readme"
-# However, a different target was used for ease of use.
-.PHONY: cdrom-readme
-.if !target(cdrom-readme)
-CDROM_PKG_URL_HOST?=   file://localhost
-CDROM_PKG_URL_DIR?=    /usr/pkgsrc/packages
-
-cdrom-readme:
-       @cd ${.CURDIR} && ${MAKE} ${MAKEFLAGS} README.html PKG_URL=${CDROM_PKG_URL_HOST}${CDROM_PKG_URL_DIR}
-.endif
-
-README_NAME=   ${TEMPLATES}/README.pkg
-
-# set up the correct license information as a sed expression
-.if defined(LICENSE)
-SED_LICENSE_EXPR=      -e 's|%%LICENSE%%|<p>Please note that this package has a ${LICENSE} license.</p>|'
-.else
-SED_LICENSE_EXPR=      -e 's|%%LICENSE%%||'
-.endif
-
-# set up the "more info URL" information as a sed expression
-.if defined(HOMEPAGE)
-SED_HOMEPAGE_EXPR=     -e 's|%%HOMEPAGE%%|<p>This package has a home page at <a HREF="${HOMEPAGE}">${HOMEPAGE}</a>.</p>|'
-.else
-SED_HOMEPAGE_EXPR=     -e 's|%%HOMEPAGE%%||'
-.endif
-
-.PHONY: show-vulnerabilities-html
-show-vulnerabilities-html:
-       ${_PKG_SILENT}${_PKG_DEBUG}                                     \
-       if [ -f ${PKGVULNDIR}/pkg-vulnerabilities ]; then               \
-               ${AWK} '/^${PKGBASE}[-<>=]+[0-9]/ { gsub("\<", "\\&lt;", $$1);  \
-                        gsub("\>", "\\&gt;", $$1);                     \
-                        printf("<LI><STRONG>%s has a %s exploit (see <a href=\"%s\">%s</a> for more details)</STRONG></LI>\n", $$1, $$2, $$3, $$3) }' \
-                       ${PKGVULNDIR}/pkg-vulnerabilities;              \
-       fi
-
-
-# If PACKAGES is set to the default (../../packages), the current
-# ${MACHINE_ARCH} and "release" (uname -r) will be used. Otherwise a directory
-# structure of ...pkgsrc/packages/`uname -r`/${MACHINE_ARCH} is assumed.
-# The PKG_URL is set from FTP_PKG_URL_* or CDROM_PKG_URL_*, depending on
-# the target used to generate the README.html file.
-.PHONY: README.html
-README.html: .PRECIOUS
-       @${SETENV} AWK=${AWK} BMAKE=${MAKE} ../../mk/scripts/mkdatabase -f $@.tmp1
-       @if ${TEST} -d ${PACKAGES}; then                                        \
-               cd ${PACKAGES};                                         \
-               case `${PWD_CMD}` in                                    \
-                       ${PKGSRCDIR}/packages)                          \
-                               MULTIARCH=no;                           \
-                               ;;                                      \
-                       *)                                              \
-                               MULTIARCH=yes;                          \
-                               ;;                                      \
-               esac;                                                   \
-               cd ${.CURDIR} ;                                         \
-       fi;                                                             \
-       ${AWK} -f ../../mk/scripts/genreadme.awk \
-               builddependsfile=/dev/null \
-               dependsfile=/dev/null \
-               AWK=${AWK:Q} \
-               CMP=${CMP:Q} \
-               DISTDIR=${DISTDIR:Q} \
-               GREP=${GREP:Q} \
-               PACKAGES=${PACKAGES:Q} \
-               PKG_INFO=${PKG_INFO:Q} \
-               PKG_SUFX=${PKG_SUFX:Q} \
-               PKG_URL=${PKG_URL:Q} \
-               PKGSRCDIR=${.CURDIR:C|/[^/]*/[^/]*$||:Q} \
-               SED=${SED:Q} \
-               SETENV=${SETENV:Q} \
-               SORT=${SORT:Q} \
-               TMPDIR=${TMPDIR:U/tmp:Q} \
-               SINGLEPKG=${PKGPATH:Q} \
-               $@.tmp1
-       @${RM} $@.tmp1
-
 .PHONY: show-pkgtools-version
 .if !target(show-pkgtools-version)
 show-pkgtools-version:
@@ -1334,60 +1075,6 @@
        @${ECHO} ${var:C/^.*://}="${${var:C/:.*$//}:Q}"
 .endfor
 
-.PHONY: print-build-depends-list
-.if !target(print-build-depends-list)
-print-build-depends-list:
-.  if !empty(BUILD_DEPENDS) || !empty(DEPENDS)
-       @${ECHO_N} 'This package requires package(s) "'
-       @${ECHO_N} `${MAKE} ${MAKEFLAGS} build-depends-list | ${SORT} -u`
-       @${ECHO} '" to build.'
-.  endif
-.endif
-
-.PHONY: print-run-depends-list
-.if !target(print-run-depends-list)
-print-run-depends-list:
-.  if !empty(DEPENDS)
-       @${ECHO_N} 'This package requires package(s) "'
-       @${ECHO_N} `${MAKE} ${MAKEFLAGS} run-depends-list | ${SORT} -u`



Home | Main Index | Thread Index | Old Index