[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: targets built to an "output" directory.
From: |
Ian Dunbar |
Subject: |
Re: targets built to an "output" directory. |
Date: |
Fri, 17 Sep 2004 01:12:49 +0000 |
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.lang
and 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