It depends on what you mean by "recursive makefiles". I haven't studied them in detail but it appears that the CMake-generated makefiles have one makefile per high-level target (program, library, etc.