diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
---|---|---|
committer | <> | 2013-04-03 16:25:08 +0000 |
commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /ext/imap/config.m4 | |
download | php2-master.tar.gz |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/imap/config.m4')
-rw-r--r-- | ext/imap/config.m4 | 278 |
1 files changed, 278 insertions, 0 deletions
diff --git a/ext/imap/config.m4 b/ext/imap/config.m4 new file mode 100644 index 0000000..3ad7c10 --- /dev/null +++ b/ext/imap/config.m4 @@ -0,0 +1,278 @@ +dnl +dnl $Id$ +dnl + +AC_DEFUN([IMAP_INC_CHK],[if test -r "$i$1/c-client.h"; then + AC_DEFINE(HAVE_IMAP2000, 1, [ ]) + IMAP_DIR=$i + IMAP_INC_DIR=$i$1 + break + elif test -r "$i$1/rfc822.h"; then + IMAP_DIR=$i; + IMAP_INC_DIR=$i$1 + break +]) + +AC_DEFUN([IMAP_LIB_CHK],[ + str="$IMAP_DIR/$1/lib$lib.*" + for i in `echo $str`; do + test -r $i && IMAP_LIBDIR=$IMAP_DIR/$1 && break 2 + done +]) + +dnl PHP_IMAP_TEST_BUILD(function, action-if-ok, action-if-not-ok, extra-libs) +AC_DEFUN([PHP_IMAP_TEST_BUILD], [ + PHP_TEST_BUILD([$1], [$2], [$3], [$4], + [ +#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){} + ]) +]) + +AC_DEFUN([PHP_IMAP_KRB_CHK], [ + if test "$PHP_KERBEROS" != "no"; then + PHP_SETUP_KERBEROS(IMAP_SHARED_LIBADD, + [ + AC_DEFINE(HAVE_IMAP_KRB,1,[ ]) + ], [ + AC_MSG_ERROR([Kerberos libraries not found. + + Check the path given to --with-kerberos (if no path is given, searches in /usr/kerberos, /usr/local and /usr ) + ]) + ]) + else + AC_EGREP_HEADER(auth_gss, $IMAP_INC_DIR/linkage.h, [ + AC_MSG_ERROR([This c-client library is built with Kerberos support. + + Add --with-kerberos to your configure line. Check config.log for details. + ]) + ]) + fi +]) + +AC_DEFUN([PHP_IMAP_SSL_CHK], [ + if test "$PHP_IMAP_SSL" != "no"; then + if test "$PHP_OPENSSL" = ""; then + PHP_OPENSSL='no' + fi + 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. + ]) + ]) + fi +]) + + +PHP_ARG_WITH(imap,for IMAP support, +[ --with-imap[=DIR] Include IMAP support. DIR is the c-client install prefix]) + +PHP_ARG_WITH(kerberos,for IMAP Kerberos support, +[ --with-kerberos[=DIR] IMAP: Include Kerberos support. DIR is the Kerberos install prefix], no, no) + +PHP_ARG_WITH(imap-ssl,for IMAP SSL support, +[ --with-imap-ssl[=DIR] IMAP: Include SSL support. DIR is the OpenSSL install prefix], no, no) + + +if test "$PHP_IMAP" != "no"; then + PHP_SUBST(IMAP_SHARED_LIBADD) + PHP_NEW_EXTENSION(imap, php_imap.c, $ext_shared) + AC_DEFINE(HAVE_IMAP,1,[ ]) + + for i in $PHP_IMAP /usr/local /usr; do + IMAP_INC_CHK() + el[]IMAP_INC_CHK(/include/c-client) + el[]IMAP_INC_CHK(/include/imap) + el[]IMAP_INC_CHK(/include) + el[]IMAP_INC_CHK(/imap) + el[]IMAP_INC_CHK(/c-client) + fi + done + + dnl Check for c-client version 2004 + AC_EGREP_HEADER(mail_fetch_overview_sequence, $IMAP_INC_DIR/mail.h, [ + AC_DEFINE(HAVE_IMAP2004,1,[ ]) + ]) + + dnl Check for new version of the utf8_mime2text() function + old_CFLAGS=$CFLAGS + CFLAGS="-I$IMAP_INC_DIR" + AC_CACHE_CHECK(for utf8_mime2text signature, ac_cv_utf8_mime2text, + AC_TRY_COMPILE([ +#include <stdio.h> +#include <c-client.h> + ],[ + SIZEDTEXT *src, *dst; + utf8_mime2text(src, dst); + ],[ + ac_cv_utf8_mime2text=old + ],[ + ac_cv_utf8_mime2text=new + ]) + ) + if test "$ac_cv_utf8_mime2text" = "new"; then + AC_DEFINE(HAVE_NEW_MIME2TEXT, 1, [Whether utf8_mime2text() has new signature]) + fi + CFLAGS=$old_CFLAGS + + old_CFLAGS=$CFLAGS + CFLAGS="-I$IMAP_INC_DIR" + AC_CACHE_CHECK(for U8T_DECOMPOSE, ac_cv_u8t_canonical, + AC_TRY_COMPILE([ +#include <c-client.h> + ],[ + int i = U8T_CANONICAL; + ],[ + ac_cv_u8t_decompose=yes + ],[ + ac_cv_u8t_decompose=no + ]) + ) + CFLAGS=$old_CFLAGS + + if test "$ac_cv_u8t_decompose" = "no" && test "$ac_cv_utf8_mime2text" = "new"; then + AC_MSG_ERROR([utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.]) + fi + if test "$ac_cv_u8t_decompose" = "yes" && test "$ac_cv_utf8_mime2text" = "old"; then + AC_MSG_ERROR([utf8_mime2text() has old signature, but U8T_CANONICAL is present. This should not happen. Check config.log for additional information.]) + fi + + dnl Check for c-client version 2001 + old_CPPFLAGS=$CPPFLAGS + CPPFLAGS=-I$IMAP_INC_DIR + AC_EGREP_CPP(this_is_true, [ +#include "imap4r1.h" +#if defined(IMAPSSLPORT) + this_is_true +#endif + ],[ + AC_DEFINE(HAVE_IMAP2001, 1, [ ]) + ],[]) + CPPFLAGS=$old_CPPFLAGS + + 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,[ ]) + ]) + + PHP_EXPAND_PATH($IMAP_DIR, IMAP_DIR) + + if test -z "$IMAP_DIR"; then + AC_MSG_ERROR(Cannot find rfc822.h. Please check your c-client installation.) + fi + + 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 + 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 + fi + + for lib in c-client4 c-client imap; do + IMAP_LIB=$lib + IMAP_LIB_CHK($PHP_LIBDIR) + IMAP_LIB_CHK(c-client) + done + + if test -z "$IMAP_LIBDIR"; then + AC_MSG_ERROR(Cannot find imap library (libc-client.a). Please check your c-client installation.) + fi + + PHP_ADD_INCLUDE($IMAP_INC_DIR) + PHP_ADD_LIBRARY_DEFER($IMAP_LIB,, IMAP_SHARED_LIBADD) + PHP_ADD_LIBPATH($IMAP_LIBDIR, IMAP_SHARED_LIBADD) + PHP_IMAP_KRB_CHK + PHP_IMAP_SSL_CHK + + dnl Test the build in the end + TST_LIBS="$DLIBS $IMAP_SHARED_LIBADD" + + dnl Check if auth_gss exists + PHP_IMAP_TEST_BUILD(auth_gssapi_valid, [ + AC_DEFINE(HAVE_IMAP_AUTH_GSS, 1, [ ]) + ], [], $TST_LIBS) + + dnl Check if utf8_to_mutf7 exists + PHP_IMAP_TEST_BUILD(utf8_to_mutf7, [ + AC_DEFINE(HAVE_IMAP_MUTF7, 1, [ ]) + ], [], $TST_LIBS) + + 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;} + ]) + + 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) +fi |