On Mon, 29 May 2017 18:46:53 +0200
Quentin Rameau <quinq_AT_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 <dev_AT_frign.de>
Received on Mon May 29 2017 - 19:01:05 CEST