These invocations of rm -rf $@ for each target in the Makefile should be put in a separate clean target. That way it doesn't remove everything each time the user re-runs make.
This would be especially helpful for all of the large files that are downloaded during the build process.