[BioLib-dev] installation

Joel Martin j_martin at lbl.gov
Sat Apr 25 05:58:54 UTC 2009


Hello,
   I had to futz about with cmake quite a bit and as I don't know anything about
cmake I've probably done something horrible.  Here is what 'make install' ended
up doing, I did want it to go into /scratch so that part all looks good but the
perl locations seem odd as they aren't using 'auto'

-- Install configuration: "Release"
-- Installing: /scratch/j_martin/biotrash/lib/libbiolib_core-0.0.4.so
-- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_core-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib"
-- Installing: /scratch/j_martin/biotrash/lib/libbiolib_example-0.0.4.so
-- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_example-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib"
-- Installing: /scratch/j_martin/biotrash/lib/libbiolib_affyio-0.0.4.so
-- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_affyio-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib"
-- Installing: /scratch/j_martin/biotrash/lib/libbiolib_microarray-0.0.4.so
-- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_microarray-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib"
-- Installing: /scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so
-- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib"
-- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/example.so
-- Set runtime path of "/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/example.so" to "#{CMAKE_INSTALL_PREFIX}/lib"
-- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/biolib/example.pm
-- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/affyio.so
-- Set runtime path of "/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/affyio.so" to "#{CMAKE_INSTALL_PREFIX}/lib"
-- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/biolib/affyio.pm
-- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so
-- Set runtime path of "/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so" to "#{CMAKE_INSTALL_PREFIX}/lib"
-- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/biolib/staden_io_lib.pm

when I try
perl -Mbiolib::staden_io_lib  it complains as Dynaloader can't find it ( not using auto )

so my questions are, 
  do those install paths look like what it was supposed to do? Is that how you have them?
  is there there any interaction problem with changing the module names to conform with 
  the guidlines in 'perldoc perlmodlib' ? and relatedly would changing staden_io_lib to
  just Stadenio cause trouble?

----  this part is just fyi, what I changed to get it to compile for me. ---

I had trouble getting it to recognize my configuration, though it was getting all the correct
info from perl -MConfig -e 'what-ever'.  As you can see above my perl is in a nonstandard location.

In the file ./cmake_modules/FindPerlLibs.cmake

after I changed 
  SET(PERL_POSSIBLE_INCLUDE_PATHS
                ${PARCHLIB}
to
  SET(PERL_POSSIBLE_INCLUDE_PATHS
                ${PARCHLIB}/CORE

FIND_PATH(PERL_INCLUDE_PATH NAMES perl.h  ${PERL_POSSIBLE_INCLUDE_PATHS} 
should have worked but would return perl.h in the /usr/lib/perl/5.8.8/CORE spot that debians
default perl is at.

according to cmake man page this should have stopped it looking in it's builtin paths
FIND_PATH(PERL_INCLUDE_PATH NAMES perl.h  PATHS ${PERL_POSSIBLE_INCLUDE_PATHS} NO_DEFAULT_PATH )

but it didn't seem to. I'd think that's a bug in cmake except I've barely used it before so
it might be a bug in me.

I ended up with this hack

        IF (EXISTS ${PARCHLIB}/CORE/perl.h)
         SET(PERL_INCLUDE_PATH ${PARCHLIB}/CORE)
        ELSE (EXISTS ${PARCHLIB}/CORE/perl.h)
         FIND_PATH(PERL_INCLUDE_PATH perl.h  ${PERL_POSSIBLE_INCLUDE_PATHS})
        ENDIF (EXISTS ${PARCHLIB}/CORE/perl.h)

Joel



More information about the BioLib-dev mailing list