Tue Oct 31 16:24:42 2017 UTC ()
Improved index generation for "make help".

The index is sorted alphabetically and mentioned in a plain "make help"
call.


(rillig)
diff -r1.27 -r1.28 pkgsrc/mk/help/help.awk
diff -r1.12 -r1.13 pkgsrc/mk/help/help.mk

cvs diff -r1.27 -r1.28 pkgsrc/mk/help/help.awk (expand / switch to unified diff)

--- pkgsrc/mk/help/help.awk 2013/08/31 21:27:53 1.27
+++ pkgsrc/mk/help/help.awk 2017/10/31 16:24:42 1.28
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: help.awk,v 1.27 2013/08/31 21:27:53 rillig Exp $ 1# $NetBSD: help.awk,v 1.28 2017/10/31 16:24:42 rillig Exp $
2# 2#
3 3
4# This program extracts the inline documentation from *.mk files. 4# This program extracts the inline documentation from *.mk files.
5# 5#
6# usage: env TOPIC="topic" awk help.awk file... 6# usage: env TOPIC="topic" awk help.awk file...
7# 7#
8 8
9BEGIN { 9BEGIN {
10 no = 0; yes = 1; always = 1; 10 no = 0; yes = 1; always = 1;
11 11
12 topic = ENVIRON["TOPIC"]; 12 topic = ENVIRON["TOPIC"];
13 uctopic = toupper(topic); 13 uctopic = toupper(topic);
14 lctopic = tolower(topic); 14 lctopic = tolower(topic);
@@ -170,20 +170,22 @@ $1 == "#" { @@ -170,20 +170,22 @@ $1 == "#" {
170} 170}
171 171
172/^$/ || last_fname != FILENAME { 172/^$/ || last_fname != FILENAME {
173 end_of_topic(); 173 end_of_topic();
174} 174}
175 175
176always { 176always {
177 last_fname = FILENAME; 177 last_fname = FILENAME;
178} 178}
179 179
180END { 180END {
181 end_of_topic(); 181 end_of_topic();
182 if (print_index) { 182 if (print_index) {
 183 print "Available help topics:";
 184 print "";
183 for (k in all_keywords) { 185 for (k in all_keywords) {
184 print all_keywords[k] "\t" k; 186 print k | "LC_ALL=C sort";
185 } 187 }
186 } else if (!found_anything) { 188 } else if (!found_anything) {
187 print "No help found for "topic"."; 189 print "No help found for "topic".";
188 } 190 }
189} 191}

cvs diff -r1.12 -r1.13 pkgsrc/mk/help/help.mk (expand / switch to unified diff)

--- pkgsrc/mk/help/help.mk 2016/02/01 18:47:23 1.12
+++ pkgsrc/mk/help/help.mk 2017/10/31 16:24:42 1.13
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: help.mk,v 1.12 2016/02/01 18:47:23 leot Exp $ 1# $NetBSD: help.mk,v 1.13 2017/10/31 16:24:42 rillig Exp $
2# 2#
3 3
4# This is the integrated pkgsrc online help system. To query for the 4# This is the integrated pkgsrc online help system. To query for the
5# meaning of a variable, run "make help TOPIC=VARNAME". All variables from 5# meaning of a variable, run "make help TOPIC=VARNAME". All variables from
6# certain pkgsrc Makefile fragments that have inline comments are eligible 6# certain pkgsrc Makefile fragments that have inline comments are eligible
7# for querying. 7# for querying.
8 8
9_HELP_FILES= Makefile 9_HELP_FILES= Makefile
10_HELP_FILES+= mk/*.mk mk/*/*.mk mk/*/*/*.mk 10_HELP_FILES+= mk/*.mk mk/*/*.mk mk/*/*/*.mk
11_HELP_FILES+= mk/defaults/mk.conf 11_HELP_FILES+= mk/defaults/mk.conf
12_HELP_FILES+= lang/go/*.mk 12_HELP_FILES+= lang/go/*.mk
13_HELP_FILES+= lang/perl5/*.mk lang/php/*.mk lang/python/*.mk 13_HELP_FILES+= lang/perl5/*.mk lang/php/*.mk lang/python/*.mk
14_HELP_FILES+= lang/ruby/*.mk 14_HELP_FILES+= lang/ruby/*.mk
@@ -21,21 +21,24 @@ _HELP_FILES+= wip/mk/*.mk @@ -21,21 +21,24 @@ _HELP_FILES+= wip/mk/*.mk
21.if defined(VARNAME) 21.if defined(VARNAME)
22TOPIC?= ${VARNAME} 22TOPIC?= ${VARNAME}
23.endif 23.endif
24.if defined(topic) 24.if defined(topic)
25TOPIC?= ${topic} 25TOPIC?= ${topic}
26.endif 26.endif
27 27
28.PHONY: help 28.PHONY: help
29help: 29help:
30.if !defined(TOPIC) 30.if !defined(TOPIC)
31 @${ECHO} "usage: "${MAKE:Q}" help topic=<topic>" 31 @${ECHO} "usage: "${MAKE:Q}" help topic=<topic>"
32 @${ECHO} "" 32 @${ECHO} ""
33 @${ECHO} " <topic> may be a variable name or a make target," 33 @${ECHO} " <topic> may be a variable name or a make target,"
34 @${ECHO} " for example CONFIGURE_DIRS or patch. For convenience," 34 @${ECHO} " for example CONFIGURE_DIRS or patch."
35 @${ECHO} " you don't need to use uppercase letters when typing" 35 @${ECHO} ""
36 @${ECHO} " variable names." 36 @${ECHO} " For convenience, all-uppercase topics such as variable"
 37 @${ECHO} " names may also be given in all-lowercase."
 38 @${ECHO} ""
 39 @${ECHO} " The special topic :index lists all available topics."
37 @${ECHO} "" 40 @${ECHO} ""
38.else 41.else
39 ${RUN} cd ${PKGSRCDIR}; \ 42 ${RUN} cd ${PKGSRCDIR}; \
40 env TOPIC=${TOPIC:Q} ${AWK} -f ${PKGSRCDIR}/mk/help/help.awk ${_HELP_FILES} 43 env TOPIC=${TOPIC:Q} ${AWK} -f ${PKGSRCDIR}/mk/help/help.awk ${_HELP_FILES}
41.endif 44.endif