Remove the $J variable, it was useless for now. Rename $I to the more
verbose $(INCLUDE_DIR) since it won't be used very often by the user
(makefile writer nor makefile user).
The include directory symlink is now handled per-project, allowing the
inclusion of sub-project headers more naturally (without requiring to
prefix the parent project name and allowing the sub-project to keep its
original include directory name). The $P variable is not needed anymore
because of this.
The makefiles functions changed a little to allow per-project include
directory making Lib.mak not include any other files; because of that the
"all" rule now uses the "secondary expansion" to calculate the
prerequisites (the $(all) variable has not been populated yet when the
"all" rule is defined).
The Toplevel.mak files are now guarded to avoid multiple inclusions. This
should be not a problem since now the Toplevel.mak should not be changed,
is like an extension to Lib.mak that the user shouldn't mdify unless
he is hacking the build system.
The subproj is now renamed to otherproj to illustrate how the sub-directory
where it is stored doesn't have to match the name of the sub-project.
The pre-compiled headers feature is a little broken for now because the
system includes detection is too weak to differentiate things real system
includes from things included from $(INCLUDE_DIR).