Juan Francisco Cantero Hurtado wrote:
Thanks. Does it work with the following patch?
No. You forgot some "$<".
Oh no, I was trying to get OpenBSD make to accept "$<" as advertised in
its man page:
http://www.openbsd.org/cgi-bin/man.cgi?query=make
----------------------------------------------------------------
For maximum compatibility, `_' should only be used for actual inference
rules. It is also set for normal target rules when there is an
inference rule that matches the current target and prerequisite in
scope. That is, in
.SUFFIXES: .c .o
file.o: file.c
cmd1 $<
.c.o:
cmd2
building file.o will execute "cmd1 file.c".
----------------------------------------------------------------
The problem seems to be that I am using a "pattern rule" istead of a
"suffix rule" (inference rule). The GNU make manual says this:
""Suffix rules" are the old-fashioned way of defining implicit rules for
`make'. Suffix rules are obsolete because pattern rules are more
general and clearer. They are supported in GNU `make' for compatibility
with old makefiles."
But the OpenBSD make manual does not even mention pattern rules.
It seems both makes are too incompatible, so I'll leave the Makefile as
is. Thanks for your help and sorry for the inconveniences.