forked from myfarms/php_lp_solve
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathconfig.m4
68 lines (64 loc) · 1.99 KB
/
config.m4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
PHP_ARG_WITH(phplpsolve55, for liblpsolve55,
[ --with-phplpsolve55=DIR Installation prefix of liblpsolve55.
If DIR is not specified, use the system library.])
if test $PHP_PHPLPSOLVE55 != "no"; then
EXTRA_LIBS="-lm"
AC_CHECK_LIB(dl, dlopen, [
EXTRA_LIBS="$EXTRA_LIBS -ldl"
PHP_ADD_LIBRARY(dl, 1, PHPLPSOLVE55_SHARED_LIBADD)
])
AC_CHECK_LIB(colamd, colamd, [
EXTRA_LIBS="$EXTRA_LIBS -lcolamd"
])
dnl Find the header file:
AC_MSG_CHECKING([for lp_lib.h])
for i in $PHP_PHPLPSOLVE55 /usr/include/lpsolve /usr/local/include/lpsolve; do
if test -r "$i/lp_lib.h"; then
LIBLPSOLVE_INCDIR="$i"
AC_MSG_RESULT($i)
break
fi
done
if test -z "$LIBLPSOLVE_INCDIR"; then
AC_MSG_RESULT([not found])
AC_MSG_ERROR([Could not find lp_lib.h])
fi
dnl Find the shared library:
LDFLAGS="-Wl,--no-as-needed"
for i in /usr/local/lib /usr/lib /lib; do
for j in lpsolve55_pic lpsolve55; do
if test -r "$i/lib$j.so"; then
PHP_CHECK_LIBRARY($j, make_lp,[
PHP_ADD_LIBRARY_WITH_PATH($j, $i, PHPLPSOLVE55_SHARED_LIBADD)
PHP_ADD_INCLUDE($LIBLPSOLVE_INCDIR)
LIBLPSOLVE_LIBDIR="$i"
break 2
],[
continue
],[
-L$i $EXTRA_LIBS
]
)
fi
done
done
for i in lpsolve55_pic lpsolve55; do
if test -z "$LIBLPSOLVE_LIBDIR"; then
PHP_CHECK_LIBRARY($i, make_lp,[
PHP_ADD_LIBRARY($i, 1, PHPLPSOLVE55_SHARED_LIBADD)
PHP_ADD_INCLUDE($LIBLPSOLVE_INCDIR)
LIBLPSOLVE_LIBDIR="$i"
],[
AC_MSG_ERROR([Could not find liblpsolve55.so or symbol make_lp. Check version and config.log for more information.])
],[
$EXTRA_LIBS
]
)
fi
done
LDFLAGS=""
AC_DEFINE(DEMO,1,[DEMO code in lpsolve])
AC_DEFINE(PHP,1,[liblpsolve55 found and included])
PHP_SUBST(PHPLPSOLVE55_SHARED_LIBADD)
PHP_NEW_EXTENSION(phplpsolve55, PHPmod.c hash.c lpsolve.c, $ext_shared)
fi