From hpages at fhcrc.org  Mon Sep 13 06:45:53 2010
From: hpages at fhcrc.org (=?ISO-8859-1?Q?Herv=E9_Pag=E8s?=)
Date: Sun, 12 Sep 2010 21:45:53 -0700
Subject: [Rd] R CMD build cannot create vignettes on Windows if Makefile
 is used
In-Reply-To: <4C8CC297.1050405@gmail.com>
References: <4C8B0B24.8020609@fhcrc.org> <4C8B6044.1030506@gmail.com>
	<4C8C5BCD.4000207@fhcrc.org> <4C8CC297.1050405@gmail.com>
Message-ID: <4C8DAC81.8080102@fhcrc.org>

Hi Duncan,

On 09/12/2010 05:07 AM, Duncan Murdoch wrote:
> On 12/09/2010 12:49 AM, Herv? Pag?s wrote:
>> Hi Duncan,
>>
>> On 09/11/2010 03:56 AM, Duncan Murdoch wrote:
>>> On 11/09/2010 12:52 AM, Herv? Pag?s wrote:
>>>> Hi,
>>>>
>>>> I found the following problem with recent R-devel
>>>> (2010-08-26 r52817) on Windows (32-bit and 64-bit):
>>>> 'R CMD build <pkg>' gets stalled during vignett
>>>> creation for packages that have a Makefile in <pkg>/inst/doc.
>>>>
>>>> It seems that the problem is that the commands used in the
>>>> Makefile for converting .tex to .pdf are not able to locate
>>>> the Sweave.sty file anymore (if I drop this file to
>>>> <pkg>/inst/doc, then the problem goes away).
>>> This sounds like a problem that only the package maintainer could
>>> address. Presumably it will be temporary: once they adjust to the new
>>> organization of the share/texmf directory, things will be fine again.
>>>
>>> The reorg is described in this NEWS item:
>>>
>>> * Directory R_HOME/share/texmf now follows the TDS conventions, so
>>> can be set as a texmf tree ('root directory' in MiKTeX parlance).
>>
>> Before this reorg, the package maintainer didn't have to care about
>> where to find things in R_HOME/share/texmf. 'R CMD build' would just
>> find them by setting the TEXINPUTS envir variable appropriately (and
>> then commands in the inst/doc/Makefile file would find them too).
>>
>> This reorg was checked in svn as rev 52256. I see the following
>> adjustments to TEXINPUTS:
>>
>> ** On Unix (src/scripts/Rcmd.in file):
>>
>> -## Append 'share/texmf' to TeX's input search path.
>> -if test -z "$TEXINPUTS}"; then
>> - TEXINPUTS=".:${R_SHARE_DIR}/texmf:"
>> +## Append 'share/texmf/...' to TeX's input search path.
>> +if test -z "${TEXINPUTS}"; then
>> + TEXINPUTS=".:${R_SHARE_DIR}/texmf/tex/latex:"
>> else
>> - TEXINPUTS=".:${TEXINPUTS}:${R_SHARE_DIR}/texmf:"
>> + TEXINPUTS=".:${TEXINPUTS}:${R_SHARE_DIR}/texmf/tex/latex:"
>> fi
>> export TEXINPUTS
>>
>> ** On Windows (src/gnuwin32/fixed/etc/Rcmd_environ file):
>>
>> -TEXINPUTS=.;${TEXINPUTS};${R_SHARE_DIR}/texmf;
>> +TEXINPUTS=.;${TEXINPUTS};${R_SHARE_DIR}/texmf/tex/latex;
>>
>> The path seems to have been adjusted correctly. So my question is:
>> why isn't this working on Windows for packages that use a Makefile?
>
> I don't know. My first assumption would that something in the Makefile
> is wrong, but since you don't give any examples, I can't check.

There are 8 Bioconductor packages failing to build on Windows
because of this problem. They have a Makefile in inst/doc/ that
calls 'pdflatex' or 'texi2dvi --pdf' on <some_vignette> to convert
<some_vignette>.tex into <some_vignette>.pdf. They don't
have Sweave.sty in inst/doc/ (other packages use the same kind of
Makefile and are building ok because they have a copy of Sweave.sty
in inst/doc/).

For example, here is the content of adSplit/inst/doc/Makefile:

all:	pdf clean

pdf:	tr_2005_02.tex
	epstopdf splitSet.eps
	pdflatex tr_2005_02
	pdflatex tr_2005_02
	pdflatex tr_2005_02

clean:
	rm -f *.aux *.eps *.log *.out *.tex *.toc
	rm -f Rplots.ps splitSet.pdf tr_2005_02-*

The 7 other packages use similar Makefile. As I said before, they
all used to build ok before the R_HOME/share/texmf reorg. They still
build ok on non-Windows machines. Thanks!

H.

>
> Duncan Murdoch


-- 
Herv? Pag?s

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

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



[Rd] R CMD build cannot create vignettes on Windows if Makefile is used
=?ISO-8859-1?Q?Herv=E9_Pag=E8s?=