Hi Ken,
Thanks for your reply.
> default: ${OUTDIR}/conf/lang/arch/a.txt
The prerequisites of rules should typically be in constant locations with respect to the make file. Since the prerequisite for default contains a variable path, the requirement will move around.
Well, it's only moving around between different invocations of make, so I don't see that as an issue, since make is stateless. Also, this method works fine for processing one level of file extension, it just seems to have a problem with 2 or more.
e.g. change the target to:
default: ${OUTDIR}/arch/a.txt.conf.langand it will be made without problems.
Nevertheless, what you said gave me an idea for one part of what may be wrong. If I change the VPATH line to be (using my original default: target):
VPATH = src ${OUTDIR}Now it still fails, but if from the command line I type:
make build/arch/a.txt.conf.lang
make build/lang/arch/a.txt.conf
make build/conf/lang/arch/a.txt
make make: Nothing to be done for `default'.
All commands complete successfully so it obviously knows how to build all the pre-requisites. The only difference is in it's treatment of targets when using "." and "build". For "." it can somehow identify many levels of pre-requisites, but for "build" it can only identify one level before complaining, even though it knows how to make them if I do each step manually.
What are you really trying to do here at a high level?
Hard to explain without going into far too much detail, but basically multi-configuration builds. This is a quite simplified example of the fundamental problem I am having.
Best regards, Ian
_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
_______________________________________________ Help-make mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/help-make
