Suffix rules and prerequisites
Rene Kita <[email protected]> Wed, 22 Apr 2026 17:19:28 +0200
| Newsgroups | gmane.comp.gnu.make.general |
|---|---|
| Message-ID | <[email protected]> |
The Makefile below works well with OpenBSD make and bmake but fails with GNU make. I'm looking for a way to make this work with GNU make, preferably in a portable way. #v+ .SUFFIXES: .in all: foo .in: bar test -f bar cat bar > $@ .PHONY: bar bar: echo bar > $@ .PHONY: clean clean: rm -f foo bar #v- With this example Makefile and a file 'foo.in' in the same directory I can just call bmake and it works as expected. I get a file foo which contains 'bar'. gmake throws an error: #v+ % gmake test -f bar gmake: *** [Makefile:6: foo] Error 1 #v- But: #v+ % gmake bar && gmake echo bar > bar test -f bar cat bar > foo #v- Why is GNU make ignoring the prerequisite? How do I fix this?