Contents|Index|Previous|Next

VPATH: Search Path for All Dependencies

The value of the make variable, VPATH, specifies a list of directories that make should search. Most often, the directories are expected to contain dependency files that are not in the current directory; however, VPATH specifies a search list that make applies for all files, including files which are targets of rules. Thus, if a file that is listed as a target or dependency 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 becomes the dependency. Rules may then specify the names of source files in the dependencies as if they all existed in the current directory. See Writing Shell Commands with Directory Search. In the VPATH variable, directory names are separated by colons or blanks. The order in which directories are listed is the order followed by make in its search. For example, VPATH = src:../headers specifies a path containing two directories, ‘src’ and ‘../headers’, which make searches in that order. With this value of VPATH, the rule, foo.o : foo.c is interpreted as if it were written: foo.o : src/foo.c.

This is assuming the file, ‘foo.c’, does not exist in the current directory but is found in the directory, ‘src’.