
if [ $MD5 != NONE ]; then

    if grep MD5_Init $MD5/md5.h >/dev/null; then
        # OpenSSL md5
        OPENSSL_MD5=YES
        have=HAVE_OPENSSL_MD5 . auto/have
    else
        # rsaref md5
        OPENSSL_MD5=NO
    fi

    CORE_INCS="$CORE_INCS -I $MD5"

    if [ "$PLATFORM" = "win32" ]; then
        CORE_LIBS="$CORE_LIBS md5.lib"
        CORE_LINK="$CORE_LINK -libpath:$MD5"
    else 
        LINK_DEPS="$LINK_DEPS $MD5/libmd5.a"
        CORE_LIBS="$CORE_LIBS -L $MD5 -lmd5"
    fi

else

ngx_lib_inc="#include <sys/types.h>
#include <md5.h>"

    MD5=NO

        # Solaris 8/9
        ngx_lib="rsaref md5"
        ngx_lib_test="MD5_CTX md5; MD5Init(&md5)"
        ngx_libs=-lmd5
        . auto/lib/test


    if [ $ngx_found = yes ]; then
        CORE_LIBS="$CORE_LIBS $ngx_libs"
        MD5=YES
        MD5_LIB=md5
        ngx_found=no

    else
        # FreeBSD
        ngx_lib="rsaref md"
        ngx_lib_test="MD5_CTX md5; MD5Init(&md5)"
        ngx_libs=-lmd
        . auto/lib/test
    fi


    if [ $ngx_found = yes ]; then
        CORE_LIBS="$CORE_LIBS $ngx_libs"
        MD5=YES
        MD5_LIB=md
        ngx_found=no

    else
        ngx_lib_inc="#include <sys/types.h>
#include <openssl/md5.h>"
        ngx_lib="OpenSSL md5 crypto"
        ngx_lib_test="MD5_CTX md5; MD5_Init(&md5)"
        ngx_libs=-lcrypto
        . auto/lib/test
    fi


    if [ $ngx_found = yes ]; then
        have=HAVE_OPENSSL_MD5 . auto/have
        have=HAVE_OPENSSL_MD5_H . auto/have
        CORE_LIBS="$CORE_LIBS $ngx_libs"
        MD5=YES
        MD5_LIB=crypto
    fi
fi
