Ecogenomics / BamM

Metagenomics-focused BAM file manipulation
http://ecogenomics.github.io/BamM/
GNU Lesser General Public License v3.0
16 stars 7 forks source link

Installing on CentOS6.6 #21

Open linsalrob opened 9 years ago

linsalrob commented 9 years ago

Hey Mike

I downloaded BamM today and tried to install it on CentOS6.6 (with python2.7, python2.7 numpy, samtools and bwa tools):

$  git clone https://github.com/minillinim/BamM.git
$ cd BamM
$ python2.7 setup.py install > setup.py.out 2> setup.py.err

The error that I get is:

$  cat setup.py.err 
configure: error: cannot run /bin/sh ./config.sub
configure: error: ./configure failed for libcfu-0.03
/usr/bin/ld: /usr/local/lib/libcfu.a(cfuhash.o): relocation R_X86_64_32 against `.text' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libcfu.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [libBamM.a] Error 1
Traceback (most recent call last):
  File "setup.py", line 39, in <module>
    rename(join('c', 'libBamM.a'), join('bamm', 'libBamM.a'))
OSError: [Errno 2] No such file or directory

Any thoughts?

Rob

linsalrob commented 9 years ago

Here is the sysinfo

Numpy version: 1.9.2
Location: /usr/local/lib/python2.7/site-packages/numpy/__init__.pyc
Linux 2.6.32-504.12.2.el6.x86_64
2.7.9 (default, Mar 31 2015, 16:20:45) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)]
['/root/bamm/BamM/bamm/tests', '/usr/local/lib/python2.7/site-packages/setuptools-1.4.2-py2.7.egg', '/usr/local/lib/python27.zip', '/usr/local/lib/python2.7', '/usr/local/lib/python2.7/plat-linux2', '/usr/local/lib/python2.7/lib-tk', '/usr/local/lib/python2.7/lib-old', '/usr/local/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages']

Here is the output of setup.py.out as well

Preparing the BamM build system...please wait

Found GNU Autoconf version 2.63
Found GNU Automake version 1.11.1
Found GNU Libtool version 2.2.6b

Automatically preparing build ... Warning: autoreconf failed
Attempting to run the preparation steps individually

Preparing build ... ERROR: aclocal failed
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for lgamma,log,exp in -lm... yes
checking for libcfu headers in /usr/local/include... found
checking for libcfu libraries in /usr/local/lib... found
htslib location not specified - building from local version
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for ranlib... ranlib
checking for zlib.h... yes
checking for inflate in -lz... yes
configure: creating ./config.status
config.status: creating config.mk
rm -f test/*.tmp test/*.tmp.*
rm -f *.o *.pico cram/*.o cram/*.pico test/*.o test/*.dSYM version.h
rm -f libhts.so libhts.so.*
rm -f libhts.a bgzip htsfile tabix test/fieldarith test/hfile test/sam test/test-regidx test/test_view test/test-vcf-api test/test-vcf-sweep
gcc -g -O2 -I. -c -o kfunc.o kfunc.c
gcc -g -O2 -I. -c -o knetfile.o knetfile.c
gcc -g -O2 -I. -c -o kstring.o kstring.c
gcc -g -O2 -I. -c -o bgzf.o bgzf.c
gcc -g -O2 -I. -c -o faidx.o faidx.c
gcc -g -O2 -I. -c -o hfile.o hfile.c
gcc -g -O2 -I. -c -o hfile_net.o hfile_net.c
echo '#define HTS_VERSION "1.2.1"' > version.h
gcc -g -O2 -I. -c -o hts.o hts.c
gcc -g -O2 -I. -c -o regidx.o regidx.c
gcc -g -O2 -I. -c -o sam.o sam.c
gcc -g -O2 -I. -c -o synced_bcf_reader.o synced_bcf_reader.c
gcc -g -O2 -I. -c -o vcf_sweep.o vcf_sweep.c
gcc -g -O2 -I. -c -o tbx.o tbx.c
gcc -g -O2 -I. -c -o vcf.o vcf.c
gcc -g -O2 -I. -c -o vcfutils.o vcfutils.c
gcc -g -O2 -I. -c -o cram/cram_codecs.o cram/cram_codecs.c
gcc -g -O2 -I. -c -o cram/cram_decode.o cram/cram_decode.c
gcc -g -O2 -I. -c -o cram/cram_encode.o cram/cram_encode.c
gcc -g -O2 -I. -c -o cram/cram_index.o cram/cram_index.c
gcc -g -O2 -I. -c -o cram/cram_io.o cram/cram_io.c
gcc -g -O2 -I. -c -o cram/cram_samtools.o cram/cram_samtools.c
gcc -g -O2 -I. -c -o cram/cram_stats.o cram/cram_stats.c
gcc -g -O2 -I. -c -o cram/files.o cram/files.c
gcc -g -O2 -I. -c -o cram/mFILE.o cram/mFILE.c
gcc -g -O2 -I. -c -o cram/md5.o cram/md5.c
gcc -g -O2 -I. -c -o cram/open_trace_file.o cram/open_trace_file.c
gcc -g -O2 -I. -c -o cram/pooled_alloc.o cram/pooled_alloc.c
gcc -g -O2 -I. -c -o cram/rANS_static.o cram/rANS_static.c
gcc -g -O2 -I. -c -o cram/sam_header.o cram/sam_header.c
gcc -g -O2 -I. -c -o cram/string_alloc.o cram/string_alloc.c
gcc -g -O2 -I. -c -o cram/thread_pool.o cram/thread_pool.c
gcc -g -O2 -I. -c -o cram/vlen.o cram/vlen.c
gcc -g -O2 -I. -c -o cram/zfio.o cram/zfio.c
ar -rc libhts.a kfunc.o knetfile.o kstring.o bgzf.o faidx.o hfile.o hfile_net.o hts.o regidx.o sam.o synced_bcf_reader.o vcf_sweep.o tbx.o vcf.o vcfutils.o cram/cram_codecs.o cram/cram_decode.o cram/cram_encode.o cram/cram_index.o cram/cram_io.o cram/cram_samtools.o cram/cram_stats.o cram/files.o cram/mFILE.o cram/md5.o cram/open_trace_file.o cram/pooled_alloc.o cram/rANS_static.o cram/sam_header.o cram/string_alloc.o cram/thread_pool.o cram/vlen.o cram/zfio.o
ranlib libhts.a
gcc -g -O2 -I. -fpic -c -o kfunc.pico kfunc.c
gcc -g -O2 -I. -fpic -c -o knetfile.pico knetfile.c
gcc -g -O2 -I. -fpic -c -o kstring.pico kstring.c
gcc -g -O2 -I. -fpic -c -o bgzf.pico bgzf.c
gcc -g -O2 -I. -fpic -c -o faidx.pico faidx.c
gcc -g -O2 -I. -fpic -c -o hfile.pico hfile.c
gcc -g -O2 -I. -fpic -c -o hfile_net.pico hfile_net.c
gcc -g -O2 -I. -fpic -c -o hts.pico hts.c
gcc -g -O2 -I. -fpic -c -o regidx.pico regidx.c
gcc -g -O2 -I. -fpic -c -o sam.pico sam.c
gcc -g -O2 -I. -fpic -c -o synced_bcf_reader.pico synced_bcf_reader.c
gcc -g -O2 -I. -fpic -c -o vcf_sweep.pico vcf_sweep.c
gcc -g -O2 -I. -fpic -c -o tbx.pico tbx.c
gcc -g -O2 -I. -fpic -c -o vcf.pico vcf.c
gcc -g -O2 -I. -fpic -c -o vcfutils.pico vcfutils.c
gcc -g -O2 -I. -fpic -c -o cram/cram_codecs.pico cram/cram_codecs.c
gcc -g -O2 -I. -fpic -c -o cram/cram_decode.pico cram/cram_decode.c
gcc -g -O2 -I. -fpic -c -o cram/cram_encode.pico cram/cram_encode.c
gcc -g -O2 -I. -fpic -c -o cram/cram_index.pico cram/cram_index.c
gcc -g -O2 -I. -fpic -c -o cram/cram_io.pico cram/cram_io.c
gcc -g -O2 -I. -fpic -c -o cram/cram_samtools.pico cram/cram_samtools.c
gcc -g -O2 -I. -fpic -c -o cram/cram_stats.pico cram/cram_stats.c
gcc -g -O2 -I. -fpic -c -o cram/files.pico cram/files.c
gcc -g -O2 -I. -fpic -c -o cram/mFILE.pico cram/mFILE.c
gcc -g -O2 -I. -fpic -c -o cram/md5.pico cram/md5.c
gcc -g -O2 -I. -fpic -c -o cram/open_trace_file.pico cram/open_trace_file.c
gcc -g -O2 -I. -fpic -c -o cram/pooled_alloc.pico cram/pooled_alloc.c
gcc -g -O2 -I. -fpic -c -o cram/rANS_static.pico cram/rANS_static.c
gcc -g -O2 -I. -fpic -c -o cram/sam_header.pico cram/sam_header.c
gcc -g -O2 -I. -fpic -c -o cram/string_alloc.pico cram/string_alloc.c
gcc -g -O2 -I. -fpic -c -o cram/thread_pool.pico cram/thread_pool.c
gcc -g -O2 -I. -fpic -c -o cram/vlen.pico cram/vlen.c
gcc -g -O2 -I. -fpic -c -o cram/zfio.pico cram/zfio.c
gcc -shared -Wl,-soname,libhts.so.1 -pthread  -o libhts.so kfunc.pico knetfile.pico kstring.pico bgzf.pico faidx.pico hfile.pico hfile_net.pico hts.pico regidx.pico sam.pico synced_bcf_reader.pico vcf_sweep.pico tbx.pico vcf.pico vcfutils.pico cram/cram_codecs.pico cram/cram_decode.pico cram/cram_encode.pico cram/cram_index.pico cram/cram_io.pico cram/cram_samtools.pico cram/cram_stats.pico cram/files.pico cram/mFILE.pico cram/md5.pico cram/open_trace_file.pico cram/pooled_alloc.pico cram/rANS_static.pico cram/sam_header.pico cram/string_alloc.pico cram/thread_pool.pico cram/vlen.pico cram/zfio.pico  -lz -lm
ln -sf libhts.so libhts.so.1
gcc -g -O2 -I. -c -o bgzip.o bgzip.c
gcc -pthread  -o bgzip bgzip.o libhts.a  -lz
gcc -g -O2 -I. -c -o htsfile.o htsfile.c
gcc -pthread  -o htsfile htsfile.o libhts.a  -lz
gcc -g -O2 -I. -c -o tabix.o tabix.c
gcc -pthread  -o tabix tabix.o libhts.a  -lz
gcc -g -O2 -I. -c -o test/fieldarith.o test/fieldarith.c
gcc -pthread  -o test/fieldarith test/fieldarith.o libhts.a  -lz
gcc -g -O2 -I. -c -o test/hfile.o test/hfile.c
gcc  -o test/hfile test/hfile.o libhts.a  -lz
gcc -g -O2 -I. -c -o test/sam.o test/sam.c
gcc -pthread  -o test/sam test/sam.o libhts.a  -lz
gcc -g -O2 -I. -c -o test/test-regidx.o test/test-regidx.c
gcc -pthread  -o test/test-regidx test/test-regidx.o libhts.a  -lz
gcc -g -O2 -I. -c -o test/test_view.o test/test_view.c
gcc -pthread  -o test/test_view test/test_view.o libhts.a  -lz
gcc -g -O2 -I. -c -o test/test-vcf-api.o test/test-vcf-api.c
gcc -pthread  -o test/test-vcf-api test/test-vcf-api.o libhts.a  -lz
gcc -g -O2 -I. -c -o test/test-vcf-sweep.o test/test-vcf-sweep.c
gcc -pthread  -o test/test-vcf-sweep test/test-vcf-sweep.o libhts.a  -lz
checking for libhts headers in /root/bamm/BamM/c/htslib-1.2.1/htslib... found
checking for libhts libraries in /root/bamm/BamM/c/htslib-1.2.1... found
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
=== configuring in libcfu-0.03 (/root/bamm/BamM/c/libcfu-0.03)
configure: running /bin/sh ./configure --disable-option-checking '--prefix=/usr/local'  --cache-file=/dev/null --srcdir=.
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
rm -f *.o
rm -f libBamM.a
gcc -std=gnu99 -g -fPIC -pthread -O2 -Wall -I/root/bamm/BamM/c/htslib-1.2.1/htslib -I/usr/local/include  -c -o bamExtractor.o bamExtractor.c
gcc -std=gnu99 -g -fPIC -pthread -O2 -Wall -I/root/bamm/BamM/c/htslib-1.2.1/htslib -I/usr/local/include  -c -o bamParser.o bamParser.c
gcc -std=gnu99 -g -fPIC -pthread -O2 -Wall -I/root/bamm/BamM/c/htslib-1.2.1/htslib -I/usr/local/include  -c -o pairedLink.o pairedLink.c
gcc -std=gnu99 -g -fPIC -pthread -O2 -Wall -I/root/bamm/BamM/c/htslib-1.2.1/htslib -I/usr/local/include  -c -o bamRead.o bamRead.c
gcc -std=gnu99 -g -fPIC -pthread -O2 -Wall -I/root/bamm/BamM/c/htslib-1.2.1/htslib -I/usr/local/include  -c -o coverageEstimators.o coverageEstimators.c
gcc -std=gnu99 -g -fPIC -pthread -O2 -Wall -I/root/bamm/BamM/c/htslib-1.2.1/htslib -I/usr/local/include  -c -o stats.o stats.c
gcc -std=gnu99 -g -fPIC -pthread -O2 -Wall -I/root/bamm/BamM/c/htslib-1.2.1/htslib -I/usr/local/include -static-libgcc -shared -Wl,-rpath,/root/bamm/BamM/c/htslib-1.2.1 -o libBamM.a bamExtractor.c bamParser.c pairedLink.c bamRead.c coverageEstimators.c stats.c -lm -L/usr/local/lib -lcfu -L/root/bamm/BamM/c/htslib-1.2.1 -lhts
minillinim commented 9 years ago

As far as the CentOS stuff goes, the problem starts here:

configure: error: cannot run /bin/sh ./config.sub

This is almost definitely an issue with my knowledge on the build system on CentOS. I'll keep looking into it.

linsalrob commented 9 years ago

I think the first issue is that lines 1042-47 of c/autogen.sh include:

    for file in config.guess config.sub ltmain.sh ; do
        if test -f "${_aux_dir}/${file}" ; then
         $VERBOSE_ECHO "mv -f \"${_aux_dir}/${file}\" \"${_aux_dir}/${file}.backup\""
         mv -f "${_aux_dir}/${file}" "${_aux_dir}/${file}.backup"
        fi
done

If I comment out those lines, and also restore those files:

cd libcfu-0.03/
cp config.guess.backup config.guess; cp config.sub.backup config.sub; cp ltmain.sh.backup ltmain.sh

you can ./configure the files in that directory but now you get a missing aclocal error. That can be resolved with

touch configure.ac aclocal.m4 configure Makefile.am Makefile.in

which now allows you to ./configure && make in the c/libcfu-0.03 directory

This allows me to run

/usr/bin/python setup.py install --with-libhts-lib /usr/local/lib/libhts.a  --with-libhts-inc /usr/local/include/htslib

the bamm command runs just fine:

# bamm

                              ...::: BamM :::...

                    Working with the BAM, not against it...

   -------------------------------------------------------------------------
                                  version: 1.4.1
   -------------------------------------------------------------------------

    bamm make     ->  Make BAM/TAM files (sorted + indexed)
    bamm parse    ->  Get coverage profiles / linking reads / insert types
    bamm extract  ->  Extract reads / headers from BAM files

    USE: bamm OPTION -h to see detailed options

but the nosetests faill:

# cd bamm
# nosetests

.********************************************************************************

ERROR:

Problem importing the BamM c library. This typically means that BamM is not installed correctly.
Please check the installation logs for more details.
If you don't have the installation logs then please try to reinstall BamM and look at the output.
Looking for the c library at: /usr/lib/python2.6/site-packages/bamm/libBamM.a

********************************************************************************

********************************************************************************

ERROR:

Problem importing the BamM c library. This typically means that BamM is not installed correctly.
Please check the installation logs for more details.
If you don't have the installation logs then please try to reinstall BamM and look at the output.
Looking for the c library at: /usr/lib/python2.6/site-packages/bamm/libBamM.a

********************************************************************************

********************************************************************************

ERROR:

Problem importing the BamM c library. This typically means that BamM is not installed correctly.
Please check the installation logs for more details.
If you don't have the installation logs then please try to reinstall BamM and look at the output.
Looking for the c library at: /usr/lib/python2.6/site-packages/bamm/libBamM.a

********************************************************************************

Process Process-4:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python2.6/site-packages/bamm/bamParser.py", line 92, in externalParseWrapper
    CW = CWrapper()
  File "/usr/lib/python2.6/site-packages/bamm/cWrapper.py", line 461, in __init__
    self.libPMBam = c.cdll.LoadLibrary(c_lib)
  File "/usr/lib64/python2.6/ctypes/__init__.py", line 431, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib64/python2.6/ctypes/__init__.py", line 353, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libhts.so.1: cannot open shared object file: No such file or directory
Process Process-3:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python2.6/site-packages/bamm/bamParser.py", line 92, in externalParseWrapper
    CW = CWrapper()
  File "/usr/lib/python2.6/site-packages/bamm/cWrapper.py", line 461, in __init__
    self.libPMBam = c.cdll.LoadLibrary(c_lib)
  File "/usr/lib64/python2.6/ctypes/__init__.py", line 431, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib64/python2.6/ctypes/__init__.py", line 353, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libhts.so.1: cannot open shared object file: No such file or directory
Process Process-2:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python2.6/site-packages/bamm/bamParser.py", line 92, in externalParseWrapper
    CW = CWrapper()
  File "/usr/lib/python2.6/site-packages/bamm/cWrapper.py", line 461, in __init__
    self.libPMBam = c.cdll.LoadLibrary(c_lib)
  File "/usr/lib64/python2.6/ctypes/__init__.py", line 431, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib64/python2.6/ctypes/__init__.py", line 353, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libhts.so.1: cannot open shared object file: No such file or directory
Traceback (most recent call last):
  File "/usr/bin/bamm", line 584, in <module>
    doWork(args)
  File "/usr/bin/bamm", line 216, in doWork
    except BAMFileNotFoundException as e:
NameError: global name 'BAMFileNotFoundException' is not defined
Exception in thread QueueFeederThread (most likely raised during interpreter shutdown):
Traceback (most recent call last):
  File "/usr/lib64/python2.6/threading.py", line 532, in __bootstrap_inner
  File "/usr/lib64/python2.6/threading.py", line 484, in run
  File "/usr/lib64/python2.6/multiprocessing/queues.py", line 233, in _feed
<type 'exceptions.TypeError'>: 'NoneType' object is not callable
E********************************************************************************

ERROR:

Problem importing the BamM c library. This typically means that BamM is not installed correctly.
Please check the installation logs for more details.
If you don't have the installation logs then please try to reinstall BamM and look at the output.
Looking for the c library at: /usr/lib/python2.6/site-packages/bamm/libBamM.a

********************************************************************************

....
minillinim commented 9 years ago

Thanks for keeping up with this Rob. When I install BamM on my machine, the last few lines look like this:

Building BamM library /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'install_requires' warnings.warn(msg) running install running build running build_py copying bamm/libBamM.a -> build/lib.linux-x86_64-2.7/bamm running build_scripts copying and adjusting bin/bamm -> build/scripts-2.7 running install_lib copying build/lib.linux-x86_64-2.7/bamm/libBamM.a -> /usr/local/lib/python2.7/dist-packages/bamm running install_scripts copying build/scripts-2.7/bamm -> /usr/local/bin changing mode of /usr/local/bin/bamm to 755 changing mode of /usr/local/bin/bamFlags to 755 running install_egg_info Removing /usr/local/lib/python2.7/dist-packages/BamM-1.4.1.egg-info Writing /usr/local/lib/python2.7/dist-packages/BamM-1.4.1.egg-info

So I can see that the install dir is: /usr/local/lib/python2.7/dist-packages/ and then I assume there'll be a bamm tacked on the end giving:

/usr/local/lib/python2.7/dist-packages/bamm

When I ls this directory I get:

$ ls /usr/local/lib/python2.7/dist-packages/bamm/ bamExtractor.py bamFile.py bamLink.py bamMaker.py bammExceptions.py bamParser.py bamRead.py cWrapper.py init.py libBamM.a bamExtractor.pyc bamFile.pyc bamLink.pyc bamMaker.pyc bammExceptions.pyc bamParser.pyc bamRead.pyc cWrapper.pyc init.pyc

And so everything works. I suspect the same is true on your machine.

I think my useful error may be misleading because of this:

OSError: libhts.so.1: cannot open shared object file: No such file or directory

Is this a LD_LIBRARY_PATH issue for htslib?

I added BAMFileNotFoundException to the list of imports for bin/bamm so that should fix that issue (in BamM 1.4.2)

chandni177 commented 8 years ago

Hi, I've been trying to install BamM and got the same error as the original issue.

My system details - Linux endeavor 2.6.32-504.23.4.el6.x86_64 #1 SMP Tue Jun 9 20:57:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

I couldn't gather from the post if the issue was fully resolved or not. Could you help me out with this please?

Thanks! Chandni

wwood commented 8 years ago

Hi Chandni,

Thanks for giving BamM a go. I don't believe this error has been fixed, no. Can I ask, which issue are you talking about specifically? Also, what is the output of /usr/bin/python --version and python --version?

With some fresh eyes, there's a few things that might help track things down. Would you mind looking into them please @timbalam ?

  1. It seems that BamM has been installed in python 2.6 not 2.7, as evidenced by lines like below.
  File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()

I wonder then if making sure bamm is installed using 2.7 and then running python2.7 /path/to/bamm might give better results?

  1. BamM seems to be looking for a .a file, when only the .so file was specified in the install procedure. Can we double check to make sure that installing using --with-hts-lib etc actually works on non-CentOS machines at least please?
  2. Do you think it might be possible / preferable to omit the autogen-related stuff, so that users can jump straight to ./configure? That is the normal way of doing things, do you know of a reason that it isn't being done here?

Thanks, ben

chandni177 commented 8 years ago

Ah, you are right. /usr/bin/python --version : Python 2.6.6 python -- version : Python 2.7.9

I'm not sure how to specifically install BamM using 2.7 though. I realized I install most others using pip, and they automatically use 2.7. What do you think is the best way to go about it?

Meanwhile, here is my run log ..

Preparing the BamM build system...please wait

Found GNU Autoconf version 2.63
Found GNU Automake version 1.11.1
Found GNU Libtool version 2.2.6b

Automatically preparing build ... Warning: autoreconf failed
Attempting to run the preparation steps individually

Preparing build ... ERROR: aclocal failed
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for lgamma,log,exp in -lm... yes
checking for libcfu headers in /usr/local/include... found
checking for libcfu libraries in /usr/local/lib... found
htslib location not specified - building from local version
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for ranlib... ranlib
checking for zlib.h... yes
checking for inflate in -lz... yes
configure: creating ./config.status
config.status: creating config.mk
rm -f test/*.tmp test/*.tmp.*
rm -f *.o *.pico cram/*.o cram/*.pico test/*.o test/*.dSYM version.h
rm -f libhts.so libhts.so.*
rm -f libhts.a bgzip htsfile tabix test/fieldarith test/hfile test/sam test/test-regidx test/test_view test/test-vcf-api test/test-vcf-sweep
gcc -g -O2 -I. -c -o kfunc.o kfunc.c
gcc -g -O2 -I. -c -o knetfile.o knetfile.c
gcc -g -O2 -I. -c -o kstring.o kstring.c
gcc -g -O2 -I. -c -o bgzf.o bgzf.c
gcc -g -O2 -I. -c -o faidx.o faidx.c
gcc -g -O2 -I. -c -o hfile.o hfile.c
gcc -g -O2 -I. -c -o hfile_net.o hfile_net.c
echo '#define HTS_VERSION "1.2.1"' > version.h
gcc -g -O2 -I. -c -o hts.o hts.c
gcc -g -O2 -I. -c -o regidx.o regidx.c
gcc -g -O2 -I. -c -o sam.o sam.c
gcc -g -O2 -I. -c -o synced_bcf_reader.o synced_bcf_reader.c
gcc -g -O2 -I. -c -o vcf_sweep.o vcf_sweep.c
gcc -g -O2 -I. -c -o tbx.o tbx.c
gcc -g -O2 -I. -c -o vcf.o vcf.c
gcc -g -O2 -I. -c -o vcfutils.o vcfutils.c
gcc -g -O2 -I. -c -o cram/cram_codecs.o cram/cram_codecs.c
gcc -g -O2 -I. -c -o cram/cram_decode.o cram/cram_decode.c
gcc -g -O2 -I. -c -o cram/cram_encode.o cram/cram_encode.c
gcc -g -O2 -I. -c -o cram/cram_index.o cram/cram_index.c
gcc -g -O2 -I. -c -o cram/cram_io.o cram/cram_io.c
gcc -g -O2 -I. -c -o cram/cram_samtools.o cram/cram_samtools.c
gcc -g -O2 -I. -c -o cram/cram_stats.o cram/cram_stats.c
gcc -g -O2 -I. -c -o cram/files.o cram/files.c
gcc -g -O2 -I. -c -o cram/mFILE.o cram/mFILE.c
gcc -g -O2 -I. -c -o cram/md5.o cram/md5.c
gcc -g -O2 -I. -c -o cram/open_trace_file.o cram/open_trace_file.c
gcc -g -O2 -I. -c -o cram/pooled_alloc.o cram/pooled_alloc.c
gcc -g -O2 -I. -c -o cram/rANS_static.o cram/rANS_static.c
gcc -g -O2 -I. -c -o cram/sam_header.o cram/sam_header.c
gcc -g -O2 -I. -c -o cram/string_alloc.o cram/string_alloc.c
gcc -g -O2 -I. -c -o cram/thread_pool.o cram/thread_pool.c
gcc -g -O2 -I. -c -o cram/vlen.o cram/vlen.c
gcc -g -O2 -I. -c -o cram/zfio.o cram/zfio.c
ar -rc libhts.a kfunc.o knetfile.o kstring.o bgzf.o faidx.o hfile.o hfile_net.o hts.o regidx.o sam.o synced_bcf_reader.o vcf_sweep.o tbx.o vcf.o vcfutils.o cram/cram_codecs.o cram/cram_decode.o cram/cram_encode.o cram/cram_index.o cram/cram_io.o cram/cram_samtools.o cram/cram_stats.o cram/files.o cram/mFILE.o cram/md5.o cram/open_trace_file.o cram/pooled_alloc.o cram/rANS_static.o cram/sam_header.o cram/string_alloc.o cram/thread_pool.o cram/vlen.o cram/zfio.o
ranlib libhts.a
gcc -g -O2 -I. -fpic -c -o kfunc.pico kfunc.c
gcc -g -O2 -I. -fpic -c -o knetfile.pico knetfile.c
gcc -g -O2 -I. -fpic -c -o kstring.pico kstring.c
gcc -g -O2 -I. -fpic -c -o bgzf.pico bgzf.c
gcc -g -O2 -I. -fpic -c -o faidx.pico faidx.c
gcc -g -O2 -I. -fpic -c -o hfile.pico hfile.c
gcc -g -O2 -I. -fpic -c -o hfile_net.pico hfile_net.c
gcc -g -O2 -I. -fpic -c -o hts.pico hts.c
gcc -g -O2 -I. -fpic -c -o regidx.pico regidx.c
gcc -g -O2 -I. -fpic -c -o sam.pico sam.c
gcc -g -O2 -I. -fpic -c -o synced_bcf_reader.pico synced_bcf_reader.c
gcc -g -O2 -I. -fpic -c -o vcf_sweep.pico vcf_sweep.c
gcc -g -O2 -I. -fpic -c -o tbx.pico tbx.c
gcc -g -O2 -I. -fpic -c -o vcf.pico vcf.c
gcc -g -O2 -I. -fpic -c -o vcfutils.pico vcfutils.c
gcc -g -O2 -I. -fpic -c -o cram/cram_codecs.pico cram/cram_codecs.c
gcc -g -O2 -I. -fpic -c -o cram/cram_decode.pico cram/cram_decode.c
gcc -g -O2 -I. -fpic -c -o cram/cram_encode.pico cram/cram_encode.c
gcc -g -O2 -I. -fpic -c -o cram/cram_index.pico cram/cram_index.c
gcc -g -O2 -I. -fpic -c -o cram/cram_io.pico cram/cram_io.c
gcc -g -O2 -I. -fpic -c -o cram/cram_samtools.pico cram/cram_samtools.c
gcc -g -O2 -I. -fpic -c -o cram/cram_stats.pico cram/cram_stats.c
gcc -g -O2 -I. -fpic -c -o cram/files.pico cram/files.c
gcc -g -O2 -I. -fpic -c -o cram/mFILE.pico cram/mFILE.c
gcc -g -O2 -I. -fpic -c -o cram/md5.pico cram/md5.c
gcc -g -O2 -I. -fpic -c -o cram/open_trace_file.pico cram/open_trace_file.c
gcc -g -O2 -I. -fpic -c -o cram/pooled_alloc.pico cram/pooled_alloc.c
gcc -g -O2 -I. -fpic -c -o cram/rANS_static.pico cram/rANS_static.c
gcc -g -O2 -I. -fpic -c -o cram/sam_header.pico cram/sam_header.c
gcc -g -O2 -I. -fpic -c -o cram/string_alloc.pico cram/string_alloc.c
gcc -g -O2 -I. -fpic -c -o cram/thread_pool.pico cram/thread_pool.c
gcc -g -O2 -I. -fpic -c -o cram/vlen.pico cram/vlen.c
gcc -g -O2 -I. -fpic -c -o cram/zfio.pico cram/zfio.c
gcc -shared -Wl,-soname,libhts.so.1 -pthread  -o libhts.so kfunc.pico knetfile.pico kstring.pico bgzf.pico faidx.pico hfile.pico hfile_net.pico hts.pico regidx.pico sam.pico synced_bcf_reader.pico vcf_sweep.pico tbx.pico vcf.pico vcfutils.pico cram/cram_codecs.pico cram/cram_decode.pico cram/cram_encode.pico cram/cram_index.pico cram/cram_io.pico cram/cram_samtools.pico cram/cram_stats.pico cram/files.pico cram/mFILE.pico cram/md5.pico cram/open_trace_file.pico cram/pooled_alloc.pico cram/rANS_static.pico cram/sam_header.pico cram/string_alloc.pico cram/thread_pool.pico cram/vlen.pico cram/zfio.pico  -lz -lm
ln -sf libhts.so libhts.so.1
gcc -g -O2 -I. -c -o bgzip.o bgzip.c
gcc -pthread  -o bgzip bgzip.o libhts.a  -lz
gcc -g -O2 -I. -c -o htsfile.o htsfile.c
gcc -pthread  -o htsfile htsfile.o libhts.a  -lz
gcc -g -O2 -I. -c -o tabix.o tabix.c
gcc -pthread  -o tabix tabix.o libhts.a  -lz
gcc -g -O2 -I. -c -o test/fieldarith.o test/fieldarith.c
gcc -pthread  -o test/fieldarith test/fieldarith.o libhts.a  -lz
gcc -g -O2 -I. -c -o test/hfile.o test/hfile.c
gcc  -o test/hfile test/hfile.o libhts.a  -lz
gcc -g -O2 -I. -c -o test/sam.o test/sam.c
gcc -pthread  -o test/sam test/sam.o libhts.a  -lz
gcc -g -O2 -I. -c -o test/test-regidx.o test/test-regidx.c
gcc -pthread  -o test/test-regidx test/test-regidx.o libhts.a  -lz
gcc -g -O2 -I. -c -o test/test_view.o test/test_view.c
gcc -pthread  -o test/test_view test/test_view.o libhts.a  -lz
gcc -g -O2 -I. -c -o test/test-vcf-api.o test/test-vcf-api.c
gcc -pthread  -o test/test-vcf-api test/test-vcf-api.o libhts.a  -lz
gcc -g -O2 -I. -c -o test/test-vcf-sweep.o test/test-vcf-sweep.c
gcc -pthread  -o test/test-vcf-sweep test/test-vcf-sweep.o libhts.a  -lz
checking for libhts headers in /usr/local/src/BamM/c/htslib-1.2.1/htslib... found
checking for libhts libraries in /usr/local/src/BamM/c/htslib-1.2.1... found
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: config.h is unchanged
=== configuring in libcfu-0.03 (/usr/local/src/BamM/c/libcfu-0.03)
configure: WARNING: no configuration information is in libcfu-0.03
=== configuring in htslib-1.2.1 (/usr/local/src/BamM/c/htslib-1.2.1)
configure: running /bin/sh ./configure --disable-option-checking '--prefix=/usr/local'  --cache-file=/dev/null --srcdir=.
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for ranlib... ranlib
checking for zlib.h... yes
checking for inflate in -lz... yes
configure: creating ./config.status
config.status: creating config.mk
rm -f *.o
rm -f libBamM.a
gcc -std=gnu99 -g -fPIC -pthread -O2 -Wall -I/usr/local/src/BamM/c/htslib-1.2.1/htslib -I/usr/local/include  -c -o bamExtractor.o bamExtractor.c
gcc -std=gnu99 -g -fPIC -pthread -O2 -Wall -I/usr/local/src/BamM/c/htslib-1.2.1/htslib -I/usr/local/include  -c -o bamParser.o bamParser.c
gcc -std=gnu99 -g -fPIC -pthread -O2 -Wall -I/usr/local/src/BamM/c/htslib-1.2.1/htslib -I/usr/local/include  -c -o pairedLink.o pairedLink.c
gcc -std=gnu99 -g -fPIC -pthread -O2 -Wall -I/usr/local/src/BamM/c/htslib-1.2.1/htslib -I/usr/local/include  -c -o bamRead.o bamRead.c
gcc -std=gnu99 -g -fPIC -pthread -O2 -Wall -I/usr/local/src/BamM/c/htslib-1.2.1/htslib -I/usr/local/include  -c -o coverageEstimators.o coverageEstimators.c
gcc -std=gnu99 -g -fPIC -pthread -O2 -Wall -I/usr/local/src/BamM/c/htslib-1.2.1/htslib -I/usr/local/include  -c -o stats.o stats.c
gcc -std=gnu99 -g -fPIC -pthread -O2 -Wall -I/usr/local/src/BamM/c/htslib-1.2.1/htslib -I/usr/local/include  -c -o bamFilter.o bamFilter.c
gcc -std=gnu99 -g -fPIC -pthread -O2 -Wall -I/usr/local/src/BamM/c/htslib-1.2.1/htslib -I/usr/local/include -static-libgcc -shared -Wl,-rpath,/usr/local/src/BamM/c/htslib-1.2.1 -o libBamM.a bamExtractor.c bamParser.c pairedLink.c bamRead.c coverageEstimators.c stats.c bamFilter.c -lm -L/usr/local/lib -lcfu -L/usr/local/src/BamM/c/htslib-1.2.1 -lhts
/usr/bin/ld: /usr/local/lib/libcfu.a(cfuhash.o): relocation R_X86_64_32 against `.text' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libcfu.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [libBamM.a] Error 1
Traceback (most recent call last):
  File "setup.py", line 38, in <module>
    rename(join('c', 'libBamM.a'), join('bamm', 'libBamM.a'))
OSError: [Errno 2] No such file or directory