[Rd] (fwd) package inst directory copied too early? (PR#4330)

dmurdoch at pair.com dmurdoch at pair.com
Sun Sep 28 02:40:50 MEST 2003

This bug appears in the current Windows build; I don't know if it
applies generally.

Duncan Murdoch

On Fri, 26 Sep 2003 15:25:57 +1200 (NZST), Ray Brownrigg
<ray at mcs.vuw.ac.nz> wrote:

>If you INSTALL (Rcmd INSTALL) or cross-compile
>(make PKGDIR=/pkg RLIB=/library pkg-mypkg) the copying of the inst
>directory seems to happen very early in the process, *before anything is
>Thus if the make actually contributes anything to the inst directory,
>those items do not get copied across.  For example:
>cafe-rozo>  gmake PKGDIR=/vol/R/src/win32/package RLIB=/vol/R/src/win32/library pkg-maps
>---------- Making package maps ------------
>  installing inst files
>  adding build stamp to DESCRIPTION
>  making DLL ...
>  :
>  etc.
>The problem appears to be in the file MakePkg, where the fragment:
>ifneq ($(strip $(INSTFILES)),)
>        @$(ECHO) "  installing inst files"
>        -@$(CP) -r inst/* $(DPKG)
>occurs as part of $(DPKG)/zzzz, which is the *first* item in the "all"
>However, just moving the fragment to another target is not sufficient,
>since the INSTFILES variable is generated before anything happens.
>What I have found to work is to make sure all the inst subdirectories
>exist in the source package (to generate a correct INSTFILES variable)
>and have the (new) target $(DPKG)/inst after $(DPKG)/exec in the
>prerequisites for the "all" target.  I cannot think of any way to deal
>with an inst directory which is generated (perhaps conditionally) as
>part of the 'make' process.
>If I understand it correctly, a similar problem would occur with the
>exec directory; any items in exec that are generated by the "make"
>will not get copied across.
>Ray Brownrigg

More information about the R-devel mailing list