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?
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
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
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
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
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
Ok, done.
:-)
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