You could do what we do for the Rcpp* packages. Here is RcppGSL:
RcppGSL.pdf: RcppGSL/RcppGSL.Rnw
cp -f RcppGSL/RcppGSL.Rnw .
$(RSCRIPT) --vanilla -e "require(highlight);
driver <- HighlightWeaveLatex(boxes = TRUE);
Sweave( RcppGSL.Rnw , driver = driver ); "
$(RSCRIPT) -e "tools::texi2dvi( RcppGSL.tex , pdf = TRUE, clean = FALSE )"
bibtex RcppGSL
$(RSCRIPT) -e "tools::texi2dvi( RcppGSL.tex , pdf = TRUE, clean = TRUE )"
cp RcppGSL/RcppGSL-fake.Rnw RcppGSL.Rnw
This keeps the actual source and a fake variant in a subdirectory inst/doc/RcppGSL/
to trick R into recreating the pdf only when we want it too---otherwise it sees an Rnw and pdf of the same basename and is happy.
A little more convoluted than the basic Makefile
you started with, but currently still
the only way to switch to highlight that we know.