GNU Info

Info Node: (make.info)Recursion

(make.info)Recursion


Next: Sequences Prev: Interrupts Up: Commands
Enter node , (file) or (file)node

Recursive Use of `make'
=======================

   Recursive use of `make' means using `make' as a command in a
makefile.  This technique is useful when you want separate makefiles for
various subsystems that compose a larger system.  For example, suppose
you have a subdirectory `subdir' which has its own makefile, and you
would like the containing directory's makefile to run `make' on the
subdirectory.  You can do it by writing this:

     subsystem:
             cd subdir && $(MAKE)

or, equivalently, this (Note: Summary of Options.):

     subsystem:
             $(MAKE) -C subdir

   You can write recursive `make' commands just by copying this example,
but there are many things to know about how they work and why, and about
how the sub-`make' relates to the top-level `make'.

   For your convenience, GNU `make' sets the variable `CURDIR' to the
pathname of the current working directory for you.  If `-C' is in
effect, it will contain the path of the new directory, not the
original.  The value has the same precedence it would have if it were
set in the makefile (by default, an environment variable `CURDIR' will
not override this value).  Note that setting this variable has no
effect on the operation of `make'

MAKE Variable
The special effects of using `$(MAKE)'.
Variables/Recursion
How to communicate variables to a sub-`make'.
Options/Recursion
How to communicate options to a sub-`make'.
-w Option
How the `-w' or `--print-directory' option
helps debug use of recursive `make' commands.

automatically generated by info2www version 1.2.2.9