-
-
Notifications
You must be signed in to change notification settings - Fork 122
/
config.m4
167 lines (131 loc) · 5.19 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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
dnl config.m4 for extension amqp
PHP_ARG_WITH(amqp, for amqp support,
[ --with-amqp Include amqp support])
PHP_ARG_WITH(librabbitmq-dir, for amqp,
[ --with-librabbitmq-dir[=DIR] Set the path to librabbitmq install prefix.], yes)
dnl Set test wrapper binary to ignore any local ini settings
if test "$PHP_AMQP" != "no"; then
AC_MSG_CHECKING([for supported PHP versions])
PHP_REF_FOUND_VERSION=$PHP_VERSION
PHP_REF_FOUND_VERNUM=$PHP_VERSION_ID
if test -z "$PHP_REF_FOUND_VERNUM"; then
if test -z "$PHP_CONFIG"; then
AC_MSG_ERROR([php-config not found])
fi
PHP_REF_FOUND_VERSION=`${PHP_CONFIG} --version`
PHP_REF_FOUND_VERNUM=`${PHP_CONFIG} --vernum`
fi
if test "$PHP_REF_FOUND_VERNUM" -lt "50600"; then
AC_MSG_ERROR([PHP version not supported, >= 5.6 required, but $PHP_REF_FOUND_VERSION found])
else
AC_MSG_RESULT([supported ($PHP_REF_FOUND_VERSION)])
fi
AC_MSG_RESULT($PHP_AMQP)
dnl # --with-amqp -> check with-path
NEW_LAYOUT=rabbitmq-c/framing.h
OLD_LAYOUT=amqp_framing.h
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
HAVE_LIBRABBITMQ_NEW_LAYOUT=0
if test "$PHP_LIBRABBITMQ_DIR" = "yes" -a -x $PKG_CONFIG; then
AC_MSG_CHECKING([for amqp using pkg-config])
if ! $PKG_CONFIG --exists librabbitmq ; then
AC_MSG_ERROR([librabbitmq not found])
fi
LIBRABBITMQ_VERSION=`$PKG_CONFIG librabbitmq --modversion`
AC_MSG_RESULT([found version $LIBRABBITMQ_VERSION])
if ! $PKG_CONFIG librabbitmq --atleast-version 0.8.0 ; then
AC_MSG_ERROR([librabbitmq must be version 0.8.0 or greater])
fi
if ! $PKG_CONFIG librabbitmq --atleast-version 0.10.0 ; then
AC_MSG_WARN([librabbitmq 0.10.0 or greater recommended, current version is $LIBRABBITMQ_VERSION])
fi
if test -r `$PKG_CONFIG librabbitmq --variable=includedir`/$NEW_LAYOUT; then
HAVE_LIBRABBITMQ_NEW_LAYOUT=1
fi
PHP_AMQP_LIBS=`$PKG_CONFIG librabbitmq --libs`
PHP_AMQP_INCS=`$PKG_CONFIG librabbitmq --cflags`
PHP_EVAL_LIBLINE($PHP_AMQP_LIBS, AMQP_SHARED_LIBADD)
PHP_EVAL_INCLINE($PHP_AMQP_INCS)
else
AC_MSG_CHECKING([for amqp files in default path])
if test "$PHP_LIBRABBITMQ_DIR" != "no" && test "$PHP_LIBRABBITMQ_DIR" != "yes"; then
for i in $PHP_LIBRABBITMQ_DIR; do
if test -r $i/include/$NEW_LAYOUT; then
AMQP_DIR=$i
HAVE_LIBRABBITMQ_NEW_LAYOUT=1
AC_MSG_RESULT(found in $i)
break
fi
if test -r $i/include/$OLD_LAYOUT; then
AMQP_DIR=$i
AC_MSG_RESULT(found in $i)
break
fi
done
else
for i in $PHP_AMQP /usr/local /usr ; do
if test -r $i/include/$NEW_LAYOUT; then
AMQP_DIR=$i
HAVE_LIBRABBITMQ_NEW_LAYOUT=1
AC_MSG_RESULT(found in $i)
break
fi
if test -r $i/include/$OLD_LAYOUT; then
AMQP_DIR=$i
AC_MSG_RESULT(found in $i)
break
fi
done
fi
if test -z "$AMQP_DIR"; then
AC_MSG_RESULT([not found])
AC_MSG_ERROR([Please reinstall the librabbitmq distribution itself or (re)install librabbitmq development package if it available in your system])
fi
dnl # --with-amqp -> add include path
PHP_ADD_INCLUDE($AMQP_DIR/include)
old_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -I$AMQP_DIR/include"
AC_CACHE_CHECK(for librabbitmq version, ac_cv_librabbitmq_version, [
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include "amqp.h"
#include <stdio.h>
int main ()
{
FILE *testfile = fopen("conftestval", "w");
if (NULL == testfile) {
return 1;
}
fprintf(testfile, "%s\n", AMQ_VERSION_STRING);
fclose(testfile);
return 0;
}
]])],[ac_cv_librabbitmq_version=`cat ./conftestval`],[ac_cv_librabbitmq_version=NONE],[ac_cv_librabbitmq_version=NONE])
])
CFLAGS=$old_CFLAGS
if test "$ac_cv_librabbitmq_version" != "NONE"; then
ac_IFS=$IFS
IFS=.
set $ac_cv_librabbitmq_version
IFS=$ac_IFS
LIBRABBITMQ_API_VERSION=`expr [$]1 \* 1000000 + [$]2 \* 1000 + [$]3`
if test "$LIBRABBITMQ_API_VERSION" -lt 8000 ; then
AC_MSG_ERROR([librabbitmq must be version 0.8.0 or greater, $ac_cv_librabbitmq_version version given instead])
fi
if test "$LIBRABBITMQ_API_VERSION" -lt 10000 ; then
AC_MSG_WARN([librabbitmq 0.10.0 or greater recommended, current version is $ac_cv_librabbitmq_version])
fi
else
AC_MSG_ERROR([could not determine librabbitmq version])
fi
dnl # --with-amqp -> check for lib and symbol presence
LIBNAME=rabbitmq
LIBSYMBOL=rabbitmq
PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $AMQP_DIR/$PHP_LIBDIR, AMQP_SHARED_LIBADD)
fi
AC_MSG_CHECKING([for new librabbitmq layout])
AC_MSG_RESULT([${HAVE_LIBRABBITMQ_NEW_LAYOUT}])
AC_DEFINE_UNQUOTED(HAVE_LIBRABBITMQ_NEW_LAYOUT, ${HAVE_LIBRABBITMQ_NEW_LAYOUT}, ["Librabbitmq new layout"])
PHP_SUBST(AMQP_SHARED_LIBADD)
AMQP_SOURCES="amqp.c amqp_envelope_exception.c amqp_type.c amqp_exchange.c amqp_queue.c amqp_connection.c amqp_connection_resource.c amqp_channel.c amqp_envelope.c amqp_basic_properties.c amqp_methods_handling.c amqp_value.c amqp_timestamp.c amqp_decimal.c"
PHP_NEW_EXTENSION(amqp, $AMQP_SOURCES, $ext_shared)
fi