isovic / graphmap

GraphMap - A highly sensitive and accurate mapper for long, error-prone reads http://www.nature.com/ncomms/2016/160415/ncomms11307/full/ncomms11307.html Note: This was the original repository which will no longer be officially maintained. Please use the new official repository here:
https://github.com/lbcb-sci/graphmap2
MIT License
179 stars 45 forks source link

Recompiling libraries fails #1

Closed mulderdt closed 8 years ago

mulderdt commented 9 years ago

Running 'make deps' fails with error on both os x and linux. Perhaps due to nonstandard install of cmake. Resolved in other cases by other people by replacing cmake with CMAKE_COMMAND.

[dmulder@samwise graphmap]$ make deps cd libs; cd libdivsufsort-2.0.1; make clean; rm -rf build; ./configure; mkdir build ;cd build; cmake -DBUILD_DIVSUFSORT64:BOOL=ON -DCMAKE_BUILD_TYPE="Release" -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX="/usr/local" .. ; make make[1]: Entering directory /mnt/work1/users/home2/dmulder/bin/graphmap/libs/libdivsufsort-2.0.1' Making clean in examples make[2]: Entering directory/mnt/work1/users/home2/dmulder/bin/graphmap/libs/libdivsufsort-2.0.1/examples' rm -rf .libs libs rm -f suftest mksary sasearch bwt unbwt rm -f .o rm -f .lo make[2]: Leaving directory /mnt/work1/users/home2/dmulder/bin/graphmap/libs/libdivsufsort-2.0.1/examples' Making clean in lib make[2]: Entering directory/mnt/work1/users/home2/dmulder/bin/graphmap/libs/libdivsufsort-2.0.1/lib' test -z "libdivsufsort.la " || rm -f libdivsufsort.la rm -f "./so_locations" rm -rf .libs _libs rm -f .o rm -f .lo make[2]: Leaving directory /mnt/work1/users/home2/dmulder/bin/graphmap/libs/libdivsufsort-2.0.1/lib' Making clean in include make[2]: Entering directory/mnt/work1/users/home2/dmulder/bin/graphmap/libs/libdivsufsort-2.0.1/include' rm -rf .libs _libs rm -f .lo make[2]: Leaving directory /mnt/work1/users/home2/dmulder/bin/graphmap/libs/libdivsufsort-2.0.1/include' Making clean in . make[2]: Entering directory/mnt/work1/users/home2/dmulder/bin/graphmap/libs/libdivsufsort-2.0.1' rm -rf .libs _libs rm -f .lo make[2]: Leaving directory /mnt/work1/users/home2/dmulder/bin/graphmap/libs/libdivsufsort-2.0.1' make[1]: Leaving directory/mnt/work1/users/home2/dmulder/bin/graphmap/libs/libdivsufsort-2.0.1' checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu 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 to enable maintainer-specific portions of Makefiles... no 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 style of include used by make... GNU checking dependency style of gcc... gcc3 checking whether make sets $(MAKE)... (cached) yes checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1966080 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for ar... ar checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... no checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... no checking whether to build static libraries... yes checking for ANSI C header files... (cached) yes checking for inttypes.h... (cached) yes checking for memory.h... (cached) yes checking stddef.h usability... yes checking stddef.h presence... yes checking for stddef.h... yes checking for stdint.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking for strings.h... (cached) yes checking for sys/types.h... (cached) yes checking io.h usability... no checking io.h presence... no checking for io.h... no checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking for uint8_t... yes checking for int32_t... yes checking for an ANSI C-conforming const... yes checking for inline... inline checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking for fopen_s... no checking for _setmode... no checking for setmode... no checking for _fileno... no configure: creating ./config.status config.status: creating Makefile config.status: creating include/Makefile config.status: creating include/divsufsort.h config.status: creating include/lfs.h config.status: creating lib/Makefile config.status: creating examples/Makefile config.status: creating include/config.h config.status: include/config.h is unchanged config.status: executing depfiles commands config.status: executing libtool commands /bin/sh: cmake: command not found make[1]: Entering directory `/mnt/work1/users/home2/dmulder/bin/graphmap/libs/libdivsufsort-2.0.1/build' make[1]: _* No targets specified and no makefile found. Stop. make[1]: Leaving directory `/mnt/work1/users/home2/dmulder/bin/graphmap/libs/libdivsufsort-2.0.1/build' make: *\ [deps] Error 2

isovic commented 9 years ago

make deps basically just cleans and invokes libdivsufsort's cmake building mechanism to recompile it into a static library. If your system has a non standard install of cmake, that could do it.

Could you be more specific on how you resolved the problem? If I understood you correctly, you changed the rule deps to run ${CMAKE_COMMAND} instead cmake?

Thank you for the report!

andreas-wilm commented 9 years ago

Maintaining make targets shouldn't be a manual task. In the long-run it would make sense to move to autotools (configure.ac and Makefile.am) and include libdivsufsort as external dependency.