In the run_clean function of tools:::.install_packages (install.R), if there is a Makefile.win the clean command is
system(paste(MAKE, "-f Makefile.win clean"))
where MAKE is defined by Sys.getenv("MAKE"). However the package build command is
res <- system(paste("make --no-print-directory", paste("-f", shQuote(makefiles), collapse = " ")))
This can lead to a rather annoying situation where if the MAKE environment variable is undefined, package building works but clean and preclean don't. This could be the desired behaviour, but I seriously doubt it.
Suggestion: The code should should be standardised to use either "make" or Sys.getenv("MAKE") consistently.
Fixed in R-devel and R-patched (as of rev 68285). Please check it, I don't have a sample case to test.