[Phylobase-devl] Compilation woes

Steve Kembel skembel at berkeley.edu
Mon Aug 4 06:49:48 CEST 2008


Hi Brian,

> Thanks for looking into this, Steve and Ben. If it is just a matter  
> of old files not being rewritten properly, this should be able to be  
> taken care of in the Makefile (effectively, make clean first). I'll  
> check it out some more.

I'm not 100% sure about this. The install errors I get in Linux are  
not very reproducible, but that's my guess. For example I got a very  
similar error to the R-Forge linux build errors the first time I tried  
to build, but then slightly different errors on subsequent attempts,  
and no errors with a fresh copy of the code.

A few more things about this:
-make clean doesn't actually seem to work properly, there isn't a  
clean action defined in the ncl makefile, maybe this is part of the  
problem.
-there is a script pkg/cleanup that gets rid of a lot of the  
accumulated files. I don't know if this could be incorporated into the  
make clean action. I missed this until now but I think this is  
something that Thibaut wrote to get phylobase to compile on linux_x64  
a long while back. The message in which he describes it was pre-R- 
Forge so I'm including a copy of the text below. Sounds like part of  
the problem is indeed files not being deleted and messing up  
subsequent builds.
-if i build the package from a clean copy of the code, the following  
files are left behind.
steve at pundit:~/code/phylobase$ svn status
?      pkg.Rcheck
?      phylobase.Rcheck
?      phylobase_0.3-1.tar.gz
?      pkg/config.log
?      pkg/config.status
?      pkg/src/phylobase.so
?      pkg/src/Makevars
?      pkg/src/RcppSrc/libRcpp.a
?      pkg/src/ncl/config.log
?      pkg/src/ncl/config.status
?      pkg/src/ncl/stamp-h1
?      pkg/src/ncl/libtool
?      pkg/src/ncl/configure.lineno
?      pkg/src/ncl/Makefile
?      pkg/src/ncl/ncl/.deps
?      pkg/src/ncl/ncl/Makefile
?      pkg/src/ncl/ncl/.libs
-if I then run the cleanup script, the following files are still left:
steve at pundit:~/code/phylobase/pkg$ svn status
?      src/ncl/config.log
?      src/ncl/config.status
?      src/ncl/stamp-h1
?      src/ncl/libtool
?      src/ncl/configure.lineno
?      src/ncl/Makefile
?      src/ncl/ncl/.deps
?      src/ncl/ncl/Makefile

Hope this helps. I definitely agree about the value of having NCL in  
phylobase, let's see if we can sort out these issues.

Steve

Begin forwarded message:

> From: Thibaut Jombart
> Date: February 13, 2008 9:16:53 AM PST
> To: phylobase-devel at nescent.org
> Subject: Re: [phylobase-devel] 64bits compilation troubles: IT WORKS
>
> Ben Bolker wrote:
>
>>  OK, but ...
>>
>>  I thought your last e-mail said that even hacking -fPIC into
>> the Makefile didn't work.  I think "we" should first figure out
>> if we can get it to build with a hacked Makefile, then figure
>> out how to make the Makefile get constructed properly.
>>  (At worst, that might allow us to make a 64-bit binary
>> to post on the web page, although fixing this properly
>> would certainly be better.)
>>
>>  I was guessing that ./configure --with-pics would
>> work, but you tried that ...
>>
>>  I think we might also be able to shove it into the
>> automake flags somewhere ...
>>
>>  Ben
>>
> Hi people,
>
> So I now have phylobase installed on my 64bits laptop. Yet, it does  
> not answer how we will generally fix the problem.
> In fact, hacking the src/ncl/configure file indeed works, but didn't  
> for the following reason. It seems that .o objects are compiled only  
> when they do not already exist. If then do, then all what is done is  
> linking, and so the hack was not effective. So, this works for me:
> 1) first run the cleanup script to override stuff like .o files.
> 2) modify the configure script like follows:
> (starting from line 20560)
>
>           CXXFLAGS_WARNINGS="$CXXFLAGS_WARNINGS"
>           CXXFLAGS_OPTIM_SPEED="-O3 -ffast-math"
>           CXXFLAGS_OPTIM_SPEED="-O3 -ffast-math"
>           CXXFLAGS_OPTIM_SIZE="-Os -ffast-math"
>           # modif by Thibaut
>           CXXFLAGS_USE_FPIC="-fPIC"
>       fi
>       case "$build_os" in
>           darwin*) CXXFLAGS_WARNINGS="$CXXFLAGS_WARNINGS -Wno-long- 
> double";;
>           *);;
>       esac
>   fi
>   if test "x$CXXFLAGS_OPTIM_SIZE" = "x"; then
>       CXXFLAGS_OPTIM_SIZE=$CXXFLAGS_OPTIM_SPEED
>   fi
>
>   CXXFLAGS="$CXXFLAGS $CXXFLAGS_OPTIM_SPEED $CXXFLAGS_WARNINGS  
> $CXXFLAGS_USE_FPIC"
>
> 3) run R CMD INSTALL (only warnings)
>
> Cheers,
>
> Thibaut.



More information about the Phylobase-devl mailing list