> DeĀ : Paul Smith 
>   oc> make simply has to refuse building "chained rules" containing
>   oc> something recursive. But it should not automatically reject a
>   oc> makefile when it contains potentially recursive rules.
> 
> You are suggesting changing the above algorithm so that detection of a
> recursion would cause that pattern to not match, but would allow
> subsequent patterns to continue, is that correct?

Indeed.

An other suggestion could be to allow several explicit rules to build a
given target, using different prerequisites, but I don't know if it would be
useful to many people. It's more from a coherence point of view (as it is
allowed for pattern rules).

What do you and the readers here think about it? If they seem to be a good
idea, is there some "suggestion list" where I could submit these
suggestions?

>   oc> Simply because there is no other way (except if I'm missing
>   oc> something) to tell in a single makefile how to produce a pdf from
>   oc> a ps (where a ps is available or can be derived from other means
>   oc> than going through a pdf) AND how to produce a ps from a pdf
>   oc> (where a pdf is available or can be derived from other means than
>   oc> going through a ps).
> 
> Well, you could do something like this:
> 
>     ifneq (,$(filter %.pdf,$(MAKECMDGOALS)))
>        %.pdf : %.ps
>             ...
>     else
>        %.ps : %.pdf
>             ...
>     endif
> 
> And you could make it even fancier by using $(wildcard ...) to test
> whether files of certain types existed.  Not very nice, but it's
> something.

Nice workaround, but workaround only ;-). Now suppose (in a more complex
makefile including those rules and other ones) that my main goal is
something else than a PDF, but a PDF is required as an intermediate file.

Not allowing recursions at all in a makefile has the effect of disabling
some of the power of make, who is normally able to find itself the correct
rules to use to build the goal.

Olivier



_______________________________________________
Help-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-make

Reply via email to