Skip to content

questions on R CMD INSTALL et al

2 messages · luxInteg, R. Michael Weylandt

#
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 **

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  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.

thannks in advance

sincerely
luxInteg
#
On Tue, Jul 24, 2012 at 2:30 PM, luxInteg <lux-integ at btconnect.com> wrote:
Messages (to you) being given by the build script -- it looks like you
got a good build. (The big "DONE" is a good sign)
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.
Try

R CMD INSTALL --help

to see available flags.

Best,
Michael