(make.info.gz) Commands/Search
Info Catalog
(make.info.gz) Search Algorithm
(make.info.gz) Directory Search
(make.info.gz) Implicit/Search
4.5.4 Writing Shell Commands with Directory Search
--------------------------------------------------
When a prerequisite is found in another directory through directory
search, this cannot change the commands of the rule; they will execute
as written. Therefore, you must write the commands with care so that
they will look for the prerequisite in the directory where `make' finds
it.
This is done with the "automatic variables" such as `$^' (
Automatic Variables). For instance, the value of `$^' is a list of
all the prerequisites of the rule, including the names of the
directories in which they were found, and the value of `$@' is the
target. Thus:
foo.o : foo.c
cc -c $(CFLAGS) $^ -o $@
(The variable `CFLAGS' exists so you can specify flags for C
compilation by implicit rules; we use it here for consistency so it will
affect all C compilations uniformly; Variables Used by Implicit
Rules Implicit Variables.)
Often the prerequisites include header files as well, which you do
not want to mention in the commands. The automatic variable `$<' is
just the first prerequisite:
VPATH = src:../headers
foo.o : foo.c defs.h hack.h
cc -c $(CFLAGS) $< -o $@
Info Catalog
(make.info.gz) Search Algorithm
(make.info.gz) Directory Search
(make.info.gz) Implicit/Search
automatically generated byinfo2html