X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=gnulib-tool;h=547e29a576489f23fe28aea3191762e8305cca68;hb=765f0950e35710f3c4299062fc60319f018d1779;hp=cfc10b69c6f8aedc35726d3ce290f618c8f095e2;hpb=32cf259b8209ae116d7a5ca193803de036607f49;p=gnulib.git diff --git a/gnulib-tool b/gnulib-tool index cfc10b69c..547e29a57 100755 --- a/gnulib-tool +++ b/gnulib-tool @@ -22,7 +22,7 @@ progname=$0 package=gnulib -cvsdatestamp='$Date: 2007-01-09 20:45:18 $' +cvsdatestamp='$Date: 2007-01-21 20:07:09 $' last_checkin_date=`echo "$cvsdatestamp" | sed -e 's,^\$[D]ate: ,,'` version=`echo "$last_checkin_date" | sed -e 's/ .*$//' -e 's,/,-,g'` nl=' @@ -71,7 +71,7 @@ fi # However, do this only for gnulib-tool itself, not for the code that # gnulib-tool generates, since we don't want "sed --posix" to leak # into makefiles. -if (alias) > /dev/null 2>&1 && echo | sed --posix d >/dev/null 2>&1; then +if (alias) > /dev/null 2>&1 && echo | sed --posix -e d >/dev/null 2>&1; then alias sed='sed --posix' fi @@ -819,12 +819,13 @@ func_all_modules () (cd "$local_gnulib_dir" && find modules -type f -print | sed -e 's,^modules/,,' -e 's,\.diff$,,') fi } \ - | sed -e '/^CVS$/d' -e '/\/CVS$/d' \ + | sed -e '/^CVS\//d' -e '/\/CVS\//d' \ -e '/^ChangeLog$/d' -e '/\/ChangeLog$/d' \ -e '/^COPYING$/d' -e '/\/COPYING$/d' \ -e '/^README$/d' -e '/\/README$/d' \ -e '/^TEMPLATE$/d' \ -e '/^TEMPLATE-TESTS$/d' \ + -e '/^\..*/d' \ -e '/~$/d' \ | sed -e '/-tests$/d' \ | LC_ALL=C sort -u @@ -1020,7 +1021,10 @@ func_get_include_directive () func_get_license () { func_lookup_file "modules/$1" - sed -n -e "/^License$sed_extract_prog" < "$lookedup_file" + { sed -n -e "/^License$sed_extract_prog" < "$lookedup_file" + # The default is GPL. + echo "GPL" + } | sed -e 's,^ *$,,' | sed -e 1q } # func_get_maintainer module @@ -2273,6 +2277,11 @@ func_create_testdir () # Check that the license of every module is consistent with the license of # its dependencies. saved_modules="$modules" + saved_inctests="$inctests" + # When computing transitive closures, don't consider $module to depend on + # $module-tests. Need this becauses tests are implicitly GPL and may depend + # on GPL modules - therefore we don't want a warning in this case. + inctests="" for requested_module in $saved_modules; do requested_license=`func_get_license "$requested_module"` if test "$requested_license" != GPL; then @@ -2293,6 +2302,7 @@ func_create_testdir () fi done modules="$saved_modules" + inctests="$saved_inctests" # Subdirectory names. sourcebase=gllib @@ -2658,7 +2668,25 @@ func_create_testdir () ${AUTOMAKE} --add-missing --copy || func_exit 1 ) || func_exit 1 fi - if grep '^BUILT_SOURCES *+=' "$testdir/$sourcebase/Makefile.am" > /dev/null; then + # Need to run configure and make once, to create built files that are to be + # distributed (such as getdate.c). + # Extract the value of "CLEANFILES += ...". + cleaned_files=`sed -e "$sed_remove_backslash_newline" < "$testdir/$sourcebase/Makefile.am" \ + | sed -n -e 's,^CLEANFILES[ ]*+=\([^#]*\).*$,\1,p'` + cleaned_files=" "`for file in $cleaned_files; do echo "$file"; done`" " + # Extract the value of "BUILT_SOURCES += ...". Remove variable references + # such $(FOO_H) because they don't refer to distributed files. + sed_remove_make_variables='s,[$]([A-Za-z0-9_]*),,g' + built_sources=`sed -e "$sed_remove_backslash_newline" < "$testdir/$sourcebase/Makefile.am" \ + | sed -n -e 's,^BUILT_SOURCES[ ]*+=\([^#]*\).*$,\1,p' \ + | sed -e "$sed_remove_make_variables"` + distributed_built_sources=`for file in $built_sources; do + case "$cleaned_files" in + *" "$file" "*) ;; + *) echo $file ;; + esac; + done` + if test -n "$distributed_built_sources"; then (cd "$testdir" ./configure || func_exit 1 cd "$sourcebase"