* Stefano Lattarini wrote on Thu, Apr 22, 2010 at 02:25:08PM CEST: > At Tuesday 20 April 2010, Ralf Wildenhues wrote: > > Yeah, heirlooom make has a .l.o rule that triggers before our .l.c > > and .c.o rule chains. > > > > I guess this could be worked around by adding explicit rules (at > > least that's what SUSv3 recommends), > > maybe explicit dependencies without rules suffice. > Yes, they does. I hacked a bit the silent5.test to demonstrate this > (the diff is in the attached "patch").
That is indeed a good indication. > However, I don't know enough > Automake internals to easily write a patch integrating this knowledge > into Automake core. First step would be to write a new testsuite test to clearly expose this issue; for example by adding a flag to yacc or lex invocation that won't be added by the internal rules. Silent mode is not relevant for this. Then, look at automake.in:lang_yacc_target_hook. It already computes the name of the .c file. The missing part is then to find out whether the .$(OBJEXT) or .lo file is renamed (and thus will already be handled by an explicit rule anyway), or whether it will be handled by one of the suffix rules .c.$(OBJEXT) or .c.lo. Only in the latter two cases we should add an explicit dependency. If you have trouble with the second part, the first would already help. > > I'm not sure we should spend time on this old make, though. > If I venture to write a patch to solve this problem, will you > consider it? Yes, if it's not dangerous or regresses other situations. Cheers, Ralf
