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