Menu

configure doesn't find/check for LAPACK

Timo
2006-02-01
2012-09-15
  • Timo

    Timo - 2006-02-01

    Hi!

    I'm trying to install IT++ 3.9.0 on SuSE 10.0. I use the external FFTW3-lib, which ist found by configure. For CBLAS, I use the gslcblas, which is also found. For LAPACK, I tried using the liblapack.a I already have installed in /usr/lib, then I tried the external Version, located in /usr/local/lib. Both options did not work! So what can I do?

    Here's my output from ./configure:

    ./configure --with-cblas-dir="/usr/lib" --enable-lapack --with-lapack-dir="/usr/local/lib" --with-lapack="/usr/local/lib/liblapack.a -llapack -lblas -lgslcblas -lgfortan" --with-cblas="/usr/lib/libgslcblas.a -lgslcblas -lblas -llapack -lgfortran"

    OUTPUT:

    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for gawk... gawk
    checking whether make sets $(MAKE)... yes
    checking for g++... g++
    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 g++ accepts -g... yes
    checking for style of include used by make... GNU
    checking dependency style of g++... gcc3
    checking how to run the C++ preprocessor... g++ -E
    checking for a BSD-compatible install... /usr/bin/install -c
    checking build system type... i686-suse-linux
    checking host system type... i686-suse-linux
    checking for gcc... gcc
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ANSI C... none needed
    checking dependency style of gcc... gcc3
    checking for a sed that does not truncate output... /usr/bin/sed
    checking for egrep... grep -E
    checking for ld used by gcc... /usr/i586-suse-linux/bin/ld
    checking if the linker (/usr/i586-suse-linux/bin/ld) is GNU ld... yes
    checking for /usr/i586-suse-linux/bin/ld option to reload object files... -r
    checking for BSD-compatible nm... /usr/bin/nm -B
    checking whether ln -s works... yes
    checking how to recognise dependent libraries... pass_all
    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 dlfcn.h usability... yes
    checking dlfcn.h presence... yes
    checking for dlfcn.h... yes
    checking how to run the C++ preprocessor... g++ -E
    checking for g77... g77
    checking whether we are using the GNU Fortran 77 compiler... no
    checking whether g77 accepts -g... yes
    checking the maximum length of command line arguments... 32768
    checking command to parse /usr/bin/nm -B output from gcc object... ok
    checking for objdir... .libs
    checking for ar... ar
    checking for ranlib... ranlib
    checking for strip... strip
    checking if gcc static flag works... yes
    checking if gcc supports -fno-rtti -fno-exceptions... no
    checking for gcc option to produce PIC... -fPIC
    checking if gcc PIC flag -fPIC works... yes
    checking if gcc supports -c -o file.o... yes
    checking whether the gcc linker (/usr/i586-suse-linux/bin/ld) supports shared libraries... yes
    checking whether -lc should be explicitly linked in... no
    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... yes
    checking whether to build static libraries... yes
    configure: creating libtool
    appending configuration tag "CXX" to libtool
    checking for ld used by g++... /usr/i586-suse-linux/bin/ld
    checking if the linker (/usr/i586-suse-linux/bin/ld) is GNU ld... yes
    checking whether the g++ linker (/usr/i586-suse-linux/bin/ld) supports shared libraries... yes
    checking for g++ option to produce PIC... -fPIC
    checking if g++ PIC flag -fPIC works... yes
    checking if g++ supports -c -o file.o... yes
    checking whether the g++ linker (/usr/i586-suse-linux/bin/ld) 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
    appending configuration tag "F77" to libtool
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... yes
    checking whether to build static libraries... yes
    checking for g77 option to produce PIC... -fPIC
    checking if g77 PIC flag -fPIC works... yes
    checking if g77 supports -c -o file.o... yes
    checking whether the g77 linker (/usr/i586-suse-linux/bin/ld) 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 whether ln -s works... yes
    checking whether make sets $(MAKE)... (cached) yes
    checking for doxygen... yes
    checking for latex... yes
    checking for dvips... yes
    checking for gs... yes
    checking for perl... /usr/bin/perl
    checking for diff... yes
    checking for sin in -lm... yes
    checking how to get verbose linking output from g77... -v
    checking for Fortran libraries of g77... -L/usr/lib/gcc-lib/i586-suse-linux/3.3.5 -L/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../../i586-suse-linux/lib -L/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../.. -lfrtbegin -lg2c -lm -lgcc_s
    checking for dummy main to link with Fortran libraries... none
    checking for Fortran name-mangling scheme... lower case, underscore, extra underscore
    checking for fftw_plan_dft_1d in -lfftw3... yes
    checking for ATL_xerbla in -latlas... no
    checking for sgemm_ in -lblas... no
    checking for cblas_sgemm... yes
    checking for cheev_... no
    checking for ANSI C header files... (cached) yes
    checking whether stat file-mode macros are broken... no
    checking whether time.h and sys/time.h may both be included... yes
    checking sys/time.h usability... yes
    checking sys/time.h presence... yes
    checking for sys/time.h... yes
    checking algorithm usability... yes
    checking algorithm presence... yes
    checking for algorithm... yes
    checking cassert usability... yes
    checking cassert presence... yes
    checking for cassert... yes
    checking cmath usability... yes
    checking cmath presence... yes
    checking for cmath... yes
    checking complex usability... yes
    checking complex presence... yes
    checking for complex... yes
    checking cstring usability... yes
    checking cstring presence... yes
    checking for cstring... yes
    checking deque usability... yes
    checking deque presence... yes
    checking for deque... yes
    checking fstream usability... yes
    checking fstream presence... yes
    checking for fstream... yes
    checking limits usability... yes
    checking limits presence... yes
    checking for limits... yes
    checking list usability... yes
    checking list presence... yes
    checking for list... yes
    checking queue usability... yes
    checking queue presence... yes
    checking for queue... yes
    checking string usability... yes
    checking string presence... yes
    checking for string... yes
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating itpp/Makefile
    config.status: creating itpp/base/Makefile
    config.status: creating itpp/base/bessel/Makefile
    config.status: creating itpp/comm/Makefile
    config.status: creating itpp/fixedpoint/Makefile
    config.status: creating itpp/protocol/Makefile
    config.status: creating itpp/srccode/Makefile
    config.status: creating doc/Makefile
    config.status: creating doc/images/Makefile
    config.status: creating doc/tutorial/Makefile
    config.status: creating doc/tutorial/src/Makefile
    config.status: creating doc/local/Makefile
    config.status: creating doc/local/index.doc
    config.status: creating doc/doxygen_html.cfg
    config.status: creating extras/Makefile
    config.status: creating tests/Makefile
    config.status: creating itpp.pc
    config.status: creating itpp-config
    config.status: creating itpp/config.h
    config.status: itpp/config.h is unchanged
    config.status: executing depfiles commands


    itpp-3.9.0 library configuration:

    Directories:
    - prefix ....... : /usr/local
    - exec_prefix .. : ${prefix}
    - includedir ... : ${prefix}/include
    - libdir ....... : ${exec_prefix}/lib
    - docdir ....... : ${prefix}/share/doc/itpp-3.9.0

    Switches:
    - debug ........ : no
    - html-doc ..... : yes

    Documentation tools:
    - Doxygen ...... : yes
    - LaTeX ........ : yes
    - Dvips ........ : yes
    - GhostScript .. : yes

    Testing tools:
    - Diff ......... : yes

    External libs:
    - MKL .......... : no
    - FFTW ......... : yes
    - ATLAS ........ : no
    - CBLAS ........ : yes
    - LAPACK ....... : no

    Compiler/linker flags/libs/defs:
    - CXX .......... : g++
    - CPPFLAGS ..... :
    - CXXFLAGS ..... : -pipe -fomit-frame-pointer -O2 -DNDEBUG -DASSERT_LEVEL=1
    - LDFLAGS ...... : -L/usr/local/lib -L/usr/lib
    - LIBS ......... : /usr/lib/libgslcblas.a -lgslcblas -lblas -llapack -lgfortran -lfftw3 -lm -L/usr/lib/gcc-lib/i586-suse-linux/3.3.5 -L/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../../i586-suse-linux/lib -L/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../.. -lfrtbegin -lg2c -lm -lgcc_s


    Now type 'make && make install' to build and install itpp-3.9.0 library

    Thx,

    Timo

     
    • Adam Piątyszek

      Adam Piątyszek - 2006-02-01

      Hi Timo!

      Could you try the IT++ 3.9.1 released last Saturday?
      BTW, your configure switches seems to be am overkill ;-)

      There were some changes in the configure script.
      There are not `--with-LIB-dir' switches for particular libraries. You should use LDFLAGS system environment instead, e.g:
      % export LDFLAGS=-L/usr/local/lib

      And then you can try:
      1) for CBLAS:
      % ./configure --with-cblas="-lgslcblas"
      2) for LAPACK:
      % ./configure --with-lapack="-llapack"
      3) for both CBLAS and LAPACK:
      % ./configure --with-cblas="-lgslcblas" --with-lapack="-llapack"

      One of our testers had porblems using LAPACK library from SUSE. But you can use the one provided by the itpp-external-2.0.0 package, which is confirmed to work on SUSE. I suggest configuring and installing itpp-external with:
      % ./configure --enable-cblas --enable-lapack --disable-fftw

      BTW, the next minor relase (3.10.0) will have redesigned checks for external libraries and support for various implementations of BLAS, LAPACK and FFT routines (ACML, MKL, ATLAS, FFTW3 and NetLib's).

      /ediap

       
      • Timo

        Timo - 2006-02-02

        Thank you very much! I finally got it to work.

        Here is how I did it:

        From the external libs I used fftw and lapack, by typing ./configure --enable-lapack --enable-fftw --disable-cblas

        Then I used release 3.9.1 of itpp, setting LDFLAGS to "-L/usr/local/lib -L/usr/lib". Configure finds FFTW, LAPACK, CBLAS and BLAS, but only with the following arguments:

        --with-cblas="-lgslcblas" --with-lapack="-llapack -lgfotran" --with-blas="-lblas -lgfortran"

        This -lgfortran seems to be always needed. I read that somewhere else in the internet, but don't really understand it.

        The only point now is, that I'm not really sure what lapack-lib is used. The one in /usr/lib or the one in /usr/local/lib (which is from itpp-external).

        Well, I don't care that much as long as it works.

        Thank you very much and I hope this thread will help other people to!

        Timo

         
        • Adam Piątyszek

          Adam Piątyszek - 2006-02-02

          Hi Timo,

          Could you send me via e-mail (ediap at et.put.poznan.pl ) the config.log file after having invoked the following configuration command in your IT++ source directory:
          % LDFLAGS="-L/usr/local/lib" ./configure --with-cblas="-lgslcblas"

          It will help us to improve configuration in future releases. Thanks!

          PS. "-L/usr/lib" is not neccessary since it is the default path searched by `ld' on all Linuxes I know.

          BR,

          /ediap

           
          • Timo

            Timo - 2006-02-02

            Ok, done.

            :-)

             
    • Timo

      Timo - 2006-02-03

      To close this thread I will post the final solution to my problem, which Adam helped me to find.

      There was a mess on my SuSE 10.0 system. During some other installation (i.e. clapack, which didn't work) I installed the package 'compat-g77' via apt, which is a compatibility fortran g77 compiler.

      At the same time I use gcc 4.0.2, which also includes a fortran compiler (package ggc-fortran in apt).

      The configure-script from itpp then used both fortran compilers, which lead to bad resuls, i.e. the lapack-package (among others) couldn't be found.

      Now I deleted the g77-package and everything worked correctly by simply typing

      export LDFLAGS="-L/usr/local/lib"

      and

      ./configure --with-cblas="-lgslcblas"

      (Well I still use the fftw3 from itpp-external and maybe also the lapack from there, even though I've installed lapack in /usr/lib).

      Regards and thanks to Adam,

      Timo

       

Log in to post a comment.