Mercurial > gnulib
diff gnulib-tool @ 12460:282eecca2301
New module attribute 'Applicability'.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sat, 19 Dec 2009 15:27:58 +0100 |
parents | e09c73938d46 |
children | c2cbabec01dd |
line wrap: on
line diff
--- a/gnulib-tool Sat Dec 19 12:30:24 2009 +0100 +++ b/gnulib-tool Sat Dec 19 15:27:58 2009 +0100 @@ -115,6 +115,7 @@ gnulib-tool --extract-description module gnulib-tool --extract-status module gnulib-tool --extract-notice module + gnulib-tool --extract-applicability module gnulib-tool --extract-filelist module gnulib-tool --extract-dependencies module gnulib-tool --extract-autoconf-snippet module @@ -1347,6 +1348,7 @@ s/^Description:[ ]*$// s/^Status:[ ]*$// s/^Notice:[ ]*$// + s/^Applicability:[ ]*$// s/^Files:[ ]*$// s/^Depends-on:[ ]*$// s/^configure\.ac-early:[ ]*$// @@ -1389,6 +1391,22 @@ sed -n -e "/^Notice$sed_extract_prog" < "$lookedup_file" } +# func_get_applicability module +# Input: +# - local_gnulib_dir from --local-dir +# The expected result (on stdout) is either 'main', or 'tests', or 'all'. +func_get_applicability () +{ + func_lookup_file "modules/$1" + { sed -n -e "/^Applicability$sed_extract_prog" < "$lookedup_file" + # The default is 'main' or 'tests', depending on the module's name. + case "$1" in + *-tests) echo "tests";; + *) echo "main";; + esac + } | sed -e 's,^ *$,,' | sed -e 1q +} + # func_get_filelist module # Input: # - local_gnulib_dir from --local-dir @@ -2745,9 +2763,9 @@ # is specified, it will consist only of LGPLed source. # The tests-related module list is the transitive closure of the specified # modules, including tests modules, minus the main module list excluding - # 'link-warning'. Its lib/* sources (brought in through dependencies of - # *-tests modules) go into $testsbase/. It may contain GPLed source, even if - # --lgpl is specified. + # modules of applicability 'all'. Its lib/* sources (brought in through + # dependencies of *-tests modules) go into $testsbase/. It may contain GPLed + # source, even if --lgpl is specified. # Determine main module list. saved_inctests="$inctests" inctests="" @@ -2761,8 +2779,13 @@ fi # Determine tests-related module list. echo "$final_modules" | LC_ALL=C sort -u > "$tmp"/final-modules - sed_remove_link_warning='/^link-warning$/d' - testsrelated_modules=`func_reset_sigpipe; echo "$main_modules" | LC_ALL=C sort -u | sed -e "$sed_remove_link_warning" | LC_ALL=C join -v 2 - "$tmp"/final-modules` + testsrelated_modules=`func_reset_sigpipe + for module in $main_modules; do + if test \`func_get_applicability $module\` = main; then + echo $module + fi + done \ + | LC_ALL=C sort -u | LC_ALL=C join -v 2 - "$tmp"/final-modules` if test $verbose -ge 1; then echo "Tests-related module list:" echo "$testsrelated_modules" | sed -e 's/^/ /' @@ -4639,6 +4662,16 @@ done ;; + extract-applicability ) + for module + do + func_verify_module + if test -n "$module"; then + func_get_applicability "$module" + fi + done + ;; + extract-filelist ) for module do