On Mon, 29 May 2017 18:46:53 +0200 Quentin Rameau <quinq@fifth.space> wrote:
Hey Quentin, > Well, I've been warning you with the first patch long ago. yes, and admittedly, even though it was a painful process, I learned a lot about make and how sadly infested the ecosystem is with GNU extensions. > The issue is that OpenBSD make doesn't take in account the inference > rule because of the added silent dependency. > It looks a lot like it's an obsd make issue, I didn't personally took > too much time to go through the source when the issue arose two months > ago. Well, in POSIX-speak from the reference: "If the target to be built does not contain a suffix and there is no rule for the target, the single suffix inference rules shall be checked. The single-suffix inference rules define how to build a target if a file is found with a name that matches the target name with one of the single suffixes appended. A rule with one suffix .s2 is the definition of how to build target from target.s2. The other suffix (.s1) is treated as null." This clearly shows that OpenBSD is not violating POSIX here. I think though it's a shame that single suffix rules are treated as second class citizens here. This "inconsistency" in the standard has been filled out by the other implementations which is the reason why it has gone unnoticed until Hiltjo pointed it out to me. If you have any suggestions to solve this elegantly, please let me know. I know it's a mountain of work, but a "suckless" make implementation without extensions, which is just following the POSIX spec, would be really cool. With best regards Laslo Hunhold -- Laslo Hunhold <d...@frign.de>