Fix compiler struct initialization
Make recursive make more generic

Don't use GNU make or nmake features when calling make recursively. This
adds support for other make implementations like dmake.