progname=$0
 package=gnulib
-cvsdatestamp='$Date: 2006-08-28 15:14:35 $'
+cvsdatestamp='$Date: 2006-08-28 15:20:22 $'
 last_checkin_date=`echo "$cvsdatestamp" | sed -e 's,^\$[D]ate: ,,'`
 version=`echo "$last_checkin_date" | sed -e 's/ .*$//' -e 's,/,-,g'`
 
 # func_lookup_file file
 # looks up a file in $local_gnulib_dir or $gnulib_dir, or combines it through
 # 'patch'.
+# Input:
+# - local_gnulib_dir  from --local-dir
 # Output:
 # - lookedup_file   name of the merged (combined) file
 # - lookedup_tmp    true if it is located in the tmp directory, blank otherwise
 }
 
 # func_all_modules
+# Input:
+# - local_gnulib_dir  from --local-dir
 func_all_modules ()
 {
   # Filter out metainformation files like README, which are not modules.
 
 # func_verify_module
 # verifies a module name
+# Input:
+# - local_gnulib_dir  from --local-dir
+# - module          module name argument
 func_verify_module ()
 {
   if { test -f "$gnulib_dir/modules/$module" \
 
 # func_verify_nontests_module
 # verifies a module name, excluding tests modules
+# Input:
+# - local_gnulib_dir  from --local-dir
+# - module          module name argument
 func_verify_nontests_module ()
 {
   case "$module" in
 
 # func_verify_tests_module
 # verifies a module name, considering only tests modules
+# Input:
+# - local_gnulib_dir  from --local-dir
+# - module          module name argument
 func_verify_tests_module ()
 {
   case "$module" in
 }'
 
 # func_get_description module
+# Input:
+# - local_gnulib_dir  from --local-dir
 func_get_description ()
 {
   func_lookup_file "modules/$1"
 }
 
 # func_get_filelist module
+# Input:
+# - local_gnulib_dir  from --local-dir
 func_get_filelist ()
 {
   func_lookup_file "modules/$1"
 }
 
 # func_get_dependencies module
+# Input:
+# - local_gnulib_dir  from --local-dir
 func_get_dependencies ()
 {
   # ${module}-tests always implicitly depends on ${module}.
 }
 
 # func_get_autoconf_snippet module
+# Input:
+# - local_gnulib_dir  from --local-dir
 func_get_autoconf_snippet ()
 {
   func_lookup_file "modules/$1"
 }
 
 # func_get_automake_snippet module
+# Input:
+# - local_gnulib_dir  from --local-dir
 func_get_automake_snippet ()
 {
   func_lookup_file "modules/$1"
 }
 
 # func_get_include_directive module
+# Input:
+# - local_gnulib_dir  from --local-dir
 func_get_include_directive ()
 {
   func_lookup_file "modules/$1"
 }
 
 # func_get_license module
+# Input:
+# - local_gnulib_dir  from --local-dir
 func_get_license ()
 {
   func_lookup_file "modules/$1"
 }
 
 # func_get_maintainer module
+# Input:
+# - local_gnulib_dir  from --local-dir
 func_get_maintainer ()
 {
   func_lookup_file "modules/$1"
 }
 
 # func_get_tests_module module
+# Input:
+# - local_gnulib_dir  from --local-dir
 func_get_tests_module ()
 {
   # The naming convention for tests modules is hardwired: ${module}-tests.
-  if test -f modules/"$1"-tests; then
+  if test -f "$gnulib_dir/modules/$1"-tests \
+     || { test -n "$local_gnulib_dir" && test -d "$local_gnulib_dir/modules" \
+          && test -f "$local_gnulib_dir/modules/$1"-tests; }; then
     echo "$1"-tests
   fi
 }
 
 # func_modules_transitive_closure
 # Input:
+# - local_gnulib_dir  from --local-dir
 # - modules         list of specified modules
 # - inctests        true if tests should be included, blank otherwise
 # - avoidlist       list of modules to avoid
 
 # func_modules_add_dummy
 # Input:
+# - local_gnulib_dir  from --local-dir
 # - modules         list of modules, including dependencies
 # Output:
 # - modules         list of modules, including 'dummy' if needed
 
 # func_modules_to_filelist
 # Input:
+# - local_gnulib_dir  from --local-dir
 # - modules         list of modules, including dependencies
 # Output:
 # - files           list of files
 # func_emit_lib_Makefile_am
 # emits the contents of lib/Makefile.am to standard output.
 # Input:
+# - local_gnulib_dir  from --local-dir
 # - modules         list of modules, including dependencies
 # - libname         library name
 # - libtool         true if libtool will be used, false or blank otherwise
 # func_emit_tests_Makefile_am
 # emits the contents of tests/Makefile.am to standard output.
 # Input:
+# - local_gnulib_dir  from --local-dir
 # - modules         list of modules, including dependencies
 # - libname         library name
 # - libtool         true if libtool will be used, false or blank otherwise
 # func_import modules
 # Uses also the variables
 # - destdir         target directory
+# - local_gnulib_dir  from --local-dir
 # - libname         library name
 # - sourcebase      directory relative to destdir where to place source code
 # - m4base          directory relative to destdir where to place *.m4 macros
 
 # func_create_testdir testdir modules
 # Input:
+# - local_gnulib_dir  from --local-dir
 # - auxdir          directory relative to destdir where to place build aux files
 func_create_testdir ()
 {
 
 # func_create_megatestdir megatestdir allmodules
 # Input:
+# - local_gnulib_dir  from --local-dir
 # - auxdir          directory relative to destdir where to place build aux files
 func_create_megatestdir ()
 {