%% address@hidden writes:
>> >> 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.
d> # This comes from one directory's included makefile
d> objdir := /obj1
d> srcs := a.c
d> src-dirs := /foo
d> # This is the generic rules that cannot be directory specific
d> objs := $(addprefix $(objdir)/,$(notdir $(srcs:.c=.o)))
d> vpath $(objdir)/%.c $(src-dirs)
Er... of course this won't work. The .c file isn't in $(objdir), so it
will never match the pattern $(objdir)/%.c.
You have to use the source directories in the pattern for the .c files.
The idea is to use a prefix that is "above" the source directories. As
I said above, depending on your environment this might be difficult or
even impossible.