staden-2.0.0b2 compilation error on fedora

2009-12-07
2013-04-18
  • Hello,

    I wanted to install staden-2.0.0b2-src just for my account, since our sysadmins locked my workstation. I am using Fedora 8.
    My steps:

    1) downloaded

        io_lib-1.12.1.tar.gz 
        samtools-0.1.7_x86_64-linux.tar.bz2 
        tklib-0.5.tar.bz2
        staden-2.0.0b2-src.tar.gz

    2) installed(? see below)   io_lib,  samtools and  tklib in /my_home/soft/bin  &  /my_home/soft/lib

    3) attempted to build Staden:
        ./configure -prefix=/my_home_dir/soft/molbio/ -with-tklib=/my_home_dir/soft/lib/tklib0.5/  -with-samtools=/my_home_dir/soft/molbio/samtools -enable-64bit

    got one error:
    samtools:  ***NOT FOUND***
    despite that I got in /my_home_dir/bin

        blast2sam.pl  bowtie2sam.pl  export2sam.pl  interpolate_sam.pl  novo2sam.pl  psl2sam.pl  sam2vcf.pl  samtools.pl  soap2sam.pl  wgsim_eval.pl  zoom2sam.pl

    next steps:
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/my_home/soft/lib/
       
        make
       
       
        gcc -g -O2 -m64  -I/include -I/include -DUSE_NON_CONST  -I/my_home_dir/Desktop/staden-2.0.0b2-src/./tgap -I/my_home_dir/Desktop/staden-2.0.0b2-src/./Misc -I"/usr/include/tcl-private/generic" -I"/usr/include/tcl-private/unix" -I/my_home_dir/Desktop/staden-2.0.0b2-src/./tk_utils -I/my_home_dir/Desktop/staden-2.0.0b2-src/./seq_utils -I/my_home_dir/soft/include  -I/my_home_dir/Desktop/staden-2.0.0b2-src  -fPIC  -o zfio.o -c zfio.c
        zfio.c: In function 'zfopen':
        zfio.c:69: error: 'R_OK' undeclared (first use in this function)
        zfio.c:69: error: (Each undeclared identifier is reported only once
        zfio.c:69: error: for each function it appears in.)
        make: ***  Error 1
        make: Leaving directory `/my_home_dir/Desktop/staden-2.0.0b2-src/tgap'
        make: ***  Error 2

    I will appreciate your ideas.

    Thank you

    Darek Kedra

     
  • James Bonfield
    James Bonfield
    2009-12-08

    Samtools is rather messy at present, but perhaps the newer installs have fixed this. Specifically it had no way of installing header files and libraries - just the samtools program and manual. Hence it's easier to specify the build directory of samtools where we can ensure the complete package exists. In time I hope that samtools installs fix this problem; I believe some people are working on adding autoconf to it.

    R_OK is defined in unistd.h. Maybe on my system I get this included by chance from some other route, but the fix will be to explicitly add:

    #include <unistd.h>

    to the start of zfio.c. I'll make this change in the SVN source tree. Thanks for the error report.

    James

     
  • darked90
    darked90
    2009-12-09

    Hello,

    thanks for such quick fix. I checked out samtools source:

         svn co https://samtools.svn.sourceforge.net/svnroot/samtools/trunk/samtools

    compiledEdited zfio.c introducing #include <unistd.h>,  it and run configure for staden again.

    Samtools were found by ./configure, and compilation finished without error.
    Installation also went OK, but somehow I can not setup env variables for this build. Can not find staden.profile even in source directory ->  is this step no longer needed?

    Running gap4 from the command line gives:
    gap4
        couldn't load file "/usr/lib/tk8.4/../libtk8.4.so": /usr/lib/tk8.4/../libtk8.4.so: wrong ELF class: ELFCLASS32

    Well, I did recompiled staden without  -enable-64bit but got exactly the same error message.

    Is there any way (during configuration / compilation stage) that there is such mismatch (  ELFCLASS32 vs ELFCLASS64)?

    Thank you very much for your help,

    Darek Kedra

     
  • At one stage (ie when I built that release) I had concluded that staden.profile was no longer necessary as the wrapper scripts for gap4, gap5, pregap4, spin etc all handled the environment variables themselves.

    However with hindsight it would be good to still have such a file for optional sourcing if people wanted to get access to the lower level tools, like makeSCF or getABISampleName, or to link against various run time libraries.

    The tk8.4 problem is a new one to me. It seems to imply that you have a problem with your tk build, but possibly it's an autoconf problem too. Do you have both 32-bit and 64-bit tk libraries installed on the same system? If so maybe the contents of config.log will help us to work out whether autoconf chose the wrong version to link against.

    WHat operating system are you using?