automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FYI] texi: build version.texi and stamp-vti in srcdir


From: Stefano Lattarini
Subject: [FYI] texi: build version.texi and stamp-vti in srcdir
Date: Sun, 19 May 2013 22:14:58 +0200

Do so even when the 'info-in-builddir' option is present, or when
the corresponding '*.info' files are listed in $(CLEANFILES) or in
$(DISTCLEANFILES).

This fixes failures in the following tests, when they are run with
$MAKE pointing to FreeBSD make:

    - txinfo-nodist-info.sh
    - txinfo23.sh
    - txinfo24.sh
    - txinfo28.sh
    - txinfo25.sh

BTW, notice that the test 'txinfo-builddir.sh' fails with FreeBSD make
as well, but that is due to a known FreeBSD make VPATH issue (the same
described in automake bug#7884).  But that is not a regression, since
the 'info-in-builddir' option will be new in Automake 1.14.  Moreover,
we already warn in the manual that the use of that option can indeed
cause problems with VPATH builds done by non-GNU make.

* bin/automake.in (handle_texinfo_helper): New local variable
'$soutdir'.  Use it instead of '$outdir' where appropriate (in
particular, in the transform used on file 'texi-vers.am'.
* t/txinfo-builddir.sh: Adjust to avoid spurious failures.

Signed-off-by: Stefano Lattarini <address@hidden>
---
 bin/automake.in      |  9 +++++----
 t/txinfo-builddir.sh | 22 +++++++++++++---------
 2 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/bin/automake.in b/bin/automake.in
index c95289f..8f3fb48 100644
--- a/bin/automake.in
+++ b/bin/automake.in
@@ -3217,6 +3217,7 @@ sub handle_texinfo_helper
       #      was once done when the (now removed) 'cygnus' option was
       #      given.  See automake bug#11034 for more discussion.
       my $insrc = 1;
+      my $soutdir = '$(srcdir)/' . $outdir;
 
       if (option 'info-in-builddir')
         {
@@ -3239,12 +3240,12 @@ Oops!
 EOF
         }
 
-      $outdir = '$(srcdir)/' . $outdir if $insrc;
+      $outdir = $soutdir if $insrc;
 
       # If user specified file_TEXINFOS, then use that as explicit
       # dependency list.
       @texi_deps = ();
-      push (@texi_deps, "$outdir$vtexi") if $vtexi;
+      push (@texi_deps, "${soutdir}${vtexi}") if $vtexi;
 
       my $canonical = canonicalize ($infobase);
       if (var ($canonical . "_TEXINFOS"))
@@ -3298,8 +3299,8 @@ EOF
                                          new Automake::Location,
                                          TEXI     => $texi,
                                          VTI      => $vti,
-                                         STAMPVTI => "${outdir}stamp-$vti",
-                                         VTEXI    => "$outdir$vtexi",
+                                         STAMPVTI => "${soutdir}stamp-$vti",
+                                         VTEXI    => "$soutdir$vtexi",
                                          MDDIR    => $conf_dir,
                                          DIRSTAMP => $dirstamp);
        }
diff --git a/t/txinfo-builddir.sh b/t/txinfo-builddir.sh
index e0156c5..42d4112 100644
--- a/t/txinfo-builddir.sh
+++ b/t/txinfo-builddir.sh
@@ -22,6 +22,10 @@
 required='makeinfo tex texi2dvi'
 . test-init.sh
 
+if useless_vpath_rebuild; then
+  skip_ "$MAKE has brittle VPATH support"
+fi
+
 echo AC_OUTPUT >> configure.ac
 
 cat > Makefile.am << 'END'
@@ -86,38 +90,38 @@ $MAKE info
 test -f foo.info
 test -f subdir/bar.info
 test -f mu.info
-test -f stamp-vti
-test -f version.texi
+test -f ../stamp-vti
+test -f ../version.texi
 test ! -e ../foo.info
 test ! -e ../subdir/bar.info
 test ! -e ../mu.info
-test ! -e ../stamp-vti
-test ! -e ../version.texi
 $MAKE clean
 test -f foo.info
 test -f subdir/bar.info
 test ! -e mu.info
-test -f stamp-vti
-test -f version.texi
+test -f ../stamp-vti
+test -f ../version.texi
 
 # Make sure stamp-vti is older that version.texi.
 # (A common situation in a real tree).
 $sleep
-touch stamp-vti
+touch ../stamp-vti
 
 $MAKE distcheck
 # Being distributed, this file should have been rebuilt.
 test -f mu.info
 
 $MAKE distclean
-test -f stamp-vti
-test -f version.texi
+test -f ../stamp-vti
+test -f ../version.texi
 test -f foo.info
 test -f subdir/bar.info
 test ! -e mu.info
 
 ../configure
 $MAKE maintainer-clean
+test ! -e ../stamp-vti
+test ! -e ../version.texi
 test ! -e stamp-vti
 test ! -e version.texi
 test ! -e foo.info
-- 
1.8.3.rc2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]