From ripley at stats.ox.ac.uk  Thu Nov 29 07:25:02 2012
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Thu, 29 Nov 2012 06:25:02 +0000
Subject: [Rd] R CMD check --force-biarch
In-Reply-To: <005201cdcd8c$93e24ed0$bba6ec70$@macosx.com>
References: <005201cdcd8c$93e24ed0$bba6ec70$@macosx.com>
Message-ID: <50B6FFBE.7070002@stats.ox.ac.uk>

 From R CMD check --help

       --install-args=	command-line args to be passed to INSTALL

I am pretty sure you have been pointed at that before, and we checked at 
the time that it worked on Windows.

On 28/11/2012 17:19, Russell Almond wrote:
> I'm having problems getting R CMD check to work correctly on Windows 7 (64
> bit) in a package that uses C code.  What I want to do is to be able to pass
> the equivalent of the "--force-biarch" option to check, but this is only
> supported for INSTALL.
>
> Background:
> I'm writing a package (RNetica) which forms a link between R and a
> third-party library (Netica.dll).  The vendor supplies this library in both
> a 32 bit and a 64 bit version.
> Under Linux, I use configure to link against the 32 or 64 bit version of
> libnetica.a as appropriate.
> Under Windows, I use configure.win to copy the 32 and 64 bit versions to
> "$R_PACKAGE_DIR/libs/i386"  and "$R_PACKAGE_DIR/libs/x64" respectively.
>
> Installation:
> This mostly works.  If I run R CMD INSTALL RNetica, R detects the
> configure.win and only builds the 64 bit version of RNetica.  [I'm not
> entirely clear on why R doesn't at least try to build both architectures.
> Wouldn't the default assumption be that the author wrote the configure.win
> file to handle both cases?]  But if I use R CMD INSTALL RNetica
> --force-biarch, it correctly builds and installs both the 32 and 64 bit
> versions.  I can verify that I can load my library and call a few functions
> that exercise the DLL.
>
> Checking:
>   When I run R CMD check RNetica, I get the following problem in my
> 00install.out log:
>> Warning: this package has a non-empty 'configure.win' file,
>> so building only the main architecture
> It then fails with the message:
>> Error:  .onLoad failed in loadNamespace() for 'RNetica', details:
>>    Call:  library.dynam("RNetica",pkgname, libname)
>>    Error:  DLL 'RNetica' not found:  maybe not installed for this
> architecture?
> Sure enough, if I check the directory RNetica.Rcheck/RNetica/libs/x64
> It has Netica.dll, RNetica.dll, and symbols.rds
> If I check the directory RNetica.Rcheck/RNetica/libs/i386
> It only has Netica.dll (copied there by the configure.win).
>
> If I run R CMD check RNetica --no-multiarch, this test runs correctly (only
> a few warnings about missing Rd files).
> If I run R CMD check RNetica --extra-arch, this fails at the same point.
>
> What I think I need to do is somehow pass --force-biarch to the installation
> phase of the check script, but --force-biarch is not a legal argument to R
> CMD check, and I'm not sure how to quote it.
>
> Thanks in advance for any help.
>
>
>
> Russell Almond
> ralmond at fsu.edu
> almond at acm.org
> http://ralmond.net/
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>


-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



[Rd] R CMD check --force-biarch
Prof Brian Ripley