summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorMoriyoshi Koizumi <moriyoshi@php.net>2002-10-29 16:18:12 +0000
committerMoriyoshi Koizumi <moriyoshi@php.net>2002-10-29 16:18:12 +0000
commite8cf2253fba2c3ee08f04d26fe2f7ffa4c0f14d8 (patch)
tree82dd501611d5aa6d4340e1692f02dccfd3bd8162 /ext
parentcc62badf9dbc53e0cc0b28e6104cc617e56a5e93 (diff)
downloadphp-git-e8cf2253fba2c3ee08f04d26fe2f7ffa4c0f14d8.tar.gz
Improved library identification
Diffstat (limited to 'ext')
-rw-r--r--ext/iconv/config.m447
1 files changed, 38 insertions, 9 deletions
diff --git a/ext/iconv/config.m4 b/ext/iconv/config.m4
index b6ac4a1afb..5e2b47245d 100644
--- a/ext/iconv/config.m4
+++ b/ext/iconv/config.m4
@@ -55,29 +55,58 @@ int main() {
if test -z "$iconv_lib_name"; then
AC_MSG_CHECKING([if iconv is glibc's])
- AC_TRY_COMPILE([#include <iconv.h>],[void __gconv(); int main() { __gconv(); }],
+ AC_TRY_LINK([#include <gnu/libc-version.h>],[gnu_get_libc_version();],
[
AC_MSG_RESULT(yes)
- PHP_DEFINE([HAVE_GLIBC_ICONV],1)
- AC_DEFINE([HAVE_GLIBC_ICONV],1,[glibc's iconv implementation])
- PHP_DEFINE([PHP_ICONV_IMPL],[\"glibc\"])
- AC_DEFINE([PHP_ICONV_IMPL],["glibc"],[Which iconv implementation to use])
+ iconv_impl_name="glibc"
],[
AC_MSG_RESULT(no)
])
else
case "$iconv_lib_name" in
iconv [)]
- PHP_DEFINE([PHP_ICONV_IMPL],[\"libiconv\"])
- AC_DEFINE([PHP_ICONV_IMPL],["libiconv"],[Which iconv implementation to use])
+ AC_MSG_CHECKING([if iconv is Konstantin Chugeuv's])
+ AC_TRY_LINK([#include <iconv.h>],[iconv_ccs_init(NULL, NULL);],
+ [
+ AC_MSG_RESULT(yes)
+ iconv_impl_name="bsd"
+ ],[
+ AC_MSG_RESULT(no)
+ iconv_impl_name="gnu_libiconv"
+ ])
;;
+
giconv [)]
- PHP_DEFINE([PHP_ICONV_IMPL],[\"giconv\"])
- AC_DEFINE([PHP_ICONV_IMPL],["giconv"],[Which iconv implementation to use])
+ iconv_impl_name="gnu_libiconv"
+ ;;
+
+ biconv [)]
+ iconv_impl_name="bsd"
;;
esac
fi
+ case "$iconv_impl_name" in
+ gnu_libiconv [)]
+ PHP_DEFINE([PHP_ICONV_IMPL],[\"libiconv\"])
+ AC_DEFINE([PHP_ICONV_IMPL],["libiconv"],[Which iconv implementation to use])
+ ;;
+
+ bsd [)]
+ PHP_DEFINE([HAVE_BSD_ICONV],1)
+ AC_DEFINE([HAVE_BSD_ICONV],1,[Konstantin Chugeuv's iconv implementation])
+ PHP_DEFINE([PHP_ICONV_IMPL],[\"BSD iconv\"])
+ AC_DEFINE([PHP_ICONV_IMPL],["BSD iconv"],[Which iconv implementation to use])
+ ;;
+
+ glibc [)]
+ PHP_DEFINE([HAVE_GLIBC_ICONV],1)
+ AC_DEFINE([HAVE_GLIBC_ICONV],1,[glibc's iconv implementation])
+ PHP_DEFINE([PHP_ICONV_IMPL],[\"glibc\"])
+ AC_DEFINE([PHP_ICONV_IMPL],["glibc"],[Which iconv implementation to use])
+ ;;
+ esac
+
PHP_NEW_EXTENSION(iconv, iconv.c, $ext_shared)
PHP_SUBST(ICONV_SHARED_LIBADD)
else