progname=$0
package=gnulib
-cvsdatestamp='$Date: 2005-07-05 07:14:00 $'
+cvsdatestamp='$Date: 2005-07-11 11:37:09 $'
last_checkin_date=`echo "$cvsdatestamp" | sed -e 's,^\$[D]ate: ,,'`
version=`echo "$last_checkin_date" | sed -e 's/ .*$//' -e 's,/,-,g'`
placed (default \"m4\"), for --import.
--aux-dir=DIRECTORY Directory relative --dir where auxiliary build
tools are placed (default \".\"), for --import.
+ --avoid=MODULE Avoid including the given MODULE. Useful if you
+ have code that provides equivalent functionality.
+ This option can be repeated.
--lgpl Abort if modules aren't available under the LGPL.
Also modify license template from GPL to LGPL.
--libtool Use libtool rules, for --import.
# - sourcebase from --source-base
# - m4base from --m4-base
# - auxdir from --aux-dir
-# - libtool true if --libtool was given, blank otherwise
+# - avoidlist list of modules to avoid, from --avoid
# - lgpl true if --lgpl was given, blank otherwise
+# - libtool true if --libtool was given, blank otherwise
# - do_changelog false if --no-changelog was given, : otherwise
# - dry_run true if --dry-run was given, blank otherwise
{
sourcebase=
m4base=
auxdir=
- libtool=
+ avoidlist=
lgpl=
+ libtool=
do_changelog=:
dry_run=
symbolic=
- lgpl=
supplied_opts="$@"
--aux-dir=* )
auxdir=`echo "X$1" | sed -e 's/^X--aux-dir=//'`
shift ;;
- --libtool )
- libtool=true
+ --avoid )
+ shift
+ if test $# = 0; then
+ func_fatal_error "missing argument for --avoid"
+ fi
+ avoidlist="$avoidlist $1"
+ shift ;;
+ --avoid=* )
+ avoidlist="$avoidlist "`echo "X$1" | sed -e 's/^X--avoid=//'`
shift ;;
--lgpl )
lgpl=true
shift ;;
+ --libtool )
+ libtool=true
+ shift ;;
--no-changelog | --no-changelo | --no-changel | --no-change | --no-chang | --no-chan | --no-cha | --no-ch | --no-c )
do_changelog=false
shift ;;
sed -n -e "/^Maintainer$sed_extract_prog" < "$gnulib_dir/modules/$1"
}
+# func_acceptable module
+# tests whether a module is acceptable.
+# Input:
+# - avoidlist list of modules to avoid
+func_acceptable ()
+{
+ for avoid in $avoidlist; do
+ if test "$avoid" = "$1"; then
+ return 1
+ fi
+ done
+ return 0
+}
+
# func_modules_transitive_closure
# Input:
# - modules list of specified modules
+# - avoidlist list of modules to avoid
# Output:
# - modules list of modules, including dependencies
func_modules_transitive_closure ()
for module in $modules; do
func_verify_module
if test -n "$module"; then
- # Duplicate dependenies are harmless, but Jim wants a warning.
+ # Duplicate dependencies are harmless, but Jim wants a warning.
duplicated_deps=`func_get_dependencies $module | sort | uniq -d`
if test -n "$duplicated_deps"; then
echo "warning: module $module has duplicated dependencies: "`echo $duplicated_deps` 1>&2
fi
- xmodules="$xmodules $module "`func_get_dependencies $module`
+ if func_acceptable $module; then
+ xmodules="$xmodules $module"
+ for depmodule in `func_get_dependencies $module`; do
+ if func_acceptable $depmodule; then
+ xmodules="$xmodules $depmodule"
+ fi
+ done
+ fi
fi
done
xmodules=`for m in $xmodules; do echo $m; done | sort | uniq`
# - libname library name
# - sourcebase directory relative to destdir where to place source code
# - m4base directory relative to destdir where to place *.m4 macros
-# - libtool true if libtool will be used, blank otherwise
+# - avoidlist list of modules to avoid, from --avoid
# - lgpl true if library's license shall be LGPL, blank otherwise
+# - libtool true if libtool will be used, blank otherwise
# - dry_run true if actions shall only be printed, blank otherwise
# - symbolic true if files should be symlinked, copied otherwise
# - supplied_opts all options passed to gnulib-tool