Assume this tree structure
Recusrive make can be used to build everything in the tree. The directory $HOME contains this common.mk ﬁle
Each of the subdirectories will contain a Makeﬁle that includes the common.mk. Then running the command make -I$HOME from A gives
Following from the above, each Makeﬁle in subfolders will start by deﬁning its own speciﬁc variables, and then it will include a common.mk which resides in common location such as $HOME.
Each makeﬁle will include this ﬁle. An example of a Makeﬁle in the A directory shown above is
Each sub directory will include similar makeﬁle which starts by listing the directories below it, then including common.mk
The actions actually performed by makeﬁle will be done at the bottom most directories ﬁrst, followed by the higher level up. This means the tree is ﬁrst traveresed to the bottom, then when the bottom is reached, on going back up, each makeﬁle will execute any other action in its all such as compiling ﬁles and other such tasks. So, this is like a stack. The last directory visited on the way down, is the ﬁrst directory that will be updated in the build process, and the top directory, will be the last directory that is updated.
Suppose I have index.tex that I want to build it to index.htm to try something but it is allready update to date. But if I do make clean it will now clean everything down the whole tree, which is not what I want.
I can touch index.tex then do make. But I can also use -B option and give it the target to build, like this
from http://pic.dhe.ibm.com/infocenter/aix/v6r1/ it says