| 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 | 
|---|
| 58 | AC_DEFINE([LEMON_HAVE_CLP], [1], [Define to 1 if you have CLP.]) | 
|---|
| 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 | 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 | 
|---|
| 91 | CBC_LIBS="-lOsi -lCbc -lOsiCbc -lCbcSolver -lClp -lOsiClp -lCoinUtils -lVol -lOsiVol -lCgl -lm -llapack -lblas" | 
|---|
| 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 | 
|---|
| 118 | AC_DEFINE([LEMON_HAVE_CBC], [1], [Define to 1 if you have CBC.]) | 
|---|
| 119 | lx_lp_found=yes | 
|---|
| 120 | AC_DEFINE([LEMON_HAVE_LP], [1], [Define to 1 if you have any LP solver.]) | 
|---|
| 121 | lx_mip_found=yes | 
|---|
| 122 | AC_DEFINE([LEMON_HAVE_MIP], [1], [Define to 1 if you have any MIP solver.]) | 
|---|
| 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 | ]) | 
|---|