diff options
author | Tim King <taking@cs.nyu.edu> | 2013-04-26 17:10:21 -0400 |
---|---|---|
committer | Morgan Deters <mdeters@cs.nyu.edu> | 2013-04-26 17:10:21 -0400 |
commit | 9098391fe334d829ec4101f190b8f1fa21c30752 (patch) | |
tree | b134fc1fe1c767a50013e1449330ca6a7ee18a3d /config | |
parent | a9174ce4dc3939bbe14c9aa1fd11c79c7877eb16 (diff) |
FCSimplex branch merge
Diffstat (limited to 'config')
-rw-r--r-- | config/glpk.m4 | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/config/glpk.m4 b/config/glpk.m4 new file mode 100644 index 000000000..7380ad0e2 --- /dev/null +++ b/config/glpk.m4 @@ -0,0 +1,118 @@ +# CVC4_CHECK_FOR_GLPK +# ------------------- +# Look for glpk and link it in, but only if user requested. +AC_DEFUN([CVC4_CHECK_FOR_GLPK], [ +AC_MSG_CHECKING([whether user requested glpk support]) +LIBGLPK= +have_libglpk=0 +GLPK_LIBS= +if test "$with_glpk" = no; then + AC_MSG_RESULT([no, glpk disabled by user]) +elif test "$with_glpk" = yes; then + AC_MSG_RESULT([yes, glpk requested by user]) + + dnl Try a bunch of combinations until something works :-/ + GLPK_LIBS= + AC_CHECK_HEADER([glpk.h], [], + [AC_MSG_FAILURE([cannot find glpk.h, the GLPK header!])]) + AC_MSG_CHECKING([how to link glpk]) + CVC4_TRY_GLPK_WITH([]) + CVC4_TRY_GLPK_WITH([-lgmp]) + CVC4_TRY_GLPK_WITH([-lz]) + CVC4_TRY_GLPK_WITH([-ldl]) + CVC4_TRY_GLPK_WITH([-lltdl]) + CVC4_TRY_GLPK_WITH([-lltdl -ldl]) + CVC4_TRY_GLPK_WITH([-lz -ldl]) + CVC4_TRY_GLPK_WITH([-lz -lltdl]) + CVC4_TRY_GLPK_WITH([-lz -lltdl -ldl]) + CVC4_TRY_GLPK_WITH([-lgmp -lz]) + CVC4_TRY_GLPK_WITH([-lgmp -ldl]) + CVC4_TRY_GLPK_WITH([-lgmp -lltdl]) + CVC4_TRY_GLPK_WITH([-lgmp -lltdl -ldl]) + CVC4_TRY_GLPK_WITH([-lgmp -lz -ldl]) + CVC4_TRY_GLPK_WITH([-lgmp -lz -lltdl]) + CVC4_TRY_GLPK_WITH([-lgmp -lz -lltdl -ldl]) + if test -z "$GLPK_LIBS"; then + AC_MSG_FAILURE([cannot link against libglpk! (or it's too old, or can't get it to work)]) + else + AC_MSG_RESULT([$GLPK_LIBS]) + # make sure it works in static builds, too + if test "$enable_static_binary" = yes; then + GLPK_LIBS= + AC_MSG_CHECKING([whether statically-linked glpk is functional]) + CVC4_TRY_STATIC_GLPK_WITH([]) + CVC4_TRY_STATIC_GLPK_WITH([-lgmp]) + CVC4_TRY_STATIC_GLPK_WITH([-lz]) + CVC4_TRY_STATIC_GLPK_WITH([-ldl]) + CVC4_TRY_STATIC_GLPK_WITH([-lltdl]) + CVC4_TRY_STATIC_GLPK_WITH([-lltdl -ldl]) + CVC4_TRY_STATIC_GLPK_WITH([-lz -ldl]) + CVC4_TRY_STATIC_GLPK_WITH([-lz -lltdl]) + CVC4_TRY_STATIC_GLPK_WITH([-lz -lltdl -ldl]) + CVC4_TRY_STATIC_GLPK_WITH([-lgmp -lz]) + CVC4_TRY_STATIC_GLPK_WITH([-lgmp -ldl]) + CVC4_TRY_STATIC_GLPK_WITH([-lgmp -lltdl]) + CVC4_TRY_STATIC_GLPK_WITH([-lgmp -lltdl -ldl]) + CVC4_TRY_STATIC_GLPK_WITH([-lgmp -lz -ldl]) + CVC4_TRY_STATIC_GLPK_WITH([-lgmp -lz -lltdl]) + CVC4_TRY_STATIC_GLPK_WITH([-lgmp -lz -lltdl -ldl]) + if test -n "$GLPK_LIBS"; then + AC_MSG_RESULT([yes, it works]) + with_glpk=yes + else + AC_MSG_RESULT([no]) + AC_MSG_FAILURE([glpk installation appears incompatible with static-binary]) + fi + else + with_glpk=yes + fi + fi + if test "$with_glpk" = yes; then + have_libglpk=1 + else + with_glpk=no + have_libreadline=0 + GLPK_LIBS= + fi +else + AC_MSG_RESULT([no, user didn't request glpk]) + with_glpk=no +fi +])# CVC4_CHECK_FOR_GLPK + +# CVC4_TRY_GLPK_WITH(LIBS) +# ------------------------ +# Try AC_CHECK_LIB(glpk) with the given linking libraries +AC_DEFUN([CVC4_TRY_GLPK_WITH], [ +if test -z "$GLPK_LIBS"; then + AC_LANG_PUSH([C++]) + cvc4_save_LIBS="$LIBS" + LIBS="-lglpk $1" + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <glpk.h>], + [int i = lpx_get_int_parm(NULL, LPX_K_ITCNT)])], + [GLPK_LIBS="-lglpk $1"], + []) + LIBS="$cvc4_save_LIBS" + AC_LANG_POP([C++]) +fi +])# CVC4_TRY_GLPK_WITH + +# CVC4_TRY_STATIC_GLPK_WITH(LIBS) +# ------------------------------- +# Try AC_CHECK_LIB(glpk) with the given linking libraries +AC_DEFUN([CVC4_TRY_STATIC_GLPK_WITH], [ +if test -z "$GLPK_LIBS"; then + AC_LANG_PUSH([C++]) + cvc4_save_LIBS="$LIBS" + cvc4_save_LDFLAGS="$LDFLAGS" + LDFLAGS="-static $LDFLAGS" + LIBS="-lglpk $1" + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <glpk.h>], + [int i = lpx_get_int_parm(NULL, LPX_K_ITCNT)])], + [GLPK_LIBS="-lglpk $1"], + []) + LIBS="$cvc4_save_LIBS" + LDFLAGS="$cvc4_save_LDFLAGS" + AC_LANG_POP([C++]) +fi +])# CVC4_TRY_STATIC_GLPK_WITH |