Annotation of embedaddon/php/ext/imap/config.m4, revision 1.1.1.4

1.1       misho       1: dnl
1.1.1.2   misho       2: dnl $Id$
1.1       misho       3: dnl
                      4: 
                      5: AC_DEFUN([IMAP_INC_CHK],[if test -r "$i$1/c-client.h"; then
                      6:     AC_DEFINE(HAVE_IMAP2000, 1, [ ])
                      7:     IMAP_DIR=$i
                      8:     IMAP_INC_DIR=$i$1
                      9:     break
                     10:   elif test -r "$i$1/rfc822.h"; then 
                     11:     IMAP_DIR=$i; 
                     12:     IMAP_INC_DIR=$i$1
                     13:        break
                     14: ])
                     15: 
                     16: AC_DEFUN([IMAP_LIB_CHK],[
                     17:   str="$IMAP_DIR/$1/lib$lib.*"
                     18:   for i in `echo $str`; do
                     19:     test -r $i && IMAP_LIBDIR=$IMAP_DIR/$1 && break 2
                     20:   done
                     21: ])
                     22: 
                     23: dnl PHP_IMAP_TEST_BUILD(function, action-if-ok, action-if-not-ok, extra-libs)
                     24: AC_DEFUN([PHP_IMAP_TEST_BUILD], [
                     25:   PHP_TEST_BUILD([$1], [$2], [$3], [$4],
                     26:   [
                     27: #if defined(__GNUC__) && __GNUC__ >= 4
                     28: # define PHP_IMAP_EXPORT __attribute__ ((visibility("default")))
                     29: #else
                     30: # define PHP_IMAP_EXPORT
                     31: #endif
                     32: 
                     33:     PHP_IMAP_EXPORT void mm_log(void){}
                     34:     PHP_IMAP_EXPORT void mm_dlog(void){}
                     35:     PHP_IMAP_EXPORT void mm_flags(void){}
                     36:     PHP_IMAP_EXPORT void mm_fatal(void){}
                     37:     PHP_IMAP_EXPORT void mm_critical(void){}
                     38:     PHP_IMAP_EXPORT void mm_nocritical(void){}
                     39:     PHP_IMAP_EXPORT void mm_notify(void){}
                     40:     PHP_IMAP_EXPORT void mm_login(void){}
                     41:     PHP_IMAP_EXPORT void mm_diskerror(void){}
                     42:     PHP_IMAP_EXPORT void mm_status(void){}
                     43:     PHP_IMAP_EXPORT void mm_lsub(void){}
                     44:     PHP_IMAP_EXPORT void mm_list(void){}
                     45:     PHP_IMAP_EXPORT void mm_exists(void){}
                     46:     PHP_IMAP_EXPORT void mm_searched(void){}
                     47:     PHP_IMAP_EXPORT void mm_expunged(void){}
                     48:   ])
                     49: ])
                     50: 
                     51: AC_DEFUN([PHP_IMAP_KRB_CHK], [
                     52:   if test "$PHP_KERBEROS" != "no"; then
                     53:     PHP_SETUP_KERBEROS(IMAP_SHARED_LIBADD,
                     54:     [
                     55:       AC_DEFINE(HAVE_IMAP_KRB,1,[ ])
                     56:     ], [
                     57:       AC_MSG_ERROR([Kerberos libraries not found. 
                     58:       
                     59:       Check the path given to --with-kerberos (if no path is given, searches in /usr/kerberos, /usr/local and /usr )
                     60:       ])
                     61:     ])
                     62:   else
                     63:     AC_EGREP_HEADER(auth_gss, $IMAP_INC_DIR/linkage.h, [
                     64:       AC_MSG_ERROR([This c-client library is built with Kerberos support. 
                     65: 
                     66:       Add --with-kerberos to your configure line. Check config.log for details.
                     67:       ])
                     68:     ])
                     69:   fi
                     70: ])
                     71: 
                     72: AC_DEFUN([PHP_IMAP_SSL_CHK], [
                     73:   if test "$PHP_IMAP_SSL" != "no"; then
                     74:     if test "$PHP_OPENSSL" = ""; then
                     75:       PHP_OPENSSL='no'
                     76:     fi
                     77:     PHP_SETUP_OPENSSL(IMAP_SHARED_LIBADD,
                     78:     [
                     79:       AC_DEFINE(HAVE_IMAP_SSL,1,[ ])
                     80:     ], [
                     81:       AC_MSG_ERROR([OpenSSL libraries not found. 
                     82:       
                     83:       Check the path given to --with-openssl-dir and output in config.log)
                     84:       ])
                     85:     ])
                     86:   elif test -f "$IMAP_INC_DIR/linkage.c"; then
                     87:     AC_EGREP_HEADER(ssl_onceonlyinit, $IMAP_INC_DIR/linkage.c, [
                     88:       AC_MSG_ERROR([This c-client library is built with SSL support. 
                     89: 
                     90:       Add --with-imap-ssl to your configure line. Check config.log for details.
                     91:       ])
                     92:     ])
                     93:   fi
                     94: ])
                     95: 
                     96: 
                     97: PHP_ARG_WITH(imap,for IMAP support,
                     98: [  --with-imap[=DIR]       Include IMAP support. DIR is the c-client install prefix])
                     99: 
                    100: PHP_ARG_WITH(kerberos,for IMAP Kerberos support,
                    101: [  --with-kerberos[=DIR]     IMAP: Include Kerberos support. DIR is the Kerberos install prefix], no, no)
                    102: 
                    103: PHP_ARG_WITH(imap-ssl,for IMAP SSL support,
                    104: [  --with-imap-ssl[=DIR]     IMAP: Include SSL support. DIR is the OpenSSL install prefix], no, no)
                    105: 
                    106: 
                    107: if test "$PHP_IMAP" != "no"; then  
                    108:     PHP_SUBST(IMAP_SHARED_LIBADD)
                    109:     PHP_NEW_EXTENSION(imap, php_imap.c, $ext_shared)
                    110:     AC_DEFINE(HAVE_IMAP,1,[ ])
                    111: 
                    112:     for i in $PHP_IMAP /usr/local /usr; do
                    113:       IMAP_INC_CHK()
                    114:       el[]IMAP_INC_CHK(/include/c-client)
                    115:       el[]IMAP_INC_CHK(/include/imap)
                    116:       el[]IMAP_INC_CHK(/include)
                    117:       el[]IMAP_INC_CHK(/imap)
                    118:       el[]IMAP_INC_CHK(/c-client)
                    119:       fi
                    120:     done
                    121: 
                    122:     dnl Check for c-client version 2004
                    123:     AC_EGREP_HEADER(mail_fetch_overview_sequence, $IMAP_INC_DIR/mail.h, [
                    124:       AC_DEFINE(HAVE_IMAP2004,1,[ ])
                    125:     ])
                    126: 
                    127:     dnl Check for new version of the utf8_mime2text() function
                    128:     old_CFLAGS=$CFLAGS
                    129:     CFLAGS="-I$IMAP_INC_DIR"
                    130:     AC_CACHE_CHECK(for utf8_mime2text signature, ac_cv_utf8_mime2text,
                    131:       AC_TRY_COMPILE([
                    132: #include <stdio.h>
                    133: #include <c-client.h>
                    134:       ],[
                    135:         SIZEDTEXT *src, *dst;
                    136:         utf8_mime2text(src, dst);
                    137:       ],[
                    138:         ac_cv_utf8_mime2text=old
                    139:       ],[
                    140:         ac_cv_utf8_mime2text=new
                    141:       ])
                    142:     )
                    143:     if test "$ac_cv_utf8_mime2text" = "new"; then
                    144:       AC_DEFINE(HAVE_NEW_MIME2TEXT, 1, [Whether utf8_mime2text() has new signature])
                    145:     fi
                    146:     CFLAGS=$old_CFLAGS
                    147: 
                    148:     old_CFLAGS=$CFLAGS
                    149:     CFLAGS="-I$IMAP_INC_DIR"
                    150:     AC_CACHE_CHECK(for U8T_DECOMPOSE, ac_cv_u8t_canonical,
                    151:       AC_TRY_COMPILE([
                    152: #include <c-client.h>
                    153:       ],[
                    154:          int i = U8T_CANONICAL;
                    155:       ],[
                    156:          ac_cv_u8t_decompose=yes
                    157:       ],[
                    158:          ac_cv_u8t_decompose=no
                    159:       ])
                    160:     )
                    161:     CFLAGS=$old_CFLAGS
                    162: 
                    163:     if test "$ac_cv_u8t_decompose" = "no" && test "$ac_cv_utf8_mime2text" = "new"; then
                    164:                AC_MSG_ERROR([utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.])
                    165:     fi
                    166:     if test "$ac_cv_u8t_decompose" = "yes" && test "$ac_cv_utf8_mime2text" = "old"; then
                    167:                AC_MSG_ERROR([utf8_mime2text() has old signature, but U8T_CANONICAL is present. This should not happen. Check config.log for additional information.])
                    168:     fi
                    169: 
                    170:     dnl Check for c-client version 2001
                    171:     old_CPPFLAGS=$CPPFLAGS
                    172:     CPPFLAGS=-I$IMAP_INC_DIR
                    173:     AC_EGREP_CPP(this_is_true, [
                    174: #include "imap4r1.h"
                    175: #if defined(IMAPSSLPORT)
                    176:       this_is_true
                    177: #endif
                    178:     ],[
                    179:       AC_DEFINE(HAVE_IMAP2001, 1, [ ])
                    180:     ],[])
                    181:     CPPFLAGS=$old_CPPFLAGS
                    182: 
                    183:     PHP_CHECK_LIBRARY(pam, pam_start, 
                    184:     [
                    185:       PHP_ADD_LIBRARY(pam,, IMAP_SHARED_LIBADD)
                    186:       AC_DEFINE(HAVE_LIBPAM,1,[ ])
                    187:     ])
                    188: 
                    189:     PHP_CHECK_LIBRARY(crypt, crypt, 
                    190:     [
                    191:       PHP_ADD_LIBRARY(crypt,, IMAP_SHARED_LIBADD)
                    192:       AC_DEFINE(HAVE_LIBCRYPT,1,[ ])
                    193:     ])
                    194:            
                    195:     PHP_EXPAND_PATH($IMAP_DIR, IMAP_DIR)
                    196: 
                    197:     if test -z "$IMAP_DIR"; then
                    198:       AC_MSG_ERROR(Cannot find rfc822.h. Please check your c-client installation.)
                    199:     fi
                    200: 
1.1.1.4 ! misho     201:     if test ! -r "$IMAP_DIR/c-client/libc-client.a" && test -r "$IMAP_DIR/c-client/c-client.a" ; then
1.1       misho     202:       ln -s "$IMAP_DIR/c-client/c-client.a" "$IMAP_DIR/c-client/libc-client.a" >/dev/null 2>&1
1.1.1.4 ! misho     203:     elif test ! -r "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" && test -r "$IMAP_DIR/$PHP_LIBDIR/c-client.a"; then
1.1       misho     204:       ln -s "$IMAP_DIR/$PHP_LIBDIR/c-client.a" "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" >/dev/null 2>&1
                    205:     fi
                    206: 
                    207:     for lib in c-client4 c-client imap; do
                    208:       IMAP_LIB=$lib
                    209:       IMAP_LIB_CHK($PHP_LIBDIR)
                    210:       IMAP_LIB_CHK(c-client)
                    211:     done
                    212: 
                    213:     if test -z "$IMAP_LIBDIR"; then
                    214:       AC_MSG_ERROR(Cannot find imap library (libc-client.a). Please check your c-client installation.)
                    215:     fi
                    216: 
                    217:     PHP_ADD_INCLUDE($IMAP_INC_DIR)
                    218:     PHP_ADD_LIBRARY_DEFER($IMAP_LIB,, IMAP_SHARED_LIBADD)
                    219:     PHP_ADD_LIBPATH($IMAP_LIBDIR, IMAP_SHARED_LIBADD)
                    220:     PHP_IMAP_KRB_CHK
                    221:     PHP_IMAP_SSL_CHK
                    222: 
                    223:     dnl Test the build in the end
                    224:     TST_LIBS="$DLIBS $IMAP_SHARED_LIBADD"
                    225: 
                    226:     dnl Check if auth_gss exists
                    227:     PHP_IMAP_TEST_BUILD(auth_gssapi_valid, [
                    228:       AC_DEFINE(HAVE_IMAP_AUTH_GSS, 1, [ ])
                    229:     ], [], $TST_LIBS)
                    230: 
                    231:     dnl Check if utf8_to_mutf7 exists
                    232:     PHP_IMAP_TEST_BUILD(utf8_to_mutf7, [
                    233:       AC_DEFINE(HAVE_IMAP_MUTF7, 1, [ ])
                    234:     ], [], $TST_LIBS)
                    235: 
                    236:     AC_MSG_CHECKING(whether rfc822_output_address_list function present)
                    237:     PHP_TEST_BUILD(foobar, [
                    238:       AC_MSG_RESULT(yes)
                    239:       AC_DEFINE(HAVE_RFC822_OUTPUT_ADDRESS_LIST, 1, [ ])
                    240:     ], [
                    241:       AC_MSG_RESULT(no)
                    242:        ], [
                    243:       $TST_LIBS
                    244:     ], [
                    245: #if defined(__GNUC__) && __GNUC__ >= 4
                    246: # define PHP_IMAP_EXPORT __attribute__ ((visibility("default")))
                    247: #else
                    248: # define PHP_IMAP_EXPORT
                    249: #endif
                    250: 
                    251:       PHP_IMAP_EXPORT void mm_log(void){}
                    252:       PHP_IMAP_EXPORT void mm_dlog(void){}
                    253:       PHP_IMAP_EXPORT void mm_flags(void){}
                    254:       PHP_IMAP_EXPORT void mm_fatal(void){}
                    255:       PHP_IMAP_EXPORT void mm_critical(void){}
                    256:       PHP_IMAP_EXPORT void mm_nocritical(void){}
                    257:       PHP_IMAP_EXPORT void mm_notify(void){}
                    258:       PHP_IMAP_EXPORT void mm_login(void){}
                    259:       PHP_IMAP_EXPORT void mm_diskerror(void){}
                    260:       PHP_IMAP_EXPORT void mm_status(void){}
                    261:       PHP_IMAP_EXPORT void mm_lsub(void){}
                    262:       PHP_IMAP_EXPORT void mm_list(void){}
                    263:       PHP_IMAP_EXPORT void mm_exists(void){}
                    264:       PHP_IMAP_EXPORT void mm_searched(void){}
                    265:       PHP_IMAP_EXPORT void mm_expunged(void){}
                    266:       void rfc822_output_address_list(void);
                    267:       void (*f)(void);
                    268:       char foobar () {f = rfc822_output_address_list;}
                    269:     ])
                    270: 
                    271:     AC_MSG_CHECKING(whether build with IMAP works)
                    272:     PHP_IMAP_TEST_BUILD(mail_newbody, [
                    273:       AC_MSG_RESULT(yes)
                    274:     ], [
                    275:       AC_MSG_RESULT(no)
                    276:       AC_MSG_ERROR([build test failed. Please check the config.log for details.])
                    277:     ], $TST_LIBS)
                    278: fi

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>