VPATH: Search Path for All Prerequisites
The value of the
VPATH specifies a list of
make should search. Most often, the
directories are expected to contain prerequisite files that are not in the
current directory; however,
VPATH as a search
list for both prerequisites and targets of rules.
Thus, if a file that is listed as a target or prerequisite does not exist
in the current directory,
make searches the directories listed in
VPATH for a file with that name. If a file is found in one of
them, that file may become the prerequisite (see below). Rules may then
specify the names of files in the prerequisite list as if they all
existed in the current directory. See Writing Recipes with Directory Search.
VPATH variable, directory names are separated by colons or
blanks. The order in which directories are listed is the order followed
make in its search. (On MS-DOS and MS-Windows, semi-colons
are used as separators of directory names in
VPATH, since the
colon can be used in the pathname itself, after the drive letter.)
VPATH = src:../headers
specifies a path containing two directories, src and
make searches in that order.
With this value of
VPATH, the following rule,
foo.o : foo.c
is interpreted as if it were written like this:
foo.o : src/foo.c
assuming the file foo.c does not exist in the current directory but is found in the directory src.