
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.


if [ $MD5 != NONE ]; then

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

    have=NGX_HAVE_MD5 . auto/have
    CORE_INCS="$CORE_INCS $MD5"

    case "$NGX_CC_NAME" in

        msvc | owc | bcc)
            LINK_DEPS="$LINK_DEPS $MD5/md5.lib"
            CORE_LIBS="$CORE_LIBS $MD5/md5.lib"
        ;;

        icc)
            LINK_DEPS="$LINK_DEPS $MD5/libmd5.a"

            # to allow -ipo optimization we link with the *.o but not library
            CORE_LIBS="$CORE_LIBS $MD5/md5_dgst.o"

            if [ $MD5_ASM = YES ]; then
                CORE_LIBS="$CORE_LIBS $MD5/asm/mx86-elf.o"
            fi
        ;;

        *)
            LINK_DEPS="$LINK_DEPS $MD5/libmd5.a"
            CORE_LIBS="$CORE_LIBS $MD5/libmd5.a"
            #CORE_LIBS="$CORE_LIBS -L $MD5 -lmd5"
        ;;

    esac

else

    if [ "$NGX_PLATFORM" != win32 ]; then

            MD5=NO

            # FreeBSD, Solaris 10

            ngx_feature="md5 in system md library"
            ngx_feature_name=NGX_HAVE_MD5
            ngx_feature_run=no
            ngx_feature_incs="#include <md5.h>"
            ngx_feature_path=
            ngx_feature_libs="-lmd"
            ngx_feature_test="MD5_CTX md5; MD5Init(&md5)"
            . auto/feature

            ngx_md5_lib="system md"

        if [ $ngx_found = no ]; then

            # Solaris 8/9

            ngx_feature="md5 in system md5 library"
            ngx_feature_libs="-lmd5"
            . auto/feature

            ngx_md5_lib="system md5"
        fi

        if [ $ngx_found = no ]; then

            # OpenSSL crypto library

            ngx_feature="md5 in system OpenSSL crypto library"
            ngx_feature_name="NGX_OPENSSL_MD5"
            ngx_feature_incs="#include <openssl/md5.h>"
            ngx_feature_libs="-lcrypto"
            ngx_feature_test="MD5_CTX md5; MD5_Init(&md5)"
            . auto/feature

            ngx_md5_lib="system crypto"

            if [ $ngx_found = yes ]; then
                have=NGX_HAVE_OPENSSL_MD5_H . auto/have
                have=NGX_HAVE_MD5 . auto/have
            fi
        fi

        if [ $ngx_found = yes ]; then
            CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
            MD5=YES
            MD5_LIB=$ngx_md5_lib
        fi
    fi

fi
