m4/lx_check_clp.m4
author Peter Kovacs <kpeter@inf.elte.hu>
Fri, 17 Apr 2009 18:04:36 +0200
changeset 609 e6927fe719e6
permissions -rw-r--r--
Support >= and <= constraints in NetworkSimplex (#219, #234)

By default the same inequality constraints are supported as by
Circulation (the GEQ form), but the LEQ form can also be selected
using the problemType() function.

The documentation of the min. cost flow module is reworked and
extended with important notes and explanations about the different
variants of the problem and about the dual solution and optimality
conditions.
     1 AC_DEFUN([LX_CHECK_CLP],
     2 [
     3   AC_ARG_WITH([clp],
     4 AS_HELP_STRING([--with-clp@<:@=PREFIX@:>@], [search for CLP under PREFIX or under the default search paths if PREFIX is not given @<:@default@:>@])
     5 AS_HELP_STRING([--without-clp], [disable checking for CLP]),
     6               [], [with_clp=yes])
     7 
     8   AC_ARG_WITH([clp-includedir],
     9 AS_HELP_STRING([--with-clp-includedir=DIR], [search for CLP headers in DIR]),
    10               [], [with_clp_includedir=no])
    11 
    12   AC_ARG_WITH([clp-libdir],
    13 AS_HELP_STRING([--with-clp-libdir=DIR], [search for CLP libraries in DIR]),
    14               [], [with_clp_libdir=no])
    15 
    16   lx_clp_found=no
    17   if test x"$with_clp" != x"no"; then
    18     AC_MSG_CHECKING([for CLP])
    19 
    20     if test x"$with_clp_includedir" != x"no"; then
    21       CLP_CXXFLAGS="-I$with_clp_includedir"
    22     elif test x"$with_clp" != x"yes"; then
    23       CLP_CXXFLAGS="-I$with_clp/include"
    24     fi
    25 
    26     if test x"$with_clp_libdir" != x"no"; then
    27       CLP_LDFLAGS="-L$with_clp_libdir"
    28     elif test x"$with_clp" != x"yes"; then
    29       CLP_LDFLAGS="-L$with_clp/lib"
    30     fi
    31     CLP_LIBS="-lClp -lCoinUtils -lm"
    32 
    33     lx_save_cxxflags="$CXXFLAGS"
    34     lx_save_ldflags="$LDFLAGS"
    35     lx_save_libs="$LIBS"
    36     CXXFLAGS="$CLP_CXXFLAGS"
    37     LDFLAGS="$CLP_LDFLAGS"
    38     LIBS="$CLP_LIBS"
    39 
    40     lx_clp_test_prog='
    41       #include <coin/ClpModel.hpp>
    42 
    43       int main(int argc, char** argv)
    44       {
    45         ClpModel clp;
    46         return 0;
    47       }'
    48 
    49     AC_LANG_PUSH(C++)
    50     AC_LINK_IFELSE([$lx_clp_test_prog], [lx_clp_found=yes], [lx_clp_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_clp_found" = x"yes"; then
    58       AC_DEFINE([HAVE_CLP], [1], [Define to 1 if you have CLP.])
    59       lx_lp_found=yes
    60       AC_DEFINE([HAVE_LP], [1], [Define to 1 if you have any LP solver.])
    61       AC_MSG_RESULT([yes])
    62     else
    63       CLP_CXXFLAGS=""
    64       CLP_LDFLAGS=""
    65       CLP_LIBS=""
    66       AC_MSG_RESULT([no])
    67     fi
    68   fi
    69   CLP_LIBS="$CLP_LDFLAGS $CLP_LIBS"
    70   AC_SUBST(CLP_CXXFLAGS)
    71   AC_SUBST(CLP_LIBS)
    72   AM_CONDITIONAL([HAVE_CLP], [test x"$lx_clp_found" = x"yes"])
    73 ])