Re: make .SUFFIXES bug?

From: Simon J. Gerraty <sjg_at_juniper.net>
Date: Tue, 15 Dec 2015 09:43:55 -0800
Carsten Kunze <carsten.kunze_at_arcor.de> wrote:

> current groff doesn't build on FreeBSD.  I had noticed the same issue
> some months ago on NetBSD and cross checked on FreeBSD and it had
> worked on FreeBSD.  There must have somethig changed since then.  How
> to reproduce:

FreeBSD now uses same make as NetBSD ;-)

> When there is a file "test.1.man" and a makefile:
> 
> .SUFFIXES:
> .SUFFIXES: .roff .in .ps .mom .pdf .me .ms .ps .html .txt .texi .dvi .pdf .xhtml .man .c .cpp .log .o .obj .sed .sin .test .test$(EXEEXT) .trs .ypp

What is the value of EXEEXT at this point?

> .man:
>         _at_echo Making $_at_ from $<
>         rm -f $_at_
>         _at_LC_ALL=C \
>          sed -e "s|foo|bar|g" \
>          $< >$_at_
> 
> "make test.1" results in "make: don't know how to make test.1. Stop".
> 
> When ".man" is put to the start of the list it works.  It also works
> when the first .SUFFIXES line is removed.
> 
> The answer from NetBSD is that this is very likely a bug in make.  May
> this also be the case for FreeBSD?

Since the make is the same, the answer would be yes.
But it may not be a bug in make itself:

$ echo hi > test.1.man
$ make -r -f /homes/sjg/make-tests/suffix2 test.1
Making test.1 from test.1.man
$ make  -f /homes/sjg/make-tests/suffix2 test.1
make: don't know how to make test.1. Stop

make: stopped in /tmp
$

Will look deeper...
Received on Tue Dec 15 2015 - 16:44:00 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:01 UTC