make-w32
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: VPATH and vpath problems


From: Dan Clarke
Subject: Re: VPATH and vpath problems
Date: Fri, 09 Jun 2006 12:13:41 +0000
User-agent: Thunderbird 1.5.0.2 (Windows/20060308)

On 2006-6-7 16:44 UTC, Dan Clarke wrote:
> / / / VPATH = w:/modules7/graphics/pc/vshaders/effects/ / vpath %.hvs
> w:/modules7/graphics/pc/vshaders/effects/ / / / %.hvo: %.hvs/ / / /
> and I get the following error .../ / / / gnumake: *** No rule to make
> target/ / `\gamedir\vshaders\effects\ccorrect.hvo', needed by
> `project.exe'.  Stop./

Try building in the object directory. Then you can specify the
object files as, e.g.,
 ccorrect.hvo
and vpath can find
 w:/modules7/graphics/pc/vshaders/effects/ccorrect.hvo
as expected. I'm guessing that you're specifying objects like this:
 /gamedir/vshaders/effects/ccorrect.hvo
so that with vpath you can find
 gamedir/vshaders/effects/ccorrect.hvo

w:/modules7/graphics/pc/vshaders/effects/ccorrect.hvo/gamedir/vshaders/effects/ccorrect.hvo

neither of which is what you want. See:
 http://make.paulandlesley.org/vpath.html





Yes, you're right - I am specifying objects as
"/gamedir/vshaders/effects/ccorrect.hvo".  The ".hvo" objects are not
intermediate files.  They are actually used by my final program and
cannot be in the same directory as my makefile - they must go into the
directories specified in the example below.  The main makefile is in the
gamedir directory, and my .hvo files need to end up off the
"/gamedir/vshaders/" directory.

For example ...

"\modules7\graphics\pc\vshaders\effects\ccorrect.hvs" --->
"\gamedir\vshaders\effects\ccorrect.hvo"
"\modules7\graphics\pc\vshaders\effects\contrast.hvs" --->
"\gamedir\vshaders\effects\contrast.hvo"
"\modules7\graphics\pc\vshaders\effects\blur.hvs" --->
"\gamedir\vshaders\effects\blur.hvo"

"\modules7\graphics\pc\vshaders\prelit\spec.hvs" --->
"\gamedir\vshaders\prelit\spec.hvo"
"\modules7\graphics\pc\vshaders\prelit\reflect.hvs" --->
"\gamedir\vshaders\prelit\reflect.hvo"

"\modules7\graphics\pc\vshaders\unlit\spec2.hvs" --->
"\gamedir\vshaders\unlit\spec2.hvo"
"\modules7\graphics\pc\vshaders\unlit\reflect2.hvs" --->
"\gamedir\vshaders\unlit\reflect2.hvo"

etc.

There's loads more directories like this, all going into some directory
coming off "\gamedir\vshaders\".  The path relative to
"\gamedir\vshaders\" matches the path relative to
"\modules7\graphics\pc\vshaders\".

In each directory containing the source ".hvs" files, I have another
included makefile which has a list of all the .hvo files that need
building in that directory.

As there's lots of target directories for these .hvo files, then I can't
just change directory into them (or can I?).

Any ideas?

Thanks again,
- Dan



I think I've worked out how to do it. As each .hvs source directory has a sub-makefile in it anyway - I'm just putting an implicit rule at the top of each sub-makefile which says which directory it should go in. Seems to work quite nicely.

- Dan








reply via email to

[Prev in Thread] Current Thread [Next in Thread]