From facafe88df66933f84ddfecce119bb3c194df751 Mon Sep 17 00:00:00 2001
GIT:
GIT: This is my first patch. `https://www.gnu.org/software/automake/' mentions
GIT: `The HACKING file present in the Automake git repository should explain
GIT: how to properly prepare, format and post a patch.'. However,
GIT: the HACKING file does not mention `git format-patch'. Should I add it?
GIT:
GIT: This patch add autoreconf, autogen and perl as supported programs to
GIT: the `missing' script. This is already done to my local copy of
GIT: the `missing' script. It is useful because I need to use
GIT: the `missing' script as wrapper to invoke autoreconf, autogen and perl
GIT: from the `bootstrap' script. Hopefully, this is useful to the others
GIT: as well so I submit this patch.
GIT:
GIT: Feel free to discuss the above, accept/reject patch and reply to
GIT: this email. This patch can be apply by `git am *.patch' (tested).
GIT:
From: Alex Vong <alexvong1995@gmail.com>
Date: Sun, 26 Jul 2015 23:10:28 +0800
Subject: [PATCH] missing: add autoreconf, autogen and perl as supported
 programs

autoreconf, autogen and perl are added as supported programs
since they are commonly used with the autotools.
Some rewriting is done but the logic should NOT change.

`GNU programs' is changed to `GNU programs and friends'
since flex and perl are not part of GNU.

* missing: add autoreconf, autogen and perl as supported programs
---
 missing | 47 ++++++++++++++++++++++++++++++++---------------
 1 file changed, 32 insertions(+), 15 deletions(-)

diff --git a/missing b/missing
index 3af2828..c36b119 100755
--- a/missing
+++ b/missing
@@ -54,8 +54,9 @@ Options:
   -v, --version   output version information and exit
 
 Supported PROGRAM values:
-  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
-  bison     yacc      flex         lex       help2man
+  auatoconf   autoheader   automake   autoreconf   aclocal   autom4te
+  autogen     bison        yacc       lex          flex      perl
+  help2man    makeinfo
 
 Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
 'g' are ignored when checking the name.
@@ -108,7 +109,7 @@ gnu_software_URL=http://www.gnu.org/software
 program_details ()
 {
   case $1 in
-    aclocal|automake)
+    aclocal|automake|autoreconf)
       echo "The '$1' program is part of the GNU Automake package:"
       echo "<$gnu_software_URL/automake>"
       echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
@@ -123,6 +124,9 @@ program_details ()
       echo "<$gnu_software_URL/m4/>"
       echo "<$perl_URL>"
       ;;
+    *)
+      :
+      ;;
   esac
 }
 
@@ -137,31 +141,38 @@ give_advice ()
   printf '%s\n' "'$1' is $msg."
 
   configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+  autoheader_deps="'acconfig.h'"
+  automake_deps="'Makefile.am'"
+  aclocal_deps="'acinclude.m4'"
   case $normalized_program in
     autoconf*)
-      echo "You should only need it if you modified 'configure.ac',"
-      echo "or m4 files included by it."
-      program_details 'autoconf'
+      echo "You should only need it if you modified $configure_deps."
       ;;
     autoheader*)
-      echo "You should only need it if you modified 'acconfig.h' or"
+      echo "You should only need it if you modified $autoheader_deps or"
       echo "$configure_deps."
-      program_details 'autoheader'
       ;;
     automake*)
-      echo "You should only need it if you modified 'Makefile.am' or"
+      echo "You should only need it if you modified $automake_deps or"
+      echo "$configure_deps."
+      ;;
+    autoreconf*)
+      echo "You should only need it if you modified $aclocal_deps or"
+      echo "$automake_deps or $autoheader_deps or $automake_deps or"
       echo "$configure_deps."
-      program_details 'automake'
       ;;
     aclocal*)
-      echo "You should only need it if you modified 'acinclude.m4' or"
+      echo "You should only need it if you modified $aclocal_deps or"
       echo "$configure_deps."
-      program_details 'aclocal'
       ;;
    autom4te*)
       echo "You might have modified some maintainer files that require"
       echo "the 'autom4te' program to be rebuilt."
-      program_details 'autom4te'
+      ;;
+    autogen*)
+      echo "You should only need it if you modified a '.def' or '.tpl' file."
+      echo "You may want to install the GNU AutoGen package:"
+      echo "<$gnu_software_URL/autogen/>"
       ;;
     bison*|yacc*)
       echo "You should only need it if you modified a '.y' file."
@@ -173,6 +184,11 @@ give_advice ()
       echo "You may want to install the Fast Lexical Analyzer package:"
       echo "<$flex_URL>"
       ;;
+    perl*)
+      echo "You should only need it if you modified a '.pl' or '.PL' file."
+      echo "You may want to install the Perl 5 language interpreter:"
+      echo "<$perl_URL>"
+      ;;
     help2man*)
       echo "You should only need it if you modified a dependency" \
            "of a man page."
@@ -197,6 +213,7 @@ give_advice ()
       echo "case some other package contains this missing '$1' program."
       ;;
   esac
+  program_details "$normalized_program"
 }
 
 give_advice "$1" | sed -e '1s/^/WARNING: /' \
-- 
2.1.4

