> %% Dale King <[EMAIL PROTECTED]> writes:
> 
>   >> You could do one of two things: use the VPATH variable as a
>   >> target-specific (or pattern-specific) variable (I think this will
>   >> work).
> 
>   dk> No, it doesn't appear to work.
> 
> Hm.  I guess VPATH is parsed early and not re-parsed for each target.
> This could be considered a bug, or at least an area for enhancement.

Well given the track record for how many years we have to live with bugs
without getting a new release (3 years this coming Monday), I'm not holding
my breath.

>   >> Or, use a more restrictive pattern for vpath, so instead of:
>   >> 
>   >> vpath %.c ...
>   >> 
>   >> you do something like:
>   >> 
>   >> vpath $(prefix)/%.c ...
>   >> 
>   >> where the prefix variable restricts the values to match the
>   >> "current" location, whatever that is.
> 
>   dk> That doesn't seem to work either.
> 
> It will definitely work, if you can compute the proper value of prefix.
> Which you may not be able to do, depending on your environment.

Then maybe I am misunderstanding you. Here is a fuller example where I have
/foo/a.c that should get built into /obj1/a.o and /bar/a.c that gets built
into /obj2/a.o (I just use copy here).

This gives:

$ make
make: *** No rule to make target `/obj1/a.c', needed by `/obj1/a.o'.  Stop.

Makefile:

all : /obj1/a.o /obj2/a.o

# This comes from one directory's included makefile
objdir := /obj1
srcs := a.c
src-dirs := /foo

# This is the generic rules that cannot be directory specific
objs := $(addprefix $(objdir)/,$(notdir $(srcs:.c=.o)))
vpath $(objdir)/%.c $(src-dirs)

$(objs) : %.o : %.c
        @cp -v $< $@

# This comes from another directory's included makefile
objdir := /obj2
srcs := a.c
src-dirs := /bar

# This is the generic rules that cannot be directory specific
objs := $(addprefix $(objdir)/,$(notdir $(srcs:.c=.o)))
vpath $(objdir)/%.c $(src-dirs)

$(objs) : %.o : %.c
        @cp -v $< $@



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

Reply via email to