dnl AC_WITH_MD5([ACTION-IF-FOUND[,ACTION-IF-NOT-FOUND])
dnl Output:
dnl AC_DEFINE: HAVE_MD5
AC_DEFUN(AC_WITH_MD5,[
 AC_MSG_CHECKING([if c-client includes md5 support])
 AC_LANG_PUSH(C)
  xCFLAGS="${CFLAGS}"
  xLIBS="${LIBS}"
  CFLAGS="${CFLAGS} ${CCLIENT_INCLUDES}"
  LIBS="${LIBS} ${CCLIENT_LIBS}"
  AC_LINK_IFELSE(
   AC_LANG_SOURCE([
    #include <stdio.h>
    #include "c-client.h"
    #include "linkage.h"

    #define MD5BLKLEN 64           /* MD5 block length */

    typedef struct {
      unsigned long chigh;         /* high 32bits of byte count */
      unsigned long clow;          /* low 32bits of byte count */
      unsigned long state[4];      /* state (ABCD) */
      unsigned char buf[MD5BLKLEN];        /* input buffer */
      unsigned char *ptr;          /* buffer position */
    } MD5CONTEXT;

    void md5_init (MD5CONTEXT *ctx);

    main(int argc,char **argv) {
     #include "linkage.c"
     md5_init(NULL);
    }
    void mm_log(char*a,long b){}
    void mm_dlog(char*a){}
    void mm_flags(MAILSTREAM*a,unsigned long b){}
    void mm_fatal(char*a){}
    void mm_critical(MAILSTREAM*a){}
    void mm_nocritical(MAILSTREAM*a){}
    void mm_notify(MAILSTREAM*a,char*b,long c){}
    void mm_login(NETMBX*a,char*b,char*c,long d){}
    long mm_diskerror(MAILSTREAM*a,long b,long c){}
    void mm_status(MAILSTREAM*a,char*b,MAILSTATUS*c){}
    void mm_lsub(MAILSTREAM*a,int b,char*c,long d){}
    void mm_list(MAILSTREAM*a,int b,char*c,long d){}
    void mm_exists(MAILSTREAM*a,unsigned long b){}
    void mm_searched(MAILSTREAM*a,unsigned long b){}
    void mm_expunged(MAILSTREAM*a,unsigned long b){}
   ]),[
    AC_MSG_RESULT([yes])
    AC_DEFINE([HAVE_MD5], [], [Does c-client include md5 support?])
   ],[
    AC_MSG_RESULT([no])
   ]
  )
  CFLAGS="${xCFLAGS}"
  LIBS="${xLIBS}"
])


syntax highlighted by Code2HTML, v. 0.9.1