This commit slightly generalizes the scripts for generating the _tags files.
authorTim King <taking@cs.nyu.edu>
Thu, 5 Nov 2015 08:08:45 +0000 (00:08 -0800)
committerTim King <taking@cs.nyu.edu>
Thu, 5 Nov 2015 08:08:45 +0000 (00:08 -0800)
src/options/Makefile.am
src/options/mktagheaders
src/options/mktags

index 19aa43c983b7742c2f2593c6bc684f57a1bffcbf..ad0ec79143ef76035a14f7ff0b0e27d1e7a9d4d8 100644 (file)
@@ -148,7 +148,7 @@ BUILT_SOURCES += \
 
 %_tags.h: %_tags mktagheaders
        $(AM_V_at)chmod +x @srcdir@/mktagheaders
-       $(AM_V_GEN)( @srcdir@/mktagheaders "$<" ) >"$@"
+       $(AM_V_GEN)( @srcdir@/mktagheaders "$<" "$<" ) >"$@"
 
 # This .tmp business is to keep from having to re-compile options.cpp
 # (and then re-link the libraries) if nothing has changed.
@@ -162,7 +162,9 @@ BUILT_SOURCES += \
 # expression (no |, no \<, ...).
 Debug_tags.tmp Trace_tags.tmp: mktags
        $(AM_V_at)chmod +x @srcdir@/mktags
-       $(AM_V_GEN)(@srcdir@/mktags '$(@:_tags.tmp=)' '@srcdir@/../') >"$@"
+       $(AM_V_GEN)(@srcdir@/mktags \
+    '$(@:_tags.tmp=)' \
+    "$$(find @srcdir@/../ -name '*.cpp' -o -name '*.h' -o -name '*.cc' -o -name '*.g')") >"$@"
 
 MOSTLYCLEANFILES = \
        Debug_tags \
index 5ef3b3172d587cf8ab192c70939f8e8ce1ecdb89..af44cee8db070070e943f07abd6b3b0eb95f1768 100755 (executable)
@@ -7,12 +7,16 @@
 #
 # Invocation:
 #
-#    mktagheaders <tag-file>
+#    mktagheaders <tag-name> <tag-file>
 #
+# <tag-name> will be the name of the generated array.
+# <tag-file> each line of this file is turned into a string in the generated
+#   array.
 
-TAG_FILE=$1
+TAG_NAME=$1
+TAG_FILE=$2
 
-echo 'static char const* const '$TAG_FILE'[] = {';
+echo 'static char const* const '$TAG_NAME'[] = {';
 for tag in `cat $TAG_FILE`; do
   echo "\"$tag\",";
 done;
index 169b373b8d463dba9d461c5d19597f36162fb754..090e570147d91721ebe3908206bcee402a186fee 100755 (executable)
 #
 # Invocation:
 #
-#    mktags {Debug,Trace} <directory>
+#    mktags {Debug,Trace} <input-files>
 #
+# <input-files> is expected to be passed a single space separated list of files.
+#  One can use quotes to achieve this. This is one reason to use "$(...)"
+#  instead of back ticks `...`.
 
 DebugOrTrace=$1
-FindDirectory=$2
+InputFiles=$2
 
 grep -h '\<'$DebugOrTrace'\(\.isOn\)* *( *\".*\" *)' \
-  `find $FindDirectory -name "*.cpp" -o -name "*.h" -o -name "*.cc" -o -name "*.g"` | \
+  $InputFiles | \
   sed 's/\/\/.*//;s/^'$DebugOrTrace'\(\.isOn\)* *( *\"\([^"]*\)\".*/\2/;s/.*[^a-zA-Z0-9_]'$DebugOrTrace'\(\.isOn\)* *( *\"\([^"]*\)\".*/\2/' | \
   LC_ALL=C sort | \
   uniq