make .SUFFIXES bug?
Simon J. Gerraty
sjg at juniper.net
Tue Dec 15 17:44:00 UTC 2015
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:
> @echo Making $@ from $<
> rm -f $@
> @LC_ALL=C \
> sed -e "s|foo|bar|g" \
> $< >$@
>
> "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...
More information about the freebsd-current
mailing list