diff --git a/configure b/configure index 833f483..bcfa62d 100755 --- a/configure +++ b/configure @@ -3226,574 +3226,14 @@ else echo echo "Warning: this option has not been extensively tested!" echo "Please report problems to ccp4@ccp4.ac.uk" - # Search for vendor LAPACK/BLAS first - if test ! "$with_netlib_lapack" ; then - # Initialise variables to blank - lapackdir= - XLAPACK_LIB= - # Possible directories to check for vendor or pre-existing LAPACK or - # BLAS - add to these if you want to test others - trydirs="`echo $LD_LIBRARY_PATH |sed -e s/:/\ /g` /lib /usr/lib /usr/local/lib" - # Possible library names - # These are the names like xxxx where the library will be libxxxx.a - # or libxxxx.so - echo - echo "Guessing names for native/vendor LAPACK and/or BLAS libraries" - echo "on this system" - case $system in - linux | linux64 | linux32 ) - # linux users will usually have them in /usr/lib but don't call it - trylapack="lapack" - tryblas="blas" - # if code is non_shared then this can lead to problems. both blas and lapack - # need to be resolved even if they are not called! - if test "$non_shared" = yes; then - echo "You are compiling linux non_shared. This sometimes causes problems " - echo " so checking for requirements." - echo "Checking: try to link library against test program" - if test -f testlink.f || test -f testlink ; then - rm -f testlink* - fi - cat > testlink.f <& /dev/null ) 2>&1; } && test -s testlink ; then - # Compilation was okay - echo "... only -llapack needed" - XLAPACK_LIB="-llapack" - # Set the next two variables so that configure - # doesn't try to build netlib libraries - LAPACKLIB="lapack" - noblas=yes - trylapack= - tryblas= - else - echo "more than just -llapack needed...." - test_compile="$FC $FOPTIM $XFFLAGS -o testlink testlink.f -llapack -lblas" - echo $test_compile - if { (eval $test_compile ) 2>&1; } && test -s testlink ; then - # Compilation was okay - echo "...-llapack and -lblas were needed" - XLAPACK_LIB="-llapack -lblas" - # Set the next two variables so that configure - # doesn't try to build netlib libraries - LAPACKLIB="lapack blas" - noblas=no - trylapack= - tryblas= - else - echo "....could not find either lapack or blas." - fi - fi - fi - # add 64 bit libs - case $system in - linux64 ) trydirs="/usr/lib64 ${trydirs}" ;; - esac - - ;; - osf1) - # OSF1 has dxml (old version) and cxml - # which should have both lapack and blas - trylapack="dxml cxml" - tryblas= - trydirs="${trydirs} /usr/shlib" - ;; - irix) - # Additional search paths for IRIX - trydirs="${trydirs} /usr/lib32" - # SCSL should have both LAPACK and BLAS - trylapack="scs" - tryblas="blas" - ;; - irix64) - # Additional search paths for IRIX64 - trydirs="${trydirs} /usr/lib64" - # SCSL should have both LAPACK and BLAS - trylapack="scs" - tryblas="blas" - # Extra compiler flags? - #XLAPACKFLAGS="-OPT:IEEE_NaN_inf=ON" - ;; - aix) - # Additional search paths for AIX - trydirs="${trydirs}" - # AIX might have ESSL library - blas only I think - trylapack= - tryblas="essl" - ;; - hpux) - # Additional search paths for HPUX - trydirs="${trydirs} /opt/fortran/lib /opt/fortran/lib/pa2.0 /opt/mlib/lib/pa2.0" - # HPUX should have both LAPACK (part of mlib) and BLAS - trylapack="lapack" - tryblas="blas" - # Extra compiler flags? - # +U77 required for ETIME function - this is already in XFFLAGS - #XLAPACKFLAGS="+U77" - ;; - - sunos | sunos64) - # Sun has libraries with BLAS and LAPACK invoked using - # -xlic_lib=sunperf - trylapack= - tryblas= - echo "SunOs can use the Sun Performance Library (if installed)" - echo "which has both BLAS and LAPACK 3.0" - echo - echo "Looking for a valid library to use..." - echo - # Loop over the possible library names - try_libs="sunperf" - for testlib in $try_libs - do - if test ! "$XLAPACK_LIB" ; then - # Try running a test compile to see if this a valid library - if test -f testlink.f || test -f testlink ; then - rm -f testlink* - fi - cat > testlink.f <&1; } && test -s testlink ; then - # Compilation was okay - echo "... -xlic_lib=$testlib is okay" - XLAPACK_LIB="-dalign -xlic_lib=$testlib" - # Set the next two variables so that configure - # doesn't try to build netlib libraries - LAPACKLIB="$testlib" - noblas=yes - else - # Compilation failed - echo "... cannot use -xlic_lib=$testlib" - fi - # End of test for testlib - fi - # End of loop over possible lib names - done - # Report if no suitable library was found - if test ! "$XLAPACK_LIB" ; then - echo - echo "No suitable LAPACK library was found." - echo "This may be because the Sun Performance Library is not" - echo "installed on your system" - echo "Contact your system administrator or Sun vendor" - fi - ;; - Darwin | Darwin32 | Darwin64 ) - # Darwin has libraries with BLAS and LAPACK invoked using - # -framework vecLib - echo "Darwin can use the vecLib Library (if installed)" - echo "which has both BLAS and LAPACK 3.0" - echo - # This is a special case so try running a test compile - echo "Checking: try to link library against test program" - if test -f testlink.f || test -f testlink ; then - rm -f testlink* - fi - cat > testlink.f <&1; } && test -s testlink ; then - # Compilation was okay - echo "... -framework vecLib is okay" - XLAPACK_LIB="-framework vecLib" - # Set the next two variables so that configure - # doesn't try to build netlib libraries - LAPACKLIB="vecLib" - noblas=yes - else -#alternative linking for vecLib libraries - case `uname -sr` in - *Darwin\ 7.* ) test_compile="$FC $FOPTIM $XFFLAGS -o testlink testlink.f -lcc_dynamic -Wl,-framework -Wl,vecLib" ;; - * ) test_compile="$FC $FOPTIM $XFFLAGS -o testlink testlink.f -Wl,-framework -Wl,vecLib" ;; - esac - - echo $test_compile - if { (eval $test_compile ) 2>&1; } && test -s testlink ; then - # Compilation was okay - echo "... -framework vecLib is okay" - XLAPACK_LIB="-Wl,-framework -Wl,vecLib" - # Set the next two variables so that configure - # doesn't try to build netlib libraries - LAPACKLIB="-Wl,-framework -Wl,vecLib" - noblas=yes - else - # Compilation failed - echo "... cannot use -framework vecLib" - echo - fi - fi - trylapack= - tryblas= -# try the fink installation - trydirs="${trydirs} /sw" - ;; - Darwin_ibm_compilers ) - # Darwin has libraries with BLAS and LAPACK invoked using - # -framework vecLib - echo "Darwin can use the vecLib Library (if installed)" - echo "which has both BLAS and LAPACK 3.0" - echo - # This is a special case so try running a test compile - echo "Checking: try to link library against test program" - if test -f testlink.f || test -f testlink ; then - rm -f testlink* - fi - cat > testlink.f <&1; } && test -s testlink ; then - # Compilation was okay - echo "... -framework vecLib is okay" - # Set the next two variables so that configure - # doesn't try to build netlib libraries - LAPACKLIB="vecLib" - noblas=yes - else - # Compilation failed - XLAPACK_LIB="" - echo "... cannot use -framework vecLib" - echo - fi - trylapack= - tryblas= -# try the fink installation - trydirs="${trydirs} /sw" - ;; - - Darwin_intel_compilers) - # Darwin has libraries with BLAS and LAPACK invoked using - # -F vecLib - echo "Darwin can use the vecLib Library (if installed)" - echo "which has both BLAS and LAPACK 3.0" - echo - # This is a special case so try running a test compile - echo "Checking: try to link library against test program" - if test -f testlink.f || test -f testlink ; then - rm -f testlink* - fi - cat > testlink.f <&1; } && test -s testlink ; then - # Compilation was okay - # doesn't try to build netlib libraries - XLAPACK_LIB="-F /System/Library/Frameworks -Qoption,ld,-framework -Qoption,ld,vecLib" - LAPACKLIB="vecLib" - noblas=yes - else - # Compilation failed - echo "... cannot use -framework vecLib" - echo - fi - trylapack= - tryblas= -# try the fink installation - trydirs="${trydirs} /sw" - ;; - -# linux_ia64_sgi_altix) -# SGI Japan - ia64_linux_intel) - # Additional search paths for Linux/IA64 - trydirs="${trydirs} /opt/scsl/lib /usr/lib /usr/local/lib" - # SCSL and MKL should have both LAPACK and BLAS - trylapack="mkl_lapack scs lapack" - tryblas="mkl scs blas" - ;; - linux_ibm_compilers ) - trylapack="lapack" - tryblas="blas" - ;; - linux64_ibm_compilers ) - trydirs="/usr/lib64 ${trydirs}" - trylapack="lapack" - tryblas="blas" - ;; - linux_intel_compilers ) - trydirs="/usr/lib64 ${trydirs}" - trylapack="mkl_lapack lapack" - tryblas="mkl blas" - ;; - *) - echo "The guesses for this system may not be correct - please" - echo "e-mail ccp4@ccp4.ac.uk if you have any extra information" - echo - # Default guess is just libblas - trylapack="lapack" - tryblas="blas" - ;; - esac - # - # Search for LAPACK libraries - # - # Write out what the guesses are - if test "$trylapack" ; then - echo "Possible LAPACK library names for this system:" - for libname in $trylapack - do - echo " lib$libname" - done - # Possible library name extensions - tryexts="a so dylib" - # Now loop over all the possibilities and see if anything - # turns up - echo - echo "Searching for libraries with LAPACK and BLAS:" - for testdir in $trydirs - do - for testlib in $trylapack - do - for ext in $tryexts - do - if test ! "$LAPACKLIB"; then - if test -s "$testdir/lib$testlib.$ext" ; then - echo "...found LAPACK library: $testdir/lib$testlib.$ext" - # Now try and link to a test program - # This is really for IRIX where libraries can be - # o32 or n32 - echo " Testing: try to link library against test program" - if test -f testlink.f || test -f testlink ; then - rm -f testlink* - fi - cat > testlink.f <&1; } && test -s testlink ; then - have_lapack=yes - else -# cover clapack option - echo $test_ccompile - if { (eval $test_ccompile ) 2>&1; } && test -s testlink ; then - have_lapack=yes - fi - fi - if test x$have_lapack = xyes ; then - # This one is okay - LAPACKLIB="$testlib" - LAPACKDIR="$testdir" - echo "Link ok - using lib$LAPACKLIB from $LAPACKDIR" - # - XLAPACK_LIB="-L$LAPACKDIR -l$LAPACKLIB" - # - # Test to see if we need BLAS too - # Do this by trying to compile a test program - # Use the LSAME test for now - echo - echo " * Checking whether we need a separate BLAS library *" - echo " Testing: try linking library against test program" - cd lib/lapack/test - if test -f testlsame ; then - rm -f testsame testlsame.o - fi - test_compile="$FC $FOPTIM $XFFLAGS -o testlsame lsametst.f -L$LAPACKDIR -l$LAPACKLIB" - test_ccompile="$FC $FOPTIM $XFFLAGS -o testlsame lsametst.f -L$LAPACKDIR -l$LAPACKLIB $XLDFLAGS" - echo $test_compile - if { ( eval $test_compile) 2>&1;} && test -s testlsame ; then - have_blas=yes - else -#cblas route - echo $test_ccompile - if { ( eval $test_ccompile) 2>&1;} && test -s testlsame ; then - have_blas=yes - fi - fi - if test x$have_blas = xyes ; then - echo "Test program okay - additional separate BLAS not required" - noblas=yes - else - echo "Test program failed - need a separate BLAS library" - fi - cd ../../.. - else - # Keep looking - echo " link failed - cannot use lib$testlib" - fi - fi - fi - done - done - if test ! "$LAPACKLIB"; then - echo "...nothing in $testdir" - fi - done - fi - - # If LAPACKLIB hasn't been set at this point then no LAPACK library - # was found - if test ! "$LAPACKLIB" ; then - echo - echo "No pre-existing LAPACK library found - NetLib LAPACK will be built instead" - make_lapack=lapacklib - fi - # Look for possible BLAS - if test ! "$noblas" ; then - if test "$tryblas" ; then - echo - echo "Possible BLAS library names for this system:" - for libname in $tryblas - do - echo " lib$libname" - done - # Possible library name extensions - tryexts="a so" - # Now loop over all the possibilities and see if anything - # turns up - echo - echo "Searching for libraries with BLAS:" - for testdir in $trydirs - do - for testlib in $tryblas - do - for ext in $tryexts - do - if test ! "$BLASLIB"; then - if test -s "$testdir/lib$testlib.$ext" ; then - echo "...found BLAS library: $testdir/lib$testlib.$ext" - # Now try and link to a test program - # This is really for IRIX where libraries can be - # o32 or n32 - echo " Testing: try to link library against test program" - if test -f testlink.f || test -f testlink ; then - rm -f testlink* - fi - cat > testlink.f <&1;} && test -s testlink ; then - have_blas=yes - else - echo $test_ccompile - if { ( eval $test_compile) 2>&1;} && test -s testlink ; then - have_blas=yes - fi - fi - if test x$have_blas = xyes ; then - # This one is okay - BLASLIB="$testlib" - BLASDIR="$testdir" - BLASEXT="$ext" - echo "Link ok - using lib$BLASLIB from $BLASDIR" - XLAPACK_LIB="$XLAPACK_LIB -L$BLASDIR -l$BLASLIB" - else - # Keep looking - echo " link failed - cannot use lib$testlib" - fi - fi - fi - done - done - if test ! "$BLASLIB"; then - echo "...nothing in $testdir" - fi - done - fi - # Do we need to build BLAS too? - if test ! "$BLASLIB" ; then - echo - echo "No pre-existing BLAS library was found - NetLib BLAS will be built instead" - echo "This may result in poorer performance of the LAPACK routines" - make_blas=blaslib - BLASLIB=blas - BLASDIR="$srcdir/lib/lapack" - BLASEXT="a" - fi - fi + # gentoo is clever + make_blas= + make_lapack= + BLASLIB=$(pkg-config --libs blas) + LAPACKLIB=$(pkg-config --libs lapack) + XLAPACK_LIB="${BLASLIB} ${LAPACKLIB}" + XFFLAGS_LAPACK="$(pkg-config --cflags lapack blas)" # Otherwise force building of NetLib BLAS and LAPACK libs - else - echo - echo "! Force building of NetLib BLAS and LAPACK..." - make_blas=blaslib - make_lapack=lapacklib - BLASLIB=blas - BLASDIR="$srcdir/lib/lapack" - BLASEXT="a" - fi # need to know if we the lapack library was linked using the C or # fortran linker if test -f testlink.f || test -f testlink || test -f testlink.c ; then @@ -3916,8 +3356,8 @@ RANLIB = ${RANLIB} INSTALL_DATA = ${INSTALL_DATA} libdir = $libdir # -BLASLIB = lib${BLASLIB}.${BLASEXT} -LAPACKLIB = liblapack.a +BLASLIB = ${BLASLIB} +LAPACKLIB = ${LAPACKLIB} # # These variables define targets in the main Makefile blaslib = ${make_blas}