[Phylobase-devl] New phylobase build approach using static libncl (Was: Rcpp and OS X compiliation)

Ben Bolker bolker at ufl.edu
Tue Jan 26 04:08:31 CET 2010


  How thorough are our tests of NCL?  Does updating to the most recent
version and having it work "with almost no problem"?  I notice that all
of tests/nexusdata.R is commented out (!), as is
unitTests/runit.readNexus.R ... should we try to implement tests before
we commit ?

 Ben

Dirk Eddelbuettel wrote:
> Francois,
> 
> Thanks also for your Ubuntu test and confirmation.
> On 25 January 2010 at 13:19, François Michonneau wrote:
> | Hi,
> |
> |   On my system, I was able to update to the most recent version of NCL
> | within phylobase with almost no problem.
> |
> |   I can commit the changes, however, I was wondering if maybe we
> | should first wait to see if it builds currently without problems on
> | Mac platforms. The rationale being that if I commit the changes now it
> | might be harder to determine if the problem comes from the changes
> | that Drik et al implemented or from the newest version of NCL.
> 
> The 'phylobase build-time / install-time' suggestion I made should be
> independent of the version of NCL. It simply makes it easier for phylobase to
> link to a single static library.
> 
> Regards,  Dirk
> 
> 
> |
> |   Cheers,
> |   -- François
> |
> |
> | On Mon, Jan 25, 2010 at 12:33, Ben Bolker <bolker at ufl.edu> wrote:
> | >  mea culpa.
> | >  I took out some old leftover junk that was root-owned and it R CMD
> | > checks OK.
> | >
> | >   is the next step to try replacing NCL with a newer version ... ?
> | >
> | >  cheers
> | >   Ben
> | >
> | > François Michonneau wrote:
> | >> I can build, install and start with no problem with Ubuntu 9.10 (Jaunty).
> | >>   -- François
> | >>
> | >>
> | >> On Mon, Jan 25, 2010 at 08:14, Dirk Eddelbuettel <edd at debian.org> wrote:
> | >>> On 25 January 2010 at 08:00, Ben Bolker wrote:
> | >>> |   I got only this far:
> | >>> |
> | >>> |   I haven't had a chance to check in to it yet & see what's going on.
> | >>> | (Yes, it implies a permission problem, but I've never had anything like
> | >>> | this ever happen before in building a package, so I wouldn't jump to the
> | >>> | conclusion that my system is mis-configured.)
> | >>> |
> | >>> |   Ubuntu Intrepid Ibex: Linux bolker-lap2 2.6.27-16-generic #1 SMP Tue
> | >>> | Dec 1 17:56:54 UTC 2009 i686 GNU/Linux
> | >>> |
> | >>> |
> | >>> | configure: starting to build libncl.a in ncl
> | >>> | ./configure: 465: cannot create configure.lineno: Permission denied
> | >>> | configure: error: cannot create configure.lineno; rerun with a POSIX shell
> | >>>
> | >>> I think that is a hint. On Ubuntu /bin/sh is not bash, and we get bitten.
> | >>> Why, I do not know. Something is still odd.  You did that in your home
> | >>> directory and the files from the tarball look good otherwise?
> | >>>
> | >>> What I had done way back for cran2deb was similar in spirit --- a patch that
> | >>> provides a Makefile that creates libncl.a.  It's more brute force. But if we
> | >>> cannot run configure for ncl let's make an endrun around configure for ncl.
> | >>>
> | >>> Dirk
> | >>>
> | >>> | make  all-recursive
> | >>> | make[1]: Entering directory `/home/ben/lib/R/pkgs/phylobase/pkg/src/ncl'
> | >>> | Making all in ncl
> | >>> | make[2]: Entering directory `/home/ben/lib/R/pkgs/phylobase/pkg/src/ncl/ncl'
> | >>> | /bin/bash ../libtool --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.
> | >>> | -I..     -O3 -ffast-math  -fPIC -MT nxsassumptionsblock.lo -MD -MP -MF
> | >>> | .deps/nxsassumptionsblock.Tpo -c -o nxsassumptionsblock.lo
> | >>> | nxsassumptionsblock.cpp
> | >>> |  g++ -DHAVE_CONFIG_H -I. -I.. -O3 -ffast-math -fPIC -MT
> | >>> | nxsassumptionsblock.lo -MD -MP -MF .deps/nxsassumptionsblock.Tpo -c
> | >>> | nxsassumptionsblock.cpp  -fPIC -DPIC -o .libs/nxsassumptionsblock.o
> | >>> | nxsassumptionsblock.cpp:481: fatal error: opening dependency file
> | >>> | .deps/nxsassumptionsblock.Tpo: Permission denied
> | >>> | compilation terminated.
> | >>> | make[2]: *** [nxsassumptionsblock.lo] Error 1
> | >>> | make[2]: Leaving directory `/home/ben/lib/R/pkgs/phylobase/pkg/src/ncl/ncl'
> | >>> | make[1]: *** [all-recursive] Error 1
> | >>> | make[1]: Leaving directory `/home/ben/lib/R/pkgs/phylobase/pkg/src/ncl'
> | >>> | make: *** [all] Error 2
> | >>> | Making install in ncl
> | >>> | make[1]: Entering directory `/home/ben/lib/R/pkgs/phylobase/pkg/src/ncl/ncl'
> | >>> | /bin/bash ../libtool --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.
> | >>> | -I..     -O3 -ffast-math  -fPIC -MT nxsassumptionsblock.lo -MD -MP -MF
> | >>> | .deps/nxsassumptionsblock.Tpo -c -o nxsassumptionsblock.lo
> | >>> | nxsassumptionsblock.cpp
> | >>> |  g++ -DHAVE_CONFIG_H -I. -I.. -O3 -ffast-math -fPIC -MT
> | >>> | nxsassumptionsblock.lo -MD -MP -MF .deps/nxsassumptionsblock.Tpo -c
> | >>> | nxsassumptionsblock.cpp  -fPIC -DPIC -o .libs/nxsassumptionsblock.o
> | >>> | nxsassumptionsblock.cpp:481: fatal error: opening dependency file
> | >>> | .deps/nxsassumptionsblock.Tpo: Permission denied
> | >>> | compilation terminated.
> | >>> | make[1]: *** [nxsassumptionsblock.lo] Error 1
> | >>> | make[1]: Leaving directory `/home/ben/lib/R/pkgs/phylobase/pkg/src/ncl/ncl'
> | >>> | make: *** [install-recursive] Error 1
> | >>> | configure: finished building libncl.a in ncl
> | >>> |
> | >>> |
> | >>> | Dirk Eddelbuettel wrote:
> | >>> | > On 23 January 2010 at 21:04, Dirk Eddelbuettel wrote:
> | >>> | > | Thanks to the excellent debugging work by Mark Holder, as well as some help
> | >>> | > | from Simon Urbanek, we finally got OS X and Rcpp to be nice to each other:
> | >>> | > | static linking lets everybody be friends.
> | >>> | >
> | >>> | > Rcpp 0.7.3 will not do. Yesterday I learned from Simon U that I 'broke' Rcpp
> | >>> | > by including a configure file which means no universal OS X binary with x86,
> | >>> | > ppc, x86_64 content get created. We will reverse this ASAP for 0.7.4 but it
> | >>> | > may take a day.
> | >>> | >
> | >>> | > Hopefully with 0.7.4 all will be good.  The rest of the mail is still valid I
> | >>> | > would appreciate tests of the new libncl builds though.
> | >>> | >
> | >>> | > Sorry, Dirk
> | >>> | >
> | >>> | > |
> | >>> | > | This was encoded in Rcpp 0.7.3 which was released earlier this week. So I
> | >>> | > | figured it was time to get back to the rest of the phylobase build.  And a
> | >>> | > | few days earlier I had suggested:
> | >>> | > |
> | >>> | > | On 11 January 2010 at 08:55, Dirk Eddelbuettel wrote:
> | >>> | > | | I am still game. I see a three-pronged approach:
> | >>> | > | |
> | >>> | > | |   i)    Suggestion Let's fix NCL and have a locally built version outside
> | >>> | > | |         of phylobase on all test platforms
> | >>> | > | |
> | >>> | > | |   ii)   With that, fix/simplify Rcpp usage. Should be easy
> | >>> | > | |
> | >>> | > | |   iii)  With that, get back to i) and clean up NCL's configure.
> | >>> | > | |
> | >>> | > | | I think it would be easier to disentangle Rcpp and NCL inside phylobase while
> | >>> | > | | we make this more.
> | >>> | > |
> | >>> | > | And I just committed a simple and easy fix to phylobase's SVN on R-Forge.  In
> | >>> | > | a nutshell, we were just descending down to ncl's source directory and saying
> | >>> | > | 'configure; make' which leaves the ncl library unfinished. The mighty libtool
> | >>> | > | would normally run over it once more during 'make install'.
> | >>> | > |
> | >>> | > | So I changed it to this (and recall that this is relative to top-level
> | >>> | > | directory for phylobase):
> | >>> | > |
> | >>> | > |    cd src/ncl
> | >>> | > |    ./configure --quiet --enable-static --disable-shared --prefix=`pwd`/..
> | >>> | > |    make
> | >>> | > |    make install
> | >>> | > |    cd ../..
> | >>> | > |
> | >>> | > | So we ask for a static library (and no dynamic library), and we tell
> | >>> | > | configure to put it simply one directory up. That works well enough!  I also
> | >>> | > | changed the CPPFLAGS and LDFLAGS accordingly: include/ncl and lib/ncl are now
> | >>> | > | created during that new 'make install' step:
> | >>> | > |
> | >>> | > |    ## configure include/load flags and copy sample source to inst/doc
> | >>> | > |    AC_SUBST([CPPFLAGS],["${CPPFLAGS} ${rcpp_cxxflags} -Iinclude/ncl"])
> | >>> | > |    AC_SUBST([LDFLAGS],["${LDFLAGS} ${rcpp_ldflags} -Llib/ncl -lncl"])
> | >>> | > |
> | >>> | > | With that phylobase builds and installs fine on my Linux machine and
> | >>> | > | (finger's crossed!!) should do the same on other people's Linux and OS X
> | >>> | > | boxen.  So if over the next few days you have a moment, could you update from
> | >>> | > | SVN and give it a whirl?
> | >>> | > |
> | >>> | > | Cheers, Dirk
> | >>> | > |
> | >>> | > | --
> | >>> | > | Three out of two people have difficulties with fractions.
> | >>> | >
> | >>> |
> | >>> |
> | >>> | --
> | >>> | Ben Bolker
> | >>> | Associate professor, Biology Dep't, Univ. of Florida
> | >>> | bolker at ufl.edu / people.biology.ufl.edu/bolker
> | >>> | GPG key: people.biology.ufl.edu/bolker/benbolker-publickey.asc
> | >>> |
> | >>> |
> | >>> | [GNUPG:] ERRSIG 7395291A3C337A73 17 2 01 1264424409 9
> | >>> | [GNUPG:] NO_PUBKEY 7395291A3C337A73
> | >>>
> | >>> --
> | >>> Three out of two people have difficulties with fractions.
> | >>> _______________________________________________
> | >>> Phylobase-devl mailing list
> | >>> Phylobase-devl at lists.r-forge.r-project.org
> | >>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/phylobase-devl
> | >>>
> | >
> | >
> | > --
> | > Ben Bolker
> | > Associate professor, Biology Dep't, Univ. of Florida
> | > bolker at ufl.edu / people.biology.ufl.edu/bolker
> | > GPG key: people.biology.ufl.edu/bolker/benbolker-publickey.asc
> | >
> | >
> 
> --
> Three out of two people have difficulties with fractions.
> _______________________________________________
> Phylobase-devl mailing list
> Phylobase-devl at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/phylobase-devl


-- 
Ben Bolker
Associate professor, Biology Dep't, Univ. of Florida
bolker at ufl.edu / people.biology.ufl.edu/bolker
GPG key: people.biology.ufl.edu/bolker/benbolker-publickey.asc

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 261 bytes
Desc: OpenPGP digital signature
Url : http://lists.r-forge.r-project.org/pipermail/phylobase-devl/attachments/20100125/381adb9e/attachment.pgp 


More information about the Phylobase-devl mailing list