diff gnulib-tool @ 7866:58d9bcb3d6c4

Don't unnecessarily run configure and make.
author Bruno Haible <bruno@clisp.org>
date Sun, 14 Jan 2007 20:45:45 +0000
parents 08609b22ffd5
children 96efe9fbb2f4
line wrap: on
line diff
--- a/gnulib-tool	Sun Jan 14 20:29:04 2007 +0000
+++ b/gnulib-tool	Sun Jan 14 20:45:45 2007 +0000
@@ -22,7 +22,7 @@
 
 progname=$0
 package=gnulib
-cvsdatestamp='$Date: 2007-01-11 13:28:50 $'
+cvsdatestamp='$Date: 2007-01-14 20:45:45 $'
 last_checkin_date=`echo "$cvsdatestamp" | sed -e 's,^\$[D]ate: ,,'`
 version=`echo "$last_checkin_date" | sed -e 's/ .*$//' -e 's,/,-,g'`
 nl='
@@ -2659,7 +2659,25 @@
      ${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"