Subject: Implicit .SUFFIXES in make
To: None <tech-toolchain@NetBSD.org>
From: Martin Husemann <martin@duskware.de>
List: tech-toolchain
Date: 05/23/2005 16:54:47
A discussion on netbsd-users claimed that make would be broken >= 2.0.
The example give was the lynx, when build natively (w/o pkgsrc, i.e. without
using gmake).

The lossage is minimal: in src/chrtrans there is a makefile generated
that has a long list of .h files to be generated called $(TABLES), and
a rule:

.tbl.h:
	./makeuctb $(srcdir)/$*.tbl $*.h

but .h is no known suffix, since the makefile only contains

.SUFFIXES : $o .tbl .i

(I'm not sure what the $o is about, maybe autoconf fall out)

Adding a .h here fixes the build.

So what is make(1) supposed to do - have implicit .c .cpp .h what-have-you
suffixes? The make(1) in older releases (1.6.x or older) is said to "work"
here. Should pkgsrc fix this and remove the gnu make use?

Martin