m4/lx_check_soplex.m4
author Balazs Dezso <deba@inf.elte.hu>
Thu, 24 Jun 2010 09:27:53 +0200
changeset 982 bb70ad62c95f
parent 586 547e966b3b29
parent 540 8a144437db7d
permissions -rw-r--r--
Fix critical bug in preflow (#372)

The wrong transition between the bound decrease and highest active
heuristics caused the bug. The last node chosen in bound decrease mode
is used in the first iteration in highest active mode.
     1 AC_DEFUN([LX_CHECK_SOPLEX],
     2 [
     3   AC_ARG_WITH([soplex],
     4 AS_HELP_STRING([--with-soplex@<:@=PREFIX@:>@], [search for SOPLEX under PREFIX or under the default search paths if PREFIX is not given @<:@default@:>@])
     5 AS_HELP_STRING([--without-soplex], [disable checking for SOPLEX]),
     6               [], [with_soplex=yes])
     7 
     8   AC_ARG_WITH([soplex-includedir],
     9 AS_HELP_STRING([--with-soplex-includedir=DIR], [search for SOPLEX headers in DIR]),
    10               [], [with_soplex_includedir=no])
    11 
    12   AC_ARG_WITH([soplex-libdir],
    13 AS_HELP_STRING([--with-soplex-libdir=DIR], [search for SOPLEX libraries in DIR]),
    14               [], [with_soplex_libdir=no])
    15 
    16   lx_soplex_found=no
    17   if test x"$with_soplex" != x"no"; then
    18     AC_MSG_CHECKING([for SOPLEX])
    19 
    20     if test x"$with_soplex_includedir" != x"no"; then
    21       SOPLEX_CXXFLAGS="-I$with_soplex_includedir"
    22     elif test x"$with_soplex" != x"yes"; then
    23       SOPLEX_CXXFLAGS="-I$with_soplex/src"
    24     fi
    25 
    26     if test x"$with_soplex_libdir" != x"no"; then
    27       SOPLEX_LDFLAGS="-L$with_soplex_libdir"
    28     elif test x"$with_soplex" != x"yes"; then
    29       SOPLEX_LDFLAGS="-L$with_soplex/lib"
    30     fi
    31     SOPLEX_LIBS="-lsoplex -lz"
    32 
    33     lx_save_cxxflags="$CXXFLAGS"
    34     lx_save_ldflags="$LDFLAGS"
    35     lx_save_libs="$LIBS"
    36     CXXFLAGS="$SOPLEX_CXXFLAGS"
    37     LDFLAGS="$SOPLEX_LDFLAGS"
    38     LIBS="$SOPLEX_LIBS"
    39 
    40     lx_soplex_test_prog='
    41       #include <soplex.h>
    42 
    43       int main(int argc, char** argv)
    44       {
    45         soplex::SoPlex soplex;
    46         return 0;
    47       }'
    48 
    49     AC_LANG_PUSH(C++)
    50     AC_LINK_IFELSE([$lx_soplex_test_prog], [lx_soplex_found=yes], [lx_soplex_found=no])
    51     AC_LANG_POP(C++)
    52 
    53     CXXFLAGS="$lx_save_cxxflags"
    54     LDFLAGS="$lx_save_ldflags"
    55     LIBS="$lx_save_libs"
    56 
    57     if test x"$lx_soplex_found" = x"yes"; then
    58       AC_DEFINE([LEMON_HAVE_SOPLEX], [1], [Define to 1 if you have SOPLEX.])
    59       lx_lp_found=yes
    60       AC_DEFINE([LEMON_HAVE_LP], [1], [Define to 1 if you have any LP solver.])
    61       AC_MSG_RESULT([yes])
    62     else
    63       SOPLEX_CXXFLAGS=""
    64       SOPLEX_LDFLAGS=""
    65       SOPLEX_LIBS=""
    66       AC_MSG_RESULT([no])
    67     fi
    68   fi
    69   SOPLEX_LIBS="$SOPLEX_LDFLAGS $SOPLEX_LIBS"
    70   AC_SUBST(SOPLEX_CXXFLAGS)
    71   AC_SUBST(SOPLEX_LIBS)
    72   AM_CONDITIONAL([HAVE_SOPLEX], [test x"$lx_soplex_found" = x"yes"])
    73 ])