Hi,

When building gzip from the git repository in a subdirectory (VPATH build),
I get a build failure.

How to reproduce:

$ unset GNULIB_SRCDIR
$ git clone https://git.savannah.gnu.org/git/gzip.git
$ cd gzip
$ ./bootstrap
$ mkdir vpath
$ cd vpath
$ ../configure
$ make
$ make check
...
make[3]: Entering directory '/tmp/gzip/vpath'
  GEN      gzip.doc
  GEN      gzip.doc.gz
/bin/bash: line 1: ../gzip.doc: No such file or directory
make[3]: *** [Makefile:2435: gzip.doc.gz] Error 1
make[3]: Leaving directory '/tmp/gzip/vpath'

The problem is that while gzip.doc is expected to be in the source
directory (1. because it's in EXTRA_DIST, 2. see the check-local rule),
it's being generated in the build directory. The GNU Coding Standards
<https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html>
make it clear that the file should be generated in the source directory.

The attached patch fixes it. I verified that "make distcheck" passes.

>From 4174578109c1ba545d1ec4c79ae4943aca85650a Mon Sep 17 00:00:00 2001
From: Bruno Haible <br...@clisp.org>
Date: Mon, 30 Jan 2023 22:24:17 +0100
Subject: [PATCH] Fix "make check" in a subdirectory (VPATH build).

* Makefile.am (gzip.doc): Generate gzip.doc in the source directory, not in the
build directory.
---
 Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile.am b/Makefile.am
index 25b2042..3a7dfea 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -86,7 +86,7 @@ version.h: Makefile
 
 gzip.doc: gzip.1
 	$(AM_V_GEN)groff -man -Tascii $(srcdir)/gzip.1 | col -b | uniq > $@-t \
-	  && mv $@-t $@
+	  && mv $@-t $(srcdir)/gzip.doc
 
 gzip.doc.gz: gzip.doc $(bin_PROGRAMS)
 	$(AM_V_GEN)./gzip < $(srcdir)/gzip.doc >$@-t && mv $@-t $@
-- 
2.34.1

Reply via email to