(make.info)Commands/Search


Next: Implicit/Search Prev: Selective Search Up: Directory Search

Writing Shell Commands with Directory Search
--------------------------------------------

   When a dependency 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 dependency in the directory where `make' finds
it.

   This is done with the "automatic variables" such as `$^' (*note
Automatic Variables: Automatic.).  For instance, the value of `$^' is a
list of all the dependencies 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; Note: Variables Used by Implicit
Rules..)

   Often the dependencies include header files as well, which you do not
want to mention in the commands.  The automatic variable `$<' is just
the first dependency:

     VPATH = src:../headers
     foo.o : foo.c defs.h hack.h
             cc -c $(CFLAGS) $< -o $@


automatically generated by info2www