I think there's an easier way to do directory recursion in makefiles, just using the export command (which sets variables globally, accessible to all shell scripts). So, if you have a top-level makefile, which sets variables according to a makefile.in, you can export those variables. Then, build a makefile in each subdirectory. something like:
export VARS; cd pdmtl; make;
and then you have another makefile in the pdmtl dir, which does the same thing for each subdirectory below it, with only the lowest level makefiles actually doing the installation.
I'm pretty sure that I've seen this used before for makefiles (and I haven't tried it myself). It's not automatic... (which is your actual question--I'm not sure about that)
Chuck