[Bioc-devel] To use knitr, how to write the right Makefile for bioconductor devel and released branch?

Hervé Pagès hpages at fhcrc.org
Thu Sep 27 21:42:19 CEST 2012

Hi Tengfei,

Yes, as Dan said, that should work. Make sure you indent the Makefile
properly though (normally with a tab), or it won't work:

PDFS= ggbio.pdf

all: $(PDFS)

         rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary

%.pdf: %.Rnw
         $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('$*.Rnw')"

Also note the use of a regexpr in the call to knit2pdf() so that all
Sweave files in the folder will be processed.

I would suggest 3 more things:

   1. Add *.toc to the rm command above.

   2. Don't forget to add knitr to the Suggests field of your package.

   3. If you've not done it already, add library(knitr) right before the
      knit_hooks$... line in the set-options code chunk in each of your
      Rnw files, so that people can still run Sweave() on them if they


On 09/27/2012 08:08 AM, Dan Tenenbaum wrote:
> On Wed, Sep 26, 2012 at 11:41 PM, Tengfei Yin <yintengfei at gmail.com> wrote:
>> Dear maintainers and developers,
>> I am wondering, is there a way to use knitr to built my vignette, I am
>> trying to write a Makefile under my inst/doc, something like
>> # Makefile to use knitr for package vignettes
>> # put all PDF targets here, separated by spaces
>> PDFS= ggbio.pdf
>> all: $(PDFS)
>> clean:
>> rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary
>> %.pdf: %.Rnw
>> $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('ggbio.Rnw')"
>> Then I realize the bioc maintained two branch, released and development, so
>> the R version it used to check each branch must be different, I don't
>> really know how to specify those in my Makefile, especially after next
>> Monday, the devel-branch become released version automatically, there must
>> be a problem if I set up a fixed point to some */bin/Rscript?
>> I don't really know how it works with bioconductor, the example above
>> should work for cran, but I guess things are very different between cran
>> and bioc.
> If you use "$(R_HOME)/bin/R" in your Makefile, as you do, the correct
> R will be used.
> Dan
>> thanks a lot!
>> Tengfei
>> --
>> Tengfei Yin
>> MCDB PhD student
>> 1620 Howe Hall, 2274,
>> Iowa State University
>> Ames, IA,50011-2274
>>          [[alternative HTML version deleted]]
>> _______________________________________________
>> Bioc-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
> _______________________________________________
> Bioc-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel

Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpages at fhcrc.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319

More information about the Bioc-devel mailing list