pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/mk Added bsd.pkg.help.mk, which provides the "help" ta...
details: https://anonhg.NetBSD.org/pkgsrc/rev/c816a5da8cb5
branches: trunk
changeset: 516960:c816a5da8cb5
user: rillig <rillig%pkgsrc.org@localhost>
date: Wed Aug 02 09:46:22 2006 +0000
description:
Added bsd.pkg.help.mk, which provides the "help" target.
Since more and more files follow the convention of documenting variables
in a common format, it makes sense to be able to get the documentation
of a single variable by simple means, instead of searching through the
whole mk/ directory.
Try "make help TOPIC=CONFIGURE_DIRS" for an example.
diffstat:
mk/bsd.pkg.help.mk | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
mk/bsd.pkg.mk | 7 ++++-
2 files changed, 67 insertions(+), 2 deletions(-)
diffs (86 lines):
diff -r 9aadfef35381 -r c816a5da8cb5 mk/bsd.pkg.help.mk
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mk/bsd.pkg.help.mk Wed Aug 02 09:46:22 2006 +0000
@@ -0,0 +1,62 @@
+# $NetBSD: bsd.pkg.help.mk,v 1.1 2006/08/02 09:46:22 rillig Exp $
+#
+
+# This is the integrated pkgsrc online help system. To query for the
+# meaning of a variable, run "make help TOPIC=VARNAME". All variables from
+# certain pkgsrc Makefile fragments that have inline comments are eligible
+# for querying.
+
+.if !defined(_PKGSRC_HELP_MK)
+_PKGSRC_HELP_MK= # defined
+
+_HELP_FILES= # empty
+_HELP_FILES+= mk/defaults/mk.conf
+_HELP_FILES+= mk/bsd.prefs.mk
+_HELP_FILES+= mk/bsd.pkg.mk
+_HELP_FILES+= mk/*/*-vars.mk
+
+_HELP_AWK= \
+ BEGIN { \
+ hline = "==============="; \
+ hline = hline hline hline hline hline; \
+ found = 0; \
+ var = 0; comment = 0; n = 0; lines[n++] = hline; \
+ } \
+ /./ { \
+ lines[n++] = $$0; \
+ } \
+ ($$1 == VARNAME"?=") || ($$1 == "\#"VARNAME"=") { \
+ var = 1; \
+ } \
+ /^\#/ { \
+ comment = 1; \
+ } \
+ /^$$/ { \
+ if (var == 1 && comment == 1) { \
+ found = 1; \
+ for (i = 0; i < n; i++) { print lines[i]; } \
+ } \
+ var = 0; comment = 0; n = 0; lines[n++] = hline; \
+ } \
+ END { \
+ if (found) { \
+ print hline; \
+ } else { \
+ print "No help found for " VARNAME "."; \
+ } \
+ }
+
+.if !defined(TOPIC) && defined(VARNAME)
+TOPIC= ${VARNAME}
+.endif
+
+help:
+.if !defined(TOPIC)
+ @${ECHO} "usage: "${MAKE:Q}" help TOPIC=<VARNAME>" 1>&2
+.else
+ @set -e; cd ${PKGSRCDIR}; \
+ { for i in ${_HELP_FILES}; do ${CAT} "$$i"; ${ECHO} ""; done; } \
+ | ${AWK} -v VARNAME=${TOPIC} '${_HELP_AWK:M*}'
+.endif
+
+.endif
diff -r 9aadfef35381 -r c816a5da8cb5 mk/bsd.pkg.mk
--- a/mk/bsd.pkg.mk Wed Aug 02 07:09:52 2006 +0000
+++ b/mk/bsd.pkg.mk Wed Aug 02 09:46:22 2006 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.pkg.mk,v 1.1878 2006/07/27 21:46:45 jlam Exp $
+# $NetBSD: bsd.pkg.mk,v 1.1879 2006/08/02 09:46:22 rillig Exp $
#
# This file is in the public domain.
#
@@ -1017,6 +1017,9 @@
${ECHO} ${_CTYPE1}${_CTYPE2}${_CTYPE3} >> ${PKGSRC_CHANGES:Q}
.include "${PKGSRCDIR}/mk/internal/build-defs-message.mk"
-.if make(debug)
+.if make(debug) || make(build-env)
.include "${PKGSRCDIR}/mk/bsd.pkg.debug.mk"
.endif
+.if make(help)
+.include "${PKGSRCDIR}/mk/bsd.pkg.help.mk"
+.endif
Home |
Main Index |
Thread Index |
Old Index