generating ".d" dependency files as CPP would do