On Tue, Dec 15, 2015 at 04:01:41PM +0100, Carsten Kunze wrote: > Hello, > > 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: > > 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 According to POSIX http://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html .SUFFIXES Prerequisites of .SUFFIXES shall be appended to the list of known suffixes and are used in conjunction with the inference rules (see Inference Rules). If .SUFFIXES does not have any prerequisites, the list of known suffixes shall be cleared. and goes on to list the expected suffixes: .SUFFIXES: .o .c .y .l .a .sh .f .c˜ .y˜ .l˜ .sh˜ .f˜ > .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? That's ironic, considering that a while back they were adamant that if the suffix wasn't in the list cited in POSIX, then it was a bug in the makefile. Your example does not list a suffix for ".1". It would be harmless to update groff's makefile to provide that, and a corresponding suffix-rule. -- Thomas E. Dickey <dickey_at_invisible-island.net> http://invisible-island.net ftp://invisible-island.net
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:01 UTC