2001-05-10 06:58:25 +00:00
dnl
1999-04-22 00:45:14 +00:00
dnl $Id$
2001-05-10 06:58:25 +00:00
dnl
1999-04-22 00:45:14 +00:00
2004-12-30 07:08:39 +00:00
AC_DEFUN([IMAP_INC_CHK],[if test -r "$i$1/c-client.h"; then
2001-05-10 06:58:25 +00:00
AC_DEFINE(HAVE_IMAP2000, 1, [ ])
IMAP_DIR=$i
IMAP_INC_DIR=$i$1
2003-10-01 02:53:23 +00:00
break
2001-05-10 06:58:25 +00:00
elif test -r "$i$1/rfc822.h"; then
IMAP_DIR=$i;
IMAP_INC_DIR=$i$1
2003-10-01 02:53:23 +00:00
break
2001-02-26 15:17:12 +00:00
])
2000-04-28 17:13:50 +00:00
2004-12-30 07:08:39 +00:00
AC_DEFUN([IMAP_LIB_CHK],[
2001-05-10 06:58:25 +00:00
str="$IMAP_DIR/$1/lib$lib.*"
for i in `echo $str`; do
2003-10-01 02:53:23 +00:00
test -r $i && IMAP_LIBDIR=$IMAP_DIR/$1 && break 2
2001-05-10 06:58:25 +00:00
done
])
2000-10-02 22:16:53 +00:00
2004-02-23 03:24:58 +00:00
dnl PHP_IMAP_TEST_BUILD(function, action-if-ok, action-if-not-ok, extra-libs)
2004-12-30 07:08:39 +00:00
AC_DEFUN([PHP_IMAP_TEST_BUILD], [
2004-02-23 03:24:58 +00:00
PHP_TEST_BUILD([$1], [$2], [$3], [$4],
[
2008-01-31 18:48:00 +00:00
#if defined(__GNUC__) && __GNUC__ >= 4
# define PHP_IMAP_EXPORT __attribute__ ((visibility("default")))
#else
# define PHP_IMAP_EXPORT
#endif
PHP_IMAP_EXPORT void mm_log(void){}
PHP_IMAP_EXPORT void mm_dlog(void){}
PHP_IMAP_EXPORT void mm_flags(void){}
PHP_IMAP_EXPORT void mm_fatal(void){}
PHP_IMAP_EXPORT void mm_critical(void){}
PHP_IMAP_EXPORT void mm_nocritical(void){}
PHP_IMAP_EXPORT void mm_notify(void){}
PHP_IMAP_EXPORT void mm_login(void){}
PHP_IMAP_EXPORT void mm_diskerror(void){}
PHP_IMAP_EXPORT void mm_status(void){}
PHP_IMAP_EXPORT void mm_lsub(void){}
PHP_IMAP_EXPORT void mm_list(void){}
PHP_IMAP_EXPORT void mm_exists(void){}
PHP_IMAP_EXPORT void mm_searched(void){}
PHP_IMAP_EXPORT void mm_expunged(void){}
2002-07-12 12:13:45 +00:00
])
])
2004-12-30 07:08:39 +00:00
AC_DEFUN([PHP_IMAP_KRB_CHK], [
2001-05-10 06:58:25 +00:00
if test "$PHP_KERBEROS" != "no"; then
2004-12-30 14:50:06 +00:00
PHP_SETUP_KERBEROS(IMAP_SHARED_LIBADD,
[
AC_DEFINE(HAVE_IMAP_KRB,1,[ ])
], [
2002-11-01 16:45:59 +00:00
AC_MSG_ERROR([Kerberos libraries not found.
2002-07-12 22:11:54 +00:00
2002-11-01 16:45:59 +00:00
Check the path given to --with-kerberos (if no path is given, searches in /usr/kerberos, /usr/local and /usr )
2002-07-12 22:11:54 +00:00
])
2004-12-30 14:50:06 +00:00
])
2001-08-03 05:17:18 +00:00
else
AC_EGREP_HEADER(auth_gss, $IMAP_INC_DIR/linkage.h, [
2002-08-20 23:08:24 +00:00
AC_MSG_ERROR([This c-client library is built with Kerberos support.
2001-08-03 05:17:18 +00:00
2003-01-28 06:56:32 +00:00
Add --with-kerberos to your configure line. Check config.log for details.
2002-07-12 12:13:45 +00:00
])
2001-08-03 05:17:18 +00:00
])
2001-05-10 06:58:25 +00:00
fi
])
2000-10-02 22:16:53 +00:00
2004-12-30 07:08:39 +00:00
AC_DEFUN([PHP_IMAP_SSL_CHK], [
2001-05-10 06:58:25 +00:00
if test "$PHP_IMAP_SSL" != "no"; then
2007-01-23 12:38:40 +00:00
if test "$PHP_OPENSSL" = ""; then
2007-01-08 18:23:23 +00:00
PHP_OPENSSL='no'
fi
2004-12-30 14:50:06 +00:00
PHP_SETUP_OPENSSL(IMAP_SHARED_LIBADD,
[
AC_DEFINE(HAVE_IMAP_SSL,1,[ ])
], [
AC_MSG_ERROR([OpenSSL libraries not found.
Check the path given to --with-openssl-dir and output in config.log)
])
])
elif test -f "$IMAP_INC_DIR/linkage.c"; then
AC_EGREP_HEADER(ssl_onceonlyinit, $IMAP_INC_DIR/linkage.c, [
AC_MSG_ERROR([This c-client library is built with SSL support.
Add --with-imap-ssl to your configure line. Check config.log for details.
])
])
2001-05-10 06:58:25 +00:00
fi
])
2000-10-02 22:16:53 +00:00
2001-05-06 05:39:16 +00:00
2000-05-23 23:36:44 +00:00
PHP_ARG_WITH(imap,for IMAP support,
2005-05-29 23:17:16 +00:00
[ --with-imap[=DIR] Include IMAP support. DIR is the c-client install prefix])
2000-05-23 23:36:44 +00:00
2004-12-30 14:50:06 +00:00
PHP_ARG_WITH(kerberos,for IMAP Kerberos support,
2005-05-29 23:17:16 +00:00
[ --with-kerberos[=DIR] IMAP: Include Kerberos support. DIR is the Kerberos install prefix], no, no)
2004-12-30 14:50:06 +00:00
PHP_ARG_WITH(imap-ssl,for IMAP SSL support,
2005-05-29 23:17:16 +00:00
[ --with-imap-ssl[=DIR] IMAP: Include SSL support. DIR is the OpenSSL install prefix], no, no)
2001-05-10 06:58:25 +00:00
2004-12-30 14:50:06 +00:00
if test "$PHP_IMAP" != "no"; then
2001-05-10 06:58:25 +00:00
PHP_SUBST(IMAP_SHARED_LIBADD)
2002-03-12 16:44:00 +00:00
PHP_NEW_EXTENSION(imap, php_imap.c, $ext_shared)
2001-05-10 06:58:25 +00:00
AC_DEFINE(HAVE_IMAP,1,[ ])
2003-09-30 22:36:43 +00:00
for i in $PHP_IMAP /usr/local /usr; do
2000-03-03 11:47:13 +00:00
IMAP_INC_CHK()
2000-04-30 16:10:29 +00:00
el[]IMAP_INC_CHK(/include/c-client)
2001-02-25 04:41:18 +00:00
el[]IMAP_INC_CHK(/include/imap)
el[]IMAP_INC_CHK(/include)
2000-03-03 11:47:13 +00:00
el[]IMAP_INC_CHK(/imap)
el[]IMAP_INC_CHK(/c-client)
fi
2000-02-29 13:12:48 +00:00
done
2005-01-11 04:56:06 +00:00
dnl Check for c-client version 2004
AC_EGREP_HEADER(mail_fetch_overview_sequence, $IMAP_INC_DIR/mail.h, [
AC_DEFINE(HAVE_IMAP2004,1,[ ])
])
2007-01-19 20:44:52 +00:00
2006-09-24 18:06:53 +00:00
dnl Check for new version of the utf8_mime2text() function
2007-01-18 14:05:07 +00:00
old_CFLAGS=$CFLAGS
CFLAGS="-I$IMAP_INC_DIR"
2007-01-19 20:44:52 +00:00
AC_CACHE_CHECK(for utf8_mime2text signature, ac_cv_utf8_mime2text,
AC_TRY_COMPILE([
2007-01-19 22:33:10 +00:00
#include <stdio.h>
2007-01-18 14:05:07 +00:00
#include <c-client.h>
2007-01-19 20:44:52 +00:00
],[
SIZEDTEXT *src, *dst;
utf8_mime2text(src, dst);
],[
ac_cv_utf8_mime2text=old
],[
ac_cv_utf8_mime2text=new
])
2007-01-18 14:05:07 +00:00
)
if test "$ac_cv_utf8_mime2text" = "new"; then
AC_DEFINE(HAVE_NEW_MIME2TEXT, 1, [Whether utf8_mime2text() has new signature])
fi
2007-02-11 09:25:25 +00:00
CFLAGS=$old_CFLAGS
2005-01-11 04:56:06 +00:00
2007-01-19 20:44:52 +00:00
old_CFLAGS=$CFLAGS
CFLAGS="-I$IMAP_INC_DIR"
AC_CACHE_CHECK(for U8T_CANONICAL, ac_cv_u8t_canonical,
AC_TRY_COMPILE([
#include <c-client.h>
],[
int i = U8T_CANONICAL;
],[
ac_cv_u8t_canonical=yes
],[
ac_cv_u8t_canonical=no
])
)
2007-02-11 09:25:25 +00:00
CFLAGS=$old_CFLAGS
2007-01-19 20:44:52 +00:00
if test "$ac_cv_u8t_canonical" = "no" && test "$ac_cv_utf8_mime2text" = "new"; then
2009-04-04 16:58:39 +00:00
AC_MSG_ERROR([utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. You may not have c-client installed properly. Check config.log for additional information.])
2007-01-19 20:44:52 +00:00
fi
if test "$ac_cv_u8t_canonical" = "yes" && test "$ac_cv_utf8_mime2text" = "old"; then
2009-04-04 16:58:39 +00:00
AC_MSG_ERROR([utf8_mime2text() has old signature, but U8T_CANONICAL is present. This should not happen. You may not have c-client installed properly. Check config.log for additional information.])
2007-01-19 20:44:52 +00:00
fi
2005-01-11 04:56:06 +00:00
dnl Check for c-client version 2001
2001-08-07 16:18:05 +00:00
old_CPPFLAGS=$CPPFLAGS
CPPFLAGS=-I$IMAP_INC_DIR
AC_EGREP_CPP(this_is_true, [
2002-06-01 20:14:58 +00:00
#include "imap4r1.h"
#if defined(IMAPSSLPORT)
2001-08-07 16:18:05 +00:00
this_is_true
2002-06-01 20:14:58 +00:00
#endif
2001-08-07 16:18:05 +00:00
],[
AC_DEFINE(HAVE_IMAP2001, 1, [ ])
2001-08-21 11:02:42 +00:00
],[])
2001-08-07 16:18:05 +00:00
CPPFLAGS=$old_CPPFLAGS
2004-01-17 00:00:11 +00:00
PHP_CHECK_LIBRARY(pam, pam_start,
[
PHP_ADD_LIBRARY(pam,, IMAP_SHARED_LIBADD)
AC_DEFINE(HAVE_LIBPAM,1,[ ])
])
PHP_CHECK_LIBRARY(crypt, crypt,
[
PHP_ADD_LIBRARY(crypt,, IMAP_SHARED_LIBADD)
AC_DEFINE(HAVE_LIBCRYPT,1,[ ])
])
2001-08-03 05:17:18 +00:00
2001-03-27 20:35:04 +00:00
PHP_EXPAND_PATH($IMAP_DIR, IMAP_DIR)
2000-02-29 13:12:48 +00:00
if test -z "$IMAP_DIR"; then
2004-12-19 18:16:50 +00:00
AC_MSG_ERROR(Cannot find rfc822.h. Please check your c-client installation.)
2000-02-29 13:12:48 +00:00
fi
2000-02-29 13:21:51 +00:00
if test -r "$IMAP_DIR/c-client/c-client.a"; then
ln -s "$IMAP_DIR/c-client/c-client.a" "$IMAP_DIR/c-client/libc-client.a" >/dev/null 2>&1
2004-11-03 14:32:52 +00:00
elif test -r "$IMAP_DIR/$PHP_LIBDIR/c-client.a"; then
ln -s "$IMAP_DIR/$PHP_LIBDIR/c-client.a" "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" >/dev/null 2>&1
2000-02-29 13:21:51 +00:00
fi
2001-08-02 11:23:01 +00:00
for lib in c-client4 c-client imap; do
2000-02-29 13:12:48 +00:00
IMAP_LIB=$lib
2004-11-03 14:32:52 +00:00
IMAP_LIB_CHK($PHP_LIBDIR)
2000-03-03 11:54:07 +00:00
IMAP_LIB_CHK(c-client)
2000-02-29 13:12:48 +00:00
done
1999-04-22 00:45:14 +00:00
2000-05-23 23:36:44 +00:00
if test -z "$IMAP_LIBDIR"; then
2004-12-19 18:16:50 +00:00
AC_MSG_ERROR(Cannot find imap library (libc-client.a). Please check your c-client installation.)
2000-02-29 13:12:48 +00:00
fi
2001-03-27 20:35:04 +00:00
PHP_ADD_INCLUDE($IMAP_INC_DIR)
2002-12-28 15:33:25 +00:00
PHP_ADD_LIBRARY_DEFER($IMAP_LIB,, IMAP_SHARED_LIBADD)
PHP_ADD_LIBPATH($IMAP_LIBDIR, IMAP_SHARED_LIBADD)
2003-03-11 02:11:57 +00:00
PHP_IMAP_KRB_CHK
PHP_IMAP_SSL_CHK
2002-07-25 11:33:21 +00:00
2002-07-12 12:13:45 +00:00
dnl Test the build in the end
2002-07-25 11:33:21 +00:00
TST_LIBS="$DLIBS $IMAP_SHARED_LIBADD"
2003-01-18 07:00:47 +00:00
dnl Check if auth_gss exists
PHP_IMAP_TEST_BUILD(auth_gssapi_valid, [
AC_DEFINE(HAVE_IMAP_AUTH_GSS, 1, [ ])
], [], $TST_LIBS)
2009-05-05 01:22:31 +00:00
dnl Check if utf8_to_mutf7 exists
PHP_IMAP_TEST_BUILD(utf8_to_mutf7, [
AC_DEFINE(HAVE_IMAP_MUTF7, 1, [ ])
], [], $TST_LIBS)
2008-10-16 16:21:20 +00:00
AC_MSG_CHECKING(whether rfc822_output_address_list function present)
PHP_TEST_BUILD(foobar, [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_RFC822_OUTPUT_ADDRESS_LIST, 1, [ ])
], [
AC_MSG_RESULT(no)
], [
$TST_LIBS
], [
#if defined(__GNUC__) && __GNUC__ >= 4
# define PHP_IMAP_EXPORT __attribute__ ((visibility("default")))
#else
# define PHP_IMAP_EXPORT
#endif
PHP_IMAP_EXPORT void mm_log(void){}
PHP_IMAP_EXPORT void mm_dlog(void){}
PHP_IMAP_EXPORT void mm_flags(void){}
PHP_IMAP_EXPORT void mm_fatal(void){}
PHP_IMAP_EXPORT void mm_critical(void){}
PHP_IMAP_EXPORT void mm_nocritical(void){}
PHP_IMAP_EXPORT void mm_notify(void){}
PHP_IMAP_EXPORT void mm_login(void){}
PHP_IMAP_EXPORT void mm_diskerror(void){}
PHP_IMAP_EXPORT void mm_status(void){}
PHP_IMAP_EXPORT void mm_lsub(void){}
PHP_IMAP_EXPORT void mm_list(void){}
PHP_IMAP_EXPORT void mm_exists(void){}
PHP_IMAP_EXPORT void mm_searched(void){}
PHP_IMAP_EXPORT void mm_expunged(void){}
void rfc822_output_address_list(void);
void (*f)(void);
char foobar () {f = rfc822_output_address_list;}
])
2009-05-05 01:22:31 +00:00
AC_MSG_CHECKING(whether build with IMAP works)
PHP_IMAP_TEST_BUILD(mail_newbody, [
AC_MSG_RESULT(yes)
], [
AC_MSG_RESULT(no)
AC_MSG_ERROR([build test failed. Please check the config.log for details.])
], $TST_LIBS)
2001-05-06 05:39:16 +00:00
fi