[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Fix a hanging build with non-GNU make
|
From: |
Jose E. Marchesi |
|
Subject: |
Re: Fix a hanging build with non-GNU make |
|
Date: |
Sun, 21 Feb 2021 23:15:07 +0100 |
|
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Hi Bruno.
> On Solaris, with Solaris 'make', the build hangs here:
>
> Making all in doc
> /opt/csw/bin/gsed -n -e 's/^\* \([^:]*\)::.*/\1/p' | /opt/csw/bin/gsed -e
> 's| |/|g' \
> > nodelist
>
> Of course, a 'gsed' invocation with no file arguments reads from stdin and
> thus hangs. The problem is the use of '$<', which is only allowed in
> suffix rules (called "inference rules" in POSIX), per
> <https://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html>.
>
> See also the Autoconf manual
> <https://www.gnu.org/software/autoconf/manual/autoconf-2.70/html_node/_0024_003c-in-Ordinary-Make-Rules.html>
>
> Here is a proposed fix.
OK for master.
Thanks!
>
>
>>From 7d8e1514d46424fd2237940211b4e65b2f3b9228 Mon Sep 17 00:00:00 2001
> From: Bruno Haible <bruno@clisp.org>
> Date: Sun, 21 Feb 2021 23:02:33 +0100
> Subject: [PATCH] Fix a hanging build with non-GNU make.
>
> * doc/Makefile.am (nodelist): Don't use $< in a rule that is not a suffix
> rule.
> ---
> doc/Makefile.am | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/doc/Makefile.am b/doc/Makefile.am
> index c2c1c57..9344bb1 100644
> --- a/doc/Makefile.am
> +++ b/doc/Makefile.am
> @@ -31,8 +31,9 @@ pvm-insns.texi: $(top_srcdir)/libpoke/pvm.jitter
> $(srcdir)/gen-pvm-insns.sh
> # Look for the macro SPACE_SUBSTITUTE in pk-repl.c to see how this
> # is used.
> nodelist: $(srcdir)/poke.texi
> - $(SED) -n -e 's/^\* \([^:]*\)::.*/\1/p' $< | $(SED) -e 's| |/|g' \
> - > nodelist
> + $(SED) -n -e 's/^\* \([^:]*\)::.*/\1/p' $(srcdir)/poke.texi \
> + | $(SED) -e 's| |/|g' \
> + > nodelist
> test -s nodelist || $(RM) nodelist
>
> INFO_DEPS = $(srcdir)/poke.info