cross-platform makefile generator