Changeset 1826


Ignore:
Timestamp:
Nov 13, 2010 7:40:49 AM (10 years ago)
Author:
stefan
Message:

when checking user-supplied or installed blas/lapack libs, add FLIBS to linker flags if required; add blas flags to lapack flags, since blas is required for linking with lapack

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/coin.m4

    r1823 r1826  
    29152915        AC_TRY_LINK([void $cfunc$1();],[$cfunc$1()],
    29162916                    [LIBS="$flink_save_libs"
     2917                     coin_need_flibs=yes
    29172918                     $2
    2918                      coin_need_flibs=yes],
     2919                    ],
    29192920                    [LIBS="$flink_save_libs"
    29202921                     $3])
     
    29402941        AC_TRY_LINK([extern "C" {void $cfunc$1();}],[$cfunc$1()],
    29412942                    [LIBS="$flink_save_libs"
     2943                     coin_need_flibs=yes
    29422944                     $2
    2943                      coin_need_flibs=yes],
     2945                    ],
    29442946                    [LIBS="$flink_save_libs"
    29452947                     $3])
     
    42444246  elif test "$use_blas" != "no"; then
    42454247    AC_MSG_CHECKING([whether user supplied BLASLIB=\"$use_blas\" works])
     4248    coin_need_flibs=no
    42464249    coin_save_LIBS="$LIBS"
    42474250    LIBS="$use_blas $LIBS"
    42484251    AC_COIN_TRY_FLINK([daxpy],
    4249                       [AC_MSG_RESULT([yes])],
     4252                      [if test $coin_need_flibs = yes ; then
     4253                         use_blas="$use_blas $FLIBS"
     4254                       fi
     4255                       AC_MSG_RESULT([yes: $use_blas])],
    42504256                      [AC_MSG_RESULT([no])
    42514257                       AC_MSG_ERROR([user supplied BLAS library \"$use_blas\" does not work])])
     
    42594265    *-sgi-*)
    42604266      AC_MSG_CHECKING([whether -lcomplib.sgimath has BLAS])
     4267      coin_need_flibs=no
    42614268      coin_save_LIBS="$LIBS"
    42624269      LIBS="-lcomplib.sgimath $LIBS"
    42634270      AC_COIN_TRY_FLINK([daxpy],
    4264                         [AC_MSG_RESULT([yes])
    4265                          use_blas="-lcomplib.sgimath"],
     4271                        [use_blas="-lcomplib.sgimath"
     4272                         if test $coin_need_flibs = yes ; then
     4273                           use_blas="$use_blas $FLIBS"
     4274                         fi
     4275                         AC_MSG_RESULT([yes: $use_blas])
     4276                        ],
    42664277                        [AC_MSG_RESULT([no])])
    42674278      LIBS="$coin_save_LIBS"
     
    42764287    *-*-solaris*)
    42774288      AC_MSG_CHECKING([for BLAS in libsunperf])
     4289      coin_need_flibs=no
    42784290      coin_save_LIBS="$LIBS"
    42794291      LIBS="-lsunperf $FLIBS $LIBS"
    42804292      AC_COIN_TRY_FLINK([daxpy],
    4281                         [AC_MSG_RESULT([yes])
    4282                          use_blas='-lsunperf'
    4283                          coin_need_flibs=yes],
     4293                        [use_blas='-lsunperf'
     4294                         if test $coin_need_flibs = yes ; then
     4295                           use_blas="$use_blas $FLIBS"
     4296                         fi
     4297                         AC_MSG_RESULT([yes: $use_blas])
     4298                        ],
    42844299                        [AC_MSG_RESULT([no])])
    42854300      LIBS="$coin_save_LIBS"
     
    42894304# library will want to link with cygwin, hence won't run standalone in DOS.
    42904305      if test "$enable_doscompile" = mingw; then
    4291         skip_lblas_check=yes
     4306        skip_lblas_check=yes
    42924307      fi
    42934308      case "$CC" in
     
    42974312          LIBS="mkl_intel_c.lib mkl_sequential.lib mkl_core.lib $LIBS"
    42984313          AC_COIN_TRY_FLINK([daxpy],
    4299                             [AC_MSG_RESULT([yes])
    4300                              use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib'],
     4314                            [use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib'
     4315                             AC_MSG_RESULT([yes: $use_blas])
     4316                            ],
    43014317                            [AC_MSG_RESULT([no])])
    43024318          LIBS="$coin_save_LIBS"
     
    43084324  if test -z "$use_blas" && test $skip_lblas_check = no; then
    43094325    AC_MSG_CHECKING([whether -lblas has BLAS])
     4326    coin_need_flibs=no
    43104327    coin_save_LIBS="$LIBS"
    43114328    LIBS="-lblas $LIBS"
    43124329    AC_COIN_TRY_FLINK([daxpy],
    4313                       [AC_MSG_RESULT([yes])
    4314                        use_blas='-lblas'],
    4315                       [AC_MSG_RESULT([no])])
     4330                      [AC_MSG_RESULT([yes])
     4331                       use_blas='-lblas'
     4332                       if test $coin_need_flibs = yes ; then
     4333                         use_blas="$use_blas $FLIBS"
     4334                       fi
     4335                      ],
     4336                      [AC_MSG_RESULT([no])])
    43164337    LIBS="$coin_save_LIBS"
    43174338  fi
    4318  
     4339
    43194340  # If we have no other ideas, consider building BLAS.
    43204341  if test -z "$use_blas" ; then
     
    43774398                           [specify LAPACK library (or BUILD for compilation)]),
    43784399            [use_lapack=$withval], [use_lapack=])
    4379            
     4400
    43804401#if user specified --with-lapack-lib, then we should give COIN_HAS_PACKAGE preference
    43814402AC_ARG_WITH([lapack-lib],,[use_lapack=BUILD])
     
    43884409  elif test "$use_lapack" != no; then
    43894410    AC_MSG_CHECKING([whether user supplied LAPACKLIB=\"$use_lapack\" works])
     4411    coin_need_flibs=no
     4412    use_lapack="$use_lapack $BLAS_LIBS"
    43904413    coin_save_LIBS="$LIBS"
    4391     LIBS="$use_lapack $BLAS_LIBS $LIBS"
     4414    LIBS="$use_lapack $LIBS"
    43924415    AC_COIN_TRY_FLINK([dsyev],
    4393                       [AC_MSG_RESULT([yes])],
     4416                      [if test $coin_need_flibs = yes ; then
     4417                         use_lapack="$use_lapack $FLIBS"
     4418                       fi
     4419                       AC_MSG_RESULT([yes: $use_lapack])
     4420                      ],
    43944421                      [AC_MSG_RESULT([no])
    43954422                       AC_MSG_ERROR([user supplied LAPACK library \"$use_lapack\" does not work])])
     
    44014428    AC_MSG_CHECKING([whether LAPACK is already available with BLAS library])
    44024429    coin_save_LIBS="$LIBS"
     4430    coin_need_flibs=no
    44034431    LIBS="$BLAS_LIBS $LIBS"
    44044432    AC_COIN_TRY_FLINK([dsyev],
    4405                       [AC_MSG_RESULT([yes]); use_lapack="$BLAS_LIBS"],
     4433                      [use_lapack="$BLAS_LIBS"
     4434                       if test $coin_need_flibs = yes ; then
     4435                         use_lapack="$use_lapack $FLIBS"
     4436                       fi
     4437                       AC_MSG_RESULT([yes: $use_lapack])
     4438                      ],
    44064439                      [AC_MSG_RESULT([no])])
    44074440    LIBS="$coin_save_LIBS"
     
    44144447        AC_MSG_CHECKING([whether -lcomplib.sgimath has LAPACK])
    44154448        coin_save_LIBS="$LIBS"
     4449        coin_need_flibs=no
    44164450        LIBS="-lcomplib.sgimath $BLAS_LIBS $LIBS"
    44174451        AC_COIN_TRY_FLINK([dsyev],
    4418                           [AC_MSG_RESULT([yes])
    4419                            use_lapack="-lcomplib.sgimath;"],
     4452                          [use_lapack="-lcomplib.sgimath $BLAS_LIBS"
     4453                           if test $coin_need_flibs = yes ; then
     4454                             use_lapack="$use_lapack $FLIBS"
     4455                           fi
     4456                           AC_MSG_RESULT([yes: $use_lapack])
     4457                          ],
    44204458                          [AC_MSG_RESULT([no])])
    44214459        LIBS="$coin_save_LIBS"
     
    44254463      *-*-solaris*)
    44264464        AC_MSG_CHECKING([for LAPACK in libsunperf])
     4465        coin_need_flibs=no
    44274466        coin_save_LIBS="$LIBS"
    44284467        LIBS="-lsunperf $BLAS_LIBS $FLIBS $LIBS"
    44294468        AC_COIN_TRY_FLINK([dsyev],
    4430                           [AC_MSG_RESULT([yes])
    4431                            use_lapack='-lsunperf'
    4432                            coin_need_flibs=yes],
     4469                          [use_lapack='-lsunperf $BLAS_LIBS'
     4470                           if test $coin_need_flibs = yes ; then
     4471                             use_lapack="$use_lapack $FLIBS"
     4472                           fi
     4473                           AC_MSG_RESULT([yes: $use_lapack])
     4474                          ],
    44334475                          [AC_MSG_RESULT([no])])
    44344476        LIBS="$coin_save_LIBS"
     
    44464488  if test -z "$use_lapack" && test $skip_llapack_check = no; then
    44474489    AC_MSG_CHECKING([whether -llapack has LAPACK])
     4490    coin_need_flibs=no
    44484491    coin_save_LIBS="$LIBS"
    44494492    LIBS="-llapack $BLAS_LIBS $LIBS"
    44504493    AC_COIN_TRY_FLINK([dsyev],
    4451                       [AC_MSG_RESULT([yes])
    4452                        use_lapack='-llapack'],
    4453                       [AC_MSG_RESULT([no])])
     4494                      [use_lapack='-llapack'
     4495                       if test $coin_need_flibs = yes ; then
     4496                         use_lapack="$use_lapack $FLIBS"
     4497                       fi
     4498                       AC_MSG_RESULT([yes: $use_lapack])
     4499                      ],
     4500                      [AC_MSG_RESULT([no])])
    44544501    LIBS="$coin_save_LIBS"
    44554502  fi
     
    44634510if test "x$use_lapack" = xBUILD ; then
    44644511  AC_COIN_CHECK_PACKAGE(Lapack, [coinlapack], [$1])
    4465  
     4512
    44664513elif test "x$use_lapack" != x && test "$use_lapack" != no; then
    44674514  coin_has_lapack=yes
Note: See TracChangeset for help on using the changeset viewer.