42736504b2f65540a73d9a4627f6802c3f32994b
[m6w6/ext-http] / config9.m4
1 dnl config.m4 for pecl/http
2 dnl $Id: config9.m4 242664 2007-09-18 19:13:37Z mike $
3 dnl vim: noet ts=4 sw=4
4
5 PHP_ARG_WITH([http], [whether to enable extended HTTP support],
6 [ --with-http Enable extended HTTP support])
7 PHP_ARG_WITH([http-zlib-dir], [],
8 [ --with-http-zlib-dir[=DIR] HTTP: where to find zlib], $PHP_HTTP, $PHP_HTTP)
9 PHP_ARG_WITH([http-libcurl-dir], [],
10 [ --with-http-libcurl-dir[=DIR] HTTP: where to find libcurl], $PHP_HTTP, $PHP_HTTP)
11 PHP_ARG_WITH([http-libevent-dir], [],
12 [ --with-http-libevent-dir[=DIR] HTTP: where to find libevent], $PHP_HTTP_LIBCURL_DIR, "")
13 PHP_ARG_WITH([http-libidn-dir], [],
14 [ --with-http-libidn-dir[=DIR] HTTP: where to find libidn], $PHP_HTTP_LIBCURL_DIR, "")
15 PHP_ARG_WITH([http-libidn2-dir], [],
16 [ --with-http-libidn-dir[=DIR] HTTP: where to find libidn2], $PHP_HTTP_LIBCURL_DIR, "")
17 PHP_ARG_WITH([http-libicu-dir], [],
18 [ --with-http-libidn-dir[=DIR] HTTP: where to find libicu], $PHP_HTTP_LIBCURL_DIR, "")
19
20 if test "$PHP_HTTP" != "no"; then
21
22 HTTP_HAVE_A_REQUEST_LIB=false
23
24 ifdef([AC_PROG_EGREP], [
25 AC_PROG_EGREP
26 ], [
27 AC_CHECK_PROG(EGREP, egrep, egrep)
28 ])
29 ifdef([AC_PROG_SED], [
30 AC_PROG_SED
31 ], [
32 ifdef([LT_AC_PROG_SED], [
33 LT_AC_PROG_SED
34 ], [
35 AC_CHECK_PROG(SED, sed, sed)
36 ])
37 ])
38
39 if test -z "$PKG_CONFIG"; then
40 AC_PATH_PROG(PKG_CONFIG, pkg-config, false)
41 fi
42
43 AC_PROG_CPP
44
45 if test "$PHP_HTTP_SHARED_DEPS" != "no"; then
46 AC_DEFINE([PHP_HTTP_SHARED_DEPS], [1], [ ])
47 else
48 AC_DEFINE([PHP_HTTP_SHARED_DEPS], [0], [ ])
49 fi
50
51 dnl
52 dnl HTTP_SHARED_DEP(name[, code-if-yes[, code-if-not]])
53 dnl
54 AC_DEFUN([HTTP_SHARED_DEP], [
55 extname=$1
56 haveext=$[PHP_HTTP_HAVE_EXT_]translit($1,a-z_-,A-Z__)
57
58 AC_MSG_CHECKING([whether to add a dependency on ext/$extname])
59 if test "$PHP_HTTP_SHARED_DEPS" = "no"; then
60 AC_MSG_RESULT([no])
61 $3
62 elif test "$haveext"; then
63 AC_MSG_RESULT([yes])
64 AC_DEFINE([PHP_HTTP_HAVE_EXT_]translit($1,a-z_-,A-Z__), [1], [ ])
65 ifdef([PHP_ADD_EXTENSION_DEP], [
66 PHP_ADD_EXTENSION_DEP([http], $1, true)
67 ])
68 $2
69 else
70 AC_MSG_RESULT([no])
71 $3
72 fi
73 ])
74
75 dnl
76 dnl HTTP_HAVE_PHP_EXT(name[, code-if-yes[, code-if-not]])
77 dnl
78 AC_DEFUN([HTTP_HAVE_PHP_EXT], [
79 extname=$1
80 haveext=$[PHP_]translit($1,a-z_-,A-Z__)
81 AC_MSG_CHECKING([for ext/$extname support])
82 if test -x "$PHP_EXECUTABLE"; then
83 grepext=`$PHP_EXECUTABLE -m | $EGREP ^$extname\$`
84 if test "$grepext" = "$extname"; then
85 [PHP_HTTP_HAVE_EXT_]translit($1,a-z_-,A-Z__)=1
86 AC_MSG_RESULT([yes])
87 $2
88 else
89 [PHP_HTTP_HAVE_EXT_]translit($1,a-z_-,A-Z__)=
90 AC_MSG_RESULT([no])
91 $3
92 fi
93 elif test "$haveext" != "no" && test "x$haveext" != "x"; then
94 [PHP_HTTP_HAVE_EXT_]translit($1,a-z_-,A-Z__)=1
95 AC_MSG_RESULT([yes])
96 $2
97 else
98 [PHP_HTTP_HAVE_EXT_]translit($1,a-z_-,A-Z__)=
99 AC_MSG_RESULT([no])
100 $3
101 fi
102 ])
103
104 dnl
105 dnl HTTP_HAVE_VERSION(name, min-version[, code-if-yes[, code-if-not]])
106 dnl
107 AC_DEFUN([HTTP_HAVE_VERSION], [
108 aversion=$(printf "%s" "$AS_TR_CPP([PHP_HTTP_]$1[_VERSION])" | $AWK '{print $[]1*1000000 + $[]2*10000 + $[]3*100 + $[]4}')
109 mversion=$(printf "%s" "$2" | $AWK '{print $[]1*1000000 + $[]2*10000 + $[]3*100 + $[]4}')
110 AC_MSG_CHECKING([whether $1 version $]AS_TR_CPP([PHP_HTTP_]$1[_VERSION])[ is at least $2])
111 if test "$aversion" -lt "$mversion"; then
112 ifelse($4,,AC_MSG_ERROR([$1 minimum version $mversion required; got $aversion]), [
113 AC_MSG_RESULT([no])
114 $4
115 ])
116 else
117 AC_MSG_RESULT([ok])
118 $3
119 fi
120 ])
121
122 dnl
123 dnl HTTP_CHECK_CUSTOM(name, path, header, lib, version)
124 dnl
125 AC_DEFUN([HTTP_CHECK_CUSTOM], [
126 save_CPPFLAGS=$CPPFLAGS
127 save_LDFLAGS=$LDFLAGS
128 save_LIBS=$LIBS
129
130 for path in $2 /usr/local /usr /opt; do
131 if test "$path" = "" || test "$path" = "yes" || test "$path" = "no"; then
132 continue
133 fi
134 AC_MSG_CHECKING([for $1 in $path])
135 if test -f "$path/include/$3"; then
136 CPPFLAGS="-I$path"
137 LDFLAGS="-L$path"
138 LIBS="-l$4"
139
140 AS_TR_CPP([PHP_HTTP_][$1][_VERSION])=$5
141 AC_MSG_RESULT([${AS_TR_CPP([PHP_HTTP_][$1][_VERSION]):-no}])
142 AC_DEFINE_UNQUOTED(AS_TR_CPP([PHP_HTTP_][$1][_VERSION]), "$AS_TR_CPP([PHP_HTTP_][$1][_VERSION])", [ ])
143 break
144 fi
145 AC_MSG_RESULT([no])
146 done
147 ])
148
149 dnl
150 dnl HTTP_CHECK_CONFIG(name, prog-config, version-flag, cppflags-flag, ldflags-flag, libs-flag)
151 dnl
152 AC_DEFUN([HTTP_CHECK_CONFIG], [
153 AC_MSG_CHECKING([for $1])
154
155 save_CPPFLAGS=$CPPFLAGS
156 save_LDFLAGS=$LDFLAGS
157 save_LIBS=$LIBS
158 AS_TR_CPP([PHP_HTTP_][$1][_VERSION])=$($2 $3)
159 CPPFLAGS=$($2 $4)
160 LDFLAGS=$($2 $5)
161 LIBS=$($2 $6)
162
163 AC_MSG_RESULT([${AS_TR_CPP([PHP_HTTP_][$1][_VERSION]):-no}])
164 AC_DEFINE_UNQUOTED(AS_TR_CPP([PHP_HTTP_][$1][_VERSION]), "$AS_TR_CPP([PHP_HTTP_][$1][_VERSION])", [ ])
165 ])
166
167 dnl
168 dnl HTTP_CHECK_PKGCONFIG(pkg[, pkg_config_path])
169 dnl
170 AC_DEFUN([HTTP_CHECK_PKGCONFIG], [
171 ifelse($2,,,PKG_CONFIG_PATH="$2/lib/pkgconfig:$PKG_CONFIG_PATH")
172 if $($PKG_CONFIG $1 --exists); then
173 AS_TR_CPP([PHP_HTTP_HAVE_$1])=true
174 HTTP_CHECK_CONFIG([$1], [$PKG_CONFIG $1], [--modversion], [--cflags-only-I], [--libs-only-L], [--libs-only-l])
175 else
176 AS_TR_CPP([PHP_HTTP_HAVE_$1])=false
177 fi
178 ])
179
180 dnl
181 dnl HTTP_CHECK_DONE(name, success[, incline, libline])
182 AC_DEFUN([HTTP_CHECK_DONE], [
183 if $2; then
184 incline=$CPPFLAGS
185 libline="$LDFLAGS $LIBS"
186 AC_DEFINE(AS_TR_CPP([PHP_HTTP_HAVE_$1]), [1], [ ])
187 else
188 incline=$3
189 libline=$4
190 fi
191
192 CPPFLAGS=$save_CPPFLAGS
193 LDFLAGS=$save_LDFLAGS
194 LIBS=$save_LIBS
195
196 PHP_EVAL_INCLINE([$incline])
197 PHP_EVAL_LIBLINE([$libline], HTTP_SHARED_LIBLINE)
198 ])
199
200 dnl
201 dnl HTTP_CURL_SSL_LIB_CHECK(ssllib[, code-if-yes[, code-if-not])
202 dnl
203 AC_DEFUN([HTTP_CURL_SSL_LIB_CHECK], [
204 AC_MSG_CHECKING([for $1 support in libcurl])
205 AC_TRY_RUN([
206 #include <curl/curl.h>
207 int main(int argc, char *argv[]) {
208 curl_version_info_data *data = curl_version_info(CURLVERSION_NOW);
209 if (data && data->ssl_version && *data->ssl_version) {
210 const char *ptr = data->ssl_version;
211 while(*ptr == ' ') ++ptr;
212 return strncasecmp(ptr, "$1", sizeof("$1")-1);
213 }
214 return 1;
215 }
216 ], [
217 AC_MSG_RESULT([yes])
218 $2
219 ], [
220 AC_MSG_RESULT([no])
221 $3
222 ], [
223 AC_MSG_RESULT([no])
224 $3
225 ])
226 ])
227
228
229 dnl ----
230 dnl STDC
231 dnl ----
232 AC_TYPE_OFF_T
233 AC_TYPE_MBSTATE_T
234 dnl getdomainname() is declared in netdb.h on some platforms: AIX, OSF
235 AC_CHECK_HEADERS([netdb.h unistd.h wchar.h wctype.h arpa/inet.h])
236 PHP_CHECK_FUNC(gethostname, nsl)
237 PHP_CHECK_FUNC(getdomainname, nsl)
238 PHP_CHECK_FUNC(mbrtowc)
239 PHP_CHECK_FUNC(mbtowc)
240 PHP_CHECK_FUNC(iswalnum)
241 PHP_CHECK_FUNC(inet_pton)
242
243 dnl ----
244 dnl IDN
245 dnl ----
246
247 HTTP_CHECK_PKGCONFIG(libidn, [$PHP_HTTP_LIBIDN_DIR])
248 if $PHP_HTTP_HAVE_LIBIDN; then
249 AC_DEFINE([PHP_HTTP_HAVE_IDNA2003], [1], [ ])
250 fi
251 HTTP_CHECK_DONE(libidn, $PHP_HTTP_HAVE_LIBIDN)
252
253 HTTP_CHECK_CUSTOM(libidn2, "$PHP_HTTP_LIBIDN2_DIR", idn2.h, idn2,
254 [$($EGREP "define IDN2_VERSION " $path/include/idn2.h | $SED -e's/^.*VERSION //g' -e 's/@<:@^0-9\.@:>@//g')])
255 if test -n "$PHP_HTTP_LIBIDN2_VERSION"; then
256 AC_DEFINE([PHP_HTTP_HAVE_IDNA2008], [1], [ ])
257 fi
258 HTTP_CHECK_DONE(libidn2, test -n "$PHP_HTTP_LIBIDN2_VERSION")
259
260 case $host_os in
261 darwin*)
262 PHP_CHECK_FUNC(uidna_IDNToASCII, icucore)
263 ;;
264 *)
265 AC_PATH_PROG(ICU_CONFIG, icu-config, false, [$PHP_HTTP_LIBICU_DIR/bin:$PATH:/usr/local/bin])
266
267 HTTP_CHECK_CONFIG(libicu, [$ICU_CONFIG], [--version], [--cppflags], [--ldflags-searchpath], [--ldflags-libsonly])
268 AC_MSG_CHECKING([for uidna_IDNToASCII])
269 AC_TRY_LINK([
270 #include <unicode/uidna.h>
271 ], [
272 uidna_IDNToASCII(0, 0, 0, 0, 0, 0, 0);
273 ], [
274 AC_MSG_RESULT([yes])
275 PHP_HTTP_HAVE_ICU=true
276 AC_DEFINE([PHP_HTTP_HAVE_IDNA2003], [1], [ ])
277 AC_DEFINE([HAVE_UIDNA_IDNTOASCII], [1], [ ])
278 ], [
279 AC_MSG_RESULT([no])
280 ])
281 AC_MSG_CHECKING([for uidna_nameToASCII_UTF8])
282 AC_TRY_LINK([
283 #include <unicode/uidna.h>
284 ], [
285 uidna_nameToASCII_UTF8(0, 0, 0, 0, 0, 0, 0);
286 ], [
287 AC_MSG_RESULT([yes])
288 PHP_HTTP_HAVE_ICU=true
289 AC_DEFINE([PHP_HTTP_HAVE_IDNA2008], [1], [ ])
290 AC_DEFINE([HAVE_UIDNA_NAMETOASCII_UTF8], [1], [ ])
291 ], [
292 AC_MSG_RESULT([no])
293 ])
294 HTTP_CHECK_DONE(libicu, [$PHP_HTTP_HAVE_LIBICU])
295 ;;
296 esac
297
298 dnl ----
299 dnl ZLIB
300 dnl ----
301 HTTP_CHECK_CUSTOM(zlib, ["$PHP_HTTP_ZLIB_DIR" "$PHP_ZLIB_DIR" "$PHP_ZLIB"], zlib.h, z,
302 [$($EGREP "define ZLIB_VERSION" "$path/include/zlib.h" | $SED -e 's/@<:@^0-9\.@:>@//g')])
303 HTTP_HAVE_VERSION(zlib, 1.2.0.4)
304 HTTP_CHECK_DONE(zlib, test -n "$PHP_HTTP_ZLIB_VERSION")
305
306 dnl ----
307 dnl CURL
308 dnl ----
309
310 AC_PATH_PROG([CURL_CONFIG], [curl-config], false, [$PHP_HTTP_LIBCURL_DIR/bin:$PATH:/usr/local/bin])
311
312 if $CURL_CONFIG --protocols | $EGREP -q HTTP; then
313 HTTP_CHECK_CONFIG(libcurl, $CURL_CONFIG,
314 [--version | $SED -e 's/@<:@^0-9\.@:>@//g'],
315 [--cflags],
316 [--libs | $EGREP -o -- '-L@<:@^ @:>@* ?'],
317 [--libs | $EGREP -o -- '-l@<:@^ @:>@* ?']
318 )
319 HTTP_HAVE_VERSION(libcurl, 7.18.2)
320
321 AC_MSG_CHECKING([for HTTP2 support in libcurl])
322 if $CURL_CONFIG --feature | $EGREP -q HTTP2; then
323 AC_MSG_RESULT([yes])
324 AC_DEFINE([PHP_HTTP_HAVE_HTTP2], [1], [ ])
325 else
326 AC_MSG_RESULT([no])
327 fi
328
329 AC_MSG_CHECKING([for SSL support in libcurl])
330 if $CURL_CONFIG --feature | $EGREP -q SSL; then
331 AC_MSG_RESULT([yes])
332 AC_DEFINE([PHP_HTTP_HAVE_SSL], [1], [ ])
333
334 HTTP_CURL_SSL_LIB_CHECK(OpenSSL, [
335 AC_CHECK_HEADER([openssl/ssl.h], [
336 AC_CHECK_HEADER([openssl/crypto.h], [
337 AC_DEFINE([PHP_HTTP_HAVE_OPENSSL], [1], [ ])
338 LIBS="$LIBS -lssl -lcrypto"
339 ])
340 ])
341 ])
342 HTTP_CURL_SSL_LIB_CHECK(GnuTLS, [
343 AC_CHECK_HEADER([gnutls.h], [
344 AC_CHECK_HEADER([gcrypt.h], [
345 AC_DEFINE([PHP_HTTP_HAVE_GNUTLS], [1], [ ])
346 LIBS="$LIBS -lgnutls -lgcrypt"
347 ])
348 ])
349 ])
350 HTTP_CURL_SSL_LIB_CHECK(NSS, [
351 AC_DEFINE([PHP_HTTP_HAVE_NSS], [1], [ ])
352 ])
353 HTTP_CURL_SSL_LIB_CHECK(SecureTransport, [
354 AC_DEFINE([PHP_HTTP_HAVE_DARWINSSL], [1], [ ])
355 ])
356 HTTP_CURL_SSL_LIB_CHECK(GSKit, [
357 AC_DEFINE([PHP_HTTP_HAVE_GSKIT], [1], [ ])
358 ])
359 else
360 dnl no CURL_SSL
361 AC_MSG_RESULT([no])
362 fi
363
364 AC_MSG_CHECKING([for ares support in libcurl])
365 AC_TRY_RUN([
366 #include <curl/curl.h>
367 int main(int argc, char *argv[]) {
368 curl_version_info_data *data = curl_version_info(CURLVERSION_NOW);
369 if (data && data->ares && data->ares_num0) {
370 return 0;
371 }
372 return 1;
373 }
374 ], [
375 AC_MSG_RESULT([yes])
376 AC_DEFINE([PHP_HTTP_HAVE_ARES], [1], [ ])
377 ], [
378 AC_MSG_RESULT([no])
379 ], [
380 AC_MSG_RESULT([no])
381 ])
382
383 AC_MSG_CHECKING([whether CURLOPT_TLSAUTH_TYPE expects CURL_TLSAUTH_SRP or literal "SRP"])
384 AC_TRY_RUN([
385 #include <curl/curl.h>
386 int main(int argc, char *argv[]) {
387 CURL *ch = curl_easy_init();
388 return curl_easy_setopt(ch, CURLOPT_TLSAUTH_TYPE, CURL_TLSAUTH_SRP);
389 }
390 ], [
391 AC_MSG_RESULT([CURL_TLSAUTH_SRP])
392 AC_DEFINE([PHP_HTTP_CURL_TLSAUTH_SRP], [CURL_TLSAUTH_SRP], [ ])
393 AC_DEFINE([PHP_HTTP_CURL_TLSAUTH_DEF], [CURL_TLSAUTH_NONE], [ ])
394 ], [
395 AC_TRY_RUN([
396 #include <curl/curl.h>
397 int main(int argc, char *argv[]) {
398 CURL *ch = curl_easy_init();
399 return curl_easy_setopt(ch, CURLOPT_TLSAUTH_TYPE, "SRP");
400 }
401 ], [
402 AC_MSG_RESULT(["SRP"])
403 AC_DEFINE([PHP_HTTP_CURL_TLSAUTH_SRP], ["SRP"], [ ])
404 AC_DEFINE([PHP_HTTP_CURL_TLSAUTH_DEF], [""], [ ])
405 ], [
406 AC_MSG_RESULT([neither])
407 ], [
408 AC_MSG_RESULT([neither])
409 ])
410 ], [
411 AC_MSG_RESULT([neither])
412 ])
413
414 AC_MSG_CHECKING([for default SSL CA info/path])
415 CURL_CA_PATH=
416 CURL_CA_INFO=
417 CURL_CONFIG_CA=$($CURL_CONFIG --ca)
418 if test -z "$CURL_CONFIG_CA"; then
419 CURL_CONFIG_CA=$($CURL_CONFIG --configure | $EGREP -o -- "--with-ca@<:@^'@:>@*" | $SED 's/.*=//')
420 fi
421 for i in \
422 "$CURL_CONFIG_CA" \
423 /etc/ssl/certs \
424 /etc/ssl/certs/ca-bundle.crt \
425 /etc/ssl/certs/ca-certificates.crt \
426 /etc/pki/tls/certs/ca-bundle.crt \
427 /etc/pki/tls/certs/ca-bundle.trust.crt \
428 /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem \
429 /System/Library/OpenSSL
430 do
431 if test -z "$CURL_CA_PATH" && test -d "$i"; then
432 # check if it's actually a hashed directory
433 if ls "$i"/@<:@0-9a-f@:>@@<:@0-9a-f@:>@@<:@0-9a-f@:>@@<:@0-9a-f@:>@@<:@0-9a-f@:>@@<:@0-9a-f@:>@@<:@0-9a-f@:>@@<:@0-9a-f@:>@.0 >/dev/null 2>&1; then
434 CURL_CA_PATH="$i"
435 fi
436 elif test -z "$CURL_CA_INFO" && test -f "$i"; then
437 CURL_CA_INFO="$i"
438 fi
439 done
440 if test -n "$CURL_CA_PATH" && test -n "$CURL_CA_INFO"; then
441 AC_MSG_RESULT([path:$CURL_CA_PATH, info:$CURL_CA_INFO])
442 AC_DEFINE_UNQUOTED([PHP_HTTP_CURL_CAPATH], ["$CURL_CA_PATH"], [path to default SSL CA path])
443 AC_DEFINE_UNQUOTED([PHP_HTTP_CURL_CAINFO], ["$CURL_CA_INFO"], [path to default SSL CA info])
444 elif test -n "$CURL_CA_INFO"; then
445 AC_MSG_RESULT([info:$CURL_CA_INFO])
446 AC_DEFINE_UNQUOTED([PHP_HTTP_CURL_CAINFO], ["$CURL_CA_INFO"], [path to default SSL CA info])
447 elif test -n "$CURL_CA_PATH"; then
448 AC_MSG_RESULT([path:$CURL_CA_PATH])
449 AC_DEFINE_UNQUOTED([PHP_HTTP_CURL_CAPATH], ["$CURL_CA_PATH"], [path to default SSL CA path])
450 else
451 AC_MSG_RESULT([none])
452 fi
453
454 HTTP_HAVE_A_REQUEST_LIB=true
455 fi
456 HTTP_CHECK_DONE(libcurl, test -n "$PHP_HTTP_LIBCURL_VERSION")
457
458 dnl ----
459 dnl EVENT
460 dnl ----
461
462 HTTP_CHECK_PKGCONFIG(libevent, [$PHP_HTTP_LIBEVENT_DIR])
463 HTTP_HAVE_VERSION(libevent, 2.0, [
464 AC_DEFINE([PHP_HTTP_HAVE_LIBEVENT2], [1], [ ])
465 ])
466 HTTP_CHECK_DONE(libevent, [$PHP_HTTP_HAVE_LIBEVENT])
467
468 dnl ----
469 dnl RAPHF
470 dnl ----
471 HTTP_HAVE_PHP_EXT([raphf], [
472 AC_MSG_CHECKING([for php_raphf.h])
473 HTTP_EXT_RAPHF_INCDIR=
474 for i in `echo $INCLUDES | $SED -e's/-I//g'` $abs_srcdir ../raphf; do
475 if test -d $i; then
476 if test -f $i/php_raphf.h; then
477 HTTP_EXT_RAPHF_INCDIR=$i
478 break
479 elif test -f $i/ext/raphf/php_raphf.h; then
480 HTTP_EXT_RAPHF_INCDIR=$i/ext/raphf
481 break
482 fi
483 fi
484 done
485 if test "x$HTTP_EXT_RAPHF_INCDIR" = "x"; then
486 AC_MSG_ERROR([not found])
487 else
488 AC_MSG_RESULT([$HTTP_EXT_RAPHF_INCDIR])
489 AC_DEFINE([PHP_HTTP_HAVE_PHP_RAPHF_H], [1], [Have ext/raphf support])
490 PHP_ADD_INCLUDE([$HTTP_EXT_RAPHF_INCDIR])
491 fi
492 ], [
493 AC_MSG_ERROR([Please install pecl/raphf and activate extension=raphf.$SHLIB_DL_SUFFIX_NAME in your php.ini])
494 ])
495
496 dnl ----
497 dnl PROPRO
498 dnl ----
499 HTTP_HAVE_PHP_EXT([propro], [
500 AC_MSG_CHECKING([for php_propro.h])
501 HTTP_EXT_PROPRO_INCDIR=
502 for i in `echo $INCLUDES | $SED -e's/-I//g'` $abs_srcdir ../propro; do
503 if test -d $i; then
504 if test -f $i/php_propro.h; then
505 HTTP_EXT_PROPRO_INCDIR=$i
506 break
507 elif test -f $i/ext/propro/php_propro.h; then
508 HTTP_EXT_PROPRO_INCDIR=$i/ext/propro
509 break
510 fi
511 fi
512 done
513 if test "x$HTTP_EXT_PROPRO_INCDIR" = "x"; then
514 AC_MSG_ERROR([not found])
515 else
516 AC_MSG_RESULT([$HTTP_EXT_PROPRO_INCDIR])
517 AC_DEFINE([PHP_HTTP_HAVE_PHP_PROPRO_H], [1], [Have ext/propro support])
518 PHP_ADD_INCLUDE([$HTTP_EXT_PROPRO_INCDIR])
519 fi
520 ], [
521 AC_MSG_ERROR([Please install pecl/propro and activate extension=propro.$SHLIB_DL_SUFFIX_NAME in your php.ini])
522 ])
523
524 PHP_ARG_WITH([http-shared-deps], [whether to depend on extensions which have been built shared],
525 [ --without-http-shared-deps HTTP: do not depend on extensions like hash
526 and iconv (when they are built shared)], $PHP_HTTP, $PHP_HTTP)
527 dnl ----
528 dnl HASH
529 dnl ----
530 HTTP_HAVE_PHP_EXT([hash], [
531 AC_MSG_CHECKING([for php_hash.h])
532 HTTP_EXT_HASH_INCDIR=
533 for i in `echo $INCLUDES | $SED -e's/-I//g'` $abs_srcdir ../hash; do
534 if test -d $i; then
535 if test -f $i/php_hash.h; then
536 HTTP_EXT_HASH_INCDIR=$i
537 break
538 elif test -f $i/ext/hash/php_hash.h; then
539 HTTP_EXT_HASH_INCDIR=$i/ext/hash
540 break
541 fi
542 fi
543 done
544 if test "x$HTTP_EXT_HASH_INCDIR" = "x"; then
545 AC_MSG_RESULT([not found])
546 else
547 AC_MSG_RESULT([$HTTP_EXT_HASH_INCDIR])
548 AC_DEFINE([PHP_HTTP_HAVE_PHP_HASH_H], [1], [Have ext/hash support])
549 PHP_ADD_INCLUDE([$HTTP_EXT_HASH_INCDIR])
550 fi
551 ])
552
553 dnl ----
554 dnl ICONV
555 dnl ----
556 HTTP_HAVE_PHP_EXT([iconv])
557
558 dnl ----
559 dnl DONE
560 dnl ----
561
562 PHP_SUBST([HTTP_SHARED_LIBADD])
563
564 PHP_HTTP_SRCDIR=PHP_EXT_SRCDIR(http)
565 PHP_HTTP_BUILDDIR=PHP_EXT_BUILDDIR(http)
566
567 PHP_ADD_INCLUDE($PHP_HTTP_SRCDIR/src)
568 PHP_ADD_BUILD_DIR($PHP_HTTP_BUILDDIR/src)
569
570 PHP_HTTP_HEADERS=`(cd $PHP_HTTP_SRCDIR/src && echo *.h)`
571 PHP_HTTP_SOURCES=`(cd $PHP_HTTP_SRCDIR && echo src/*.c)`
572
573 PHP_NEW_EXTENSION(http, $PHP_HTTP_SOURCES, $ext_shared)
574 PHP_INSTALL_HEADERS(ext/http, php_http.h $PHP_HTTP_HEADERS)
575
576 HTTP_SHARED_DEP([hash])
577 HTTP_SHARED_DEP([iconv])
578 PHP_ADD_EXTENSION_DEP([http], [raphf], true)
579 PHP_ADD_EXTENSION_DEP([http], [propro], true)
580
581 PHP_SUBST(PHP_HTTP_HEADERS)
582 PHP_SUBST(PHP_HTTP_SOURCES)
583
584 PHP_SUBST(PHP_HTTP_SRCDIR)
585 PHP_SUBST(PHP_HTTP_BUILDDIR)
586
587 PHP_ADD_MAKEFILE_FRAGMENT
588
589 AC_DEFINE([HAVE_HTTP], [1], [Have extended HTTP support])
590 if $HTTP_HAVE_A_REQUEST_LIB; then
591 AC_DEFINE([PHP_HTTP_HAVE_CLIENT], [1], [Have HTTP client support])
592 fi
593 fi