| [568] | 1 | AC_DEFUN([LX_CHECK_COIN], | 
|---|
|  | 2 | [ | 
|---|
|  | 3 | AC_ARG_WITH([coin], | 
|---|
|  | 4 | AS_HELP_STRING([--with-coin@<:@=PREFIX@:>@], [search for CLP under PREFIX or under the default search paths if PREFIX is not given @<:@default@:>@]) | 
|---|
|  | 5 | AS_HELP_STRING([--without-coin], [disable checking for CLP]), | 
|---|
|  | 6 | [], [with_coin=yes]) | 
|---|
|  | 7 |  | 
|---|
|  | 8 | AC_ARG_WITH([coin-includedir], | 
|---|
|  | 9 | AS_HELP_STRING([--with-coin-includedir=DIR], [search for CLP headers in DIR]), | 
|---|
|  | 10 | [], [with_coin_includedir=no]) | 
|---|
|  | 11 |  | 
|---|
|  | 12 | AC_ARG_WITH([coin-libdir], | 
|---|
|  | 13 | AS_HELP_STRING([--with-coin-libdir=DIR], [search for CLP libraries in DIR]), | 
|---|
|  | 14 | [], [with_coin_libdir=no]) | 
|---|
|  | 15 |  | 
|---|
|  | 16 | lx_clp_found=no | 
|---|
|  | 17 | if test x"$with_coin" != x"no"; then | 
|---|
|  | 18 | AC_MSG_CHECKING([for CLP]) | 
|---|
|  | 19 |  | 
|---|
|  | 20 | if test x"$with_coin_includedir" != x"no"; then | 
|---|
|  | 21 | CLP_CXXFLAGS="-I$with_coin_includedir" | 
|---|
|  | 22 | elif test x"$with_coin" != x"yes"; then | 
|---|
|  | 23 | CLP_CXXFLAGS="-I$with_coin/include" | 
|---|
|  | 24 | fi | 
|---|
|  | 25 |  | 
|---|
|  | 26 | if test x"$with_coin_libdir" != x"no"; then | 
|---|
|  | 27 | CLP_LDFLAGS="-L$with_coin_libdir" | 
|---|
|  | 28 | elif test x"$with_coin" != x"yes"; then | 
|---|
|  | 29 | CLP_LDFLAGS="-L$with_coin/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 | 
|---|
| [627] | 58 | AC_DEFINE([LEMON_HAVE_CLP], [1], [Define to 1 if you have CLP.]) | 
|---|
| [568] | 59 | lx_lp_found=yes | 
|---|
| [627] | 60 | AC_DEFINE([LEMON_HAVE_LP], [1], [Define to 1 if you have any LP solver.]) | 
|---|
| [568] | 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 |  | 
|---|
|  | 74 |  | 
|---|
|  | 75 | lx_cbc_found=no | 
|---|
|  | 76 | if test x"$lx_clp_found" = x"yes"; then | 
|---|
|  | 77 | if test x"$with_coin" != x"no"; then | 
|---|
|  | 78 | AC_MSG_CHECKING([for CBC]) | 
|---|
|  | 79 |  | 
|---|
|  | 80 | if test x"$with_coin_includedir" != x"no"; then | 
|---|
|  | 81 | CBC_CXXFLAGS="-I$with_coin_includedir" | 
|---|
|  | 82 | elif test x"$with_coin" != x"yes"; then | 
|---|
|  | 83 | CBC_CXXFLAGS="-I$with_coin/include" | 
|---|
|  | 84 | fi | 
|---|
|  | 85 |  | 
|---|
|  | 86 | if test x"$with_coin_libdir" != x"no"; then | 
|---|
|  | 87 | CBC_LDFLAGS="-L$with_coin_libdir" | 
|---|
|  | 88 | elif test x"$with_coin" != x"yes"; then | 
|---|
|  | 89 | CBC_LDFLAGS="-L$with_coin/lib" | 
|---|
|  | 90 | fi | 
|---|
| [749] | 91 | CBC_LIBS="-lOsi -lCbc -lCbcSolver -lClp -lOsiClp -lCoinUtils -lVol -lOsiVol -lCgl -lm -llapack -lblas" | 
|---|
| [568] | 92 |  | 
|---|
|  | 93 | lx_save_cxxflags="$CXXFLAGS" | 
|---|
|  | 94 | lx_save_ldflags="$LDFLAGS" | 
|---|
|  | 95 | lx_save_libs="$LIBS" | 
|---|
|  | 96 | CXXFLAGS="$CBC_CXXFLAGS" | 
|---|
|  | 97 | LDFLAGS="$CBC_LDFLAGS" | 
|---|
|  | 98 | LIBS="$CBC_LIBS" | 
|---|
|  | 99 |  | 
|---|
|  | 100 | lx_cbc_test_prog=' | 
|---|
|  | 101 | #include <coin/CbcModel.hpp> | 
|---|
|  | 102 |  | 
|---|
|  | 103 | int main(int argc, char** argv) | 
|---|
|  | 104 | { | 
|---|
|  | 105 | CbcModel cbc; | 
|---|
|  | 106 | return 0; | 
|---|
|  | 107 | }' | 
|---|
|  | 108 |  | 
|---|
|  | 109 | AC_LANG_PUSH(C++) | 
|---|
|  | 110 | AC_LINK_IFELSE([$lx_cbc_test_prog], [lx_cbc_found=yes], [lx_cbc_found=no]) | 
|---|
|  | 111 | AC_LANG_POP(C++) | 
|---|
|  | 112 |  | 
|---|
|  | 113 | CXXFLAGS="$lx_save_cxxflags" | 
|---|
|  | 114 | LDFLAGS="$lx_save_ldflags" | 
|---|
|  | 115 | LIBS="$lx_save_libs" | 
|---|
|  | 116 |  | 
|---|
|  | 117 | if test x"$lx_cbc_found" = x"yes"; then | 
|---|
| [627] | 118 | AC_DEFINE([LEMON_HAVE_CBC], [1], [Define to 1 if you have CBC.]) | 
|---|
| [568] | 119 | lx_lp_found=yes | 
|---|
| [627] | 120 | AC_DEFINE([LEMON_HAVE_LP], [1], [Define to 1 if you have any LP solver.]) | 
|---|
| [568] | 121 | lx_mip_found=yes | 
|---|
| [627] | 122 | AC_DEFINE([LEMON_HAVE_MIP], [1], [Define to 1 if you have any MIP solver.]) | 
|---|
| [568] | 123 | AC_MSG_RESULT([yes]) | 
|---|
|  | 124 | else | 
|---|
|  | 125 | CBC_CXXFLAGS="" | 
|---|
|  | 126 | CBC_LDFLAGS="" | 
|---|
|  | 127 | CBC_LIBS="" | 
|---|
|  | 128 | AC_MSG_RESULT([no]) | 
|---|
|  | 129 | fi | 
|---|
|  | 130 | fi | 
|---|
|  | 131 | fi | 
|---|
|  | 132 | CBC_LIBS="$CBC_LDFLAGS $CBC_LIBS" | 
|---|
|  | 133 | AC_SUBST(CBC_CXXFLAGS) | 
|---|
|  | 134 | AC_SUBST(CBC_LIBS) | 
|---|
|  | 135 | AM_CONDITIONAL([HAVE_CBC], [test x"$lx_cbc_found" = x"yes"]) | 
|---|
|  | 136 | ]) | 
|---|