[Rd] questions on R CMD INSTALL et al

R. Michael Weylandt michael.weylandt at gmail.com
Tue Jul 24 22:22:02 CEST 2012


On Tue, Jul 24, 2012 at 2:30 PM, luxInteg <lux-integ at btconnect.com> wrote:
> Greetings,
>
> I am learning R
> My machine has these;
> CPU: 3cores  amd64
> OS pure-64bit CBLFS liux compiled  from sources  (kernel 3.2.1, gcc-4.6.2
> R-2.15
> When I compiled R the compiler spewed  out lines  like these:-
>
> make[3]: Entering directory `/tmp/RtmpiHdDJy/R.INSTALL472339eeb23a/mgcv/src'
> gcc -m64 -std=gnu99 -I/home/Rman/R-2.15.0/include -DNDEBUG  -
> I/usr/local/atlas/include  -I/usr/local/numerics/include    -fpic  -g -O2  -c
> gcv.c -o gcv.o
> gcc -m64 -std=gnu99 -I/home/Rman/R-2.15.0/include -DNDEBUG  -
> I/usr/local/atlas/include  -I/usr/local/numerics/include    -fpic  -g -O2  -c
> gdi.c -o gdi.o
> gcc -m64 -std=gnu99 -I/home/Rman/R-2.15.0/include -DNDEBUG  -
> I/usr/local/atlas/include  -I/usr/local/numerics/include    -fpic  -g -O2  -c
> init.c -o init.o
> gcc -m64 -std=gnu99 -I/home/Rman/R-2.15.0/include -DNDEBUG  -
> I/usr/local/atlas/include  -I/usr/local/numerics/include    -fpic  -g -O2  -c
> magic.c -o magic.o
> gcc -m64 -std=gnu99 -I/home/Rman/R-2.15.0/include -DNDEBUG  -
> I/usr/local/atlas/include  -I/usr/local/numerics/include    -fpic  -g -O2  -c
> mat.c -o mat.o
> gcc -m64 -std=gnu99 -I/home/Rman/R-2.15.0/include -DNDEBUG  -
> I/usr/local/atlas/include  -I/usr/local/numerics/include    -fpic  -g -O2  -c
> matrix.c -o matrix.o
> gcc -m64 -std=gnu99 -I/home/Rman/R-2.15.0/include -DNDEBUG  -
> I/usr/local/atlas/include  -I/usr/local/numerics/include    -fpic  -g -O2  -c
> mgcv.c -o mgcv.o
> gcc -m64 -std=gnu99 -I/home/Rman/R-2.15.0/include -DNDEBUG  -
> I/usr/local/atlas/include  -I/usr/local/numerics/include    -fpic  -g -O2  -c
> misc.c -o misc.o
> gcc -m64 -std=gnu99 -I/home/Rman/R-2.15.0/include -DNDEBUG  -
> I/usr/local/atlas/include  -I/usr/local/numerics/include    -fpic  -g -O2  -c
> qp.c -o qp.o
> gcc -m64 -std=gnu99 -I/home/Rman/R-2.15.0/include -DNDEBUG  -
> I/usr/local/atlas/include  -I/usr/local/numerics/include    -fpic  -g -O2  -c
> sparse-smooth.c -o sparse-smooth.o
> gcc -m64 -std=gnu99 -I/home/Rman/R-2.15.0/include -DNDEBUG  -
> I/usr/local/atlas/include  -I/usr/local/numerics/include    -fpic  -g -O2  -c
> tprs.c -o tprs.o
> gcc -m64 -std=gnu99 -shared -L/usr/local/atlas/lib -L/usr/local/numerics/lib -
> L/usr/lib -o mgcv.so gcv.o gdi.o init.o magic.o mat.o matrix.o mgcv.o misc.o
> qp.o sparse-smooth.o tprs.o -L/home/Rman/R-2.15.0/lib -lRlapack -
> L/home/Rman/R-2.15.0/lib -lRblas -lgfortran -lm -L/home/Rman/R-2.15.0/lib -lR
> make[3]: Leaving directory `/tmp/RtmpiHdDJy/R.INSTALL472339eeb23a/mgcv/src'
> installing to /home/Rman/R-2.15.0/library/mgcv/libs
> ** R
> ** data
> ** inst
> ** byte-compile and prepare package for lazy loading
> ** help
> *** installing help indices
> ** building package indices
> ** testing if installed package can be loaded
>
> * DONE (mgcv)
> make[2]: Leaving directory `/home/Rman/R-2.15.0/src/library/Recommended'
> make[1]: Leaving directory `/home/Rman/R-2.15.0/src/library/Recommended'
>
> -----here is the source_tree   for mgcv ---A
> mgcv_SR_tree/mgcv/R
> mgcv_SR_tree/mgcv/data
> mgcv_SR_tree/mgcv/inst
> mgcv_SR_tree/mgcv/man
> mgcv_SR_tree/mgcv/po
> mgcv_SR_tree/mgcv/src
> mgcv_SR_tree/mgcv/DESCRIPTION
> mgcv_SR_tree/mgcv/MD5
> mgcv_SR_tree/mgcv/NAMESPACE
> mgcv_SR_tree/mgcv/changeLog
> mgcv_SR_tree/mgcv/gnugpl2.txt
> mgcv_SR_tree/mgcv/index
>
> #--and here is the build tree   ---B
> mgcv_postBuild_Tree/mgcv/Meta
> mgcv_postBuild_Tree/mgcv/R
> mgcv_postBuild_Tree/mgcv/data
> mgcv_postBuild_Tree/mgcv/help
> mgcv_postBuild_Tree/mgcv/html
> mgcv_postBuild_Tree/mgcv/libs
> mgcv_postBuild_Tree/mgcv/CITATION
> mgcv_postBuild_Tree/mgcv/DESCRIPTION
> mgcv_postBuild_Tree/mgcv/INDEX
> mgcv_postBuild_Tree/mgcv/NAMESPACE
>
> I havent a clue what is happening in the lines prepended by **

Messages (to you) being given by the build script -- it looks like you
got a good build. (The big "DONE" is a good sign)

>
> Also I used make VERBOSE=1  but the compiler   gave no indication of how one
> arives at  B from A  and
> how the library created mgcv.so) is installed in mgcv_postBuild_Tree/mgcv/libs
>
> advise on hese would be much appreciated
>
>
> Reading the manual I noticed the way of installing these recommendd packages
> appears to be
> R CMD -l path/to/libraries  recommended_tarball.tar.gz

I think you have a command missing after CMD. Usually the format is R
CMD __what_to_do__ -flag options tarball.tar.gz. I.e., if I want to
build xts, I get the source and run

R CMD INSTALL xts_0.8-7.tar.gz

and it all "just works."

Linking uses -l as you noted, but only if you need libraries above and
beyond the R headers (which are included automatically with R CMD
install) that aren't in the package's */src directory. You'll see
above the the appropriate flags were passed to gcc for you in
specifing ATLAS and the gnu c99 extensions. Linking within R should be
done properly for you. I'm not an expert on the package build process,
so I'll wait for someone else to say more / correct me if needed.

>
> I  would like to know if the following is possible and if so how so:-
> a) obtaining more verbose output from make  (is this makefile related ? )
> a) exercising control over the compiler settings for  the creation of the
> library module (mgcv.so in the above case)
> b)  manual setting of the source and destination  directroies  and  keeping of
> the source tree  where the package is built.
>

Try

R CMD INSTALL --help

to see available flags.

Best,
Michael

> thannks in advance
>
> sincerely
> luxInteg
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list